So far, the latest version of ice is 3.4.1.
However, ice3.1.1 is the last official version that supports windows released by zeroc. To be compatible with Windows2000, I haveProgramIt is divided into two versions and compiled using vs2008 + ice3.4.
Compile with vc6.0 + 3.1.1.
Many problems encountered in the process are summarized as follows.
1. When using the ice3.1.1 source code version, you must first compile ice3.1.1.
Compilation Method: Use vc6 to open all. DSW under the source code, open tools-> Option-> directories. Set the include directory, lib directory, and bin directory of ice.
The include directory cannot contain the 2003 psdk path when compiling all. Otherwise, many errors will be reported. If you really need to use 2003 psdk, you 'd better delete the include path of psdk first, after compilation is complete, add it in.
2. Program Compilation
After the ice compilation is completeCodeCompile the SDK. If your code uses 2003psdk, include the include path of the SDK. Do not forget the include path of stlport. If an error occurs during compilation
C: \ ICE-3.1.1-THIRDPARTY-VC60 \ include \ stlport \ STL/_ threads. H (181): Error c2733: second C linkage of overloaded function 'interlockedincrement 'Not Allowed
C: \ ICE-3.1.1-THIRDPARTY-VC60 \ include \ stlport \ STL/_ threads. H (181): See Declaration of 'interlockedincrement'
You need to open c: \ Ice-3.1.1-ThirdParty-VC60 \ include \ stlport \ stl_user_config.h
Turn these two switches on
/*
* You shoshould define this macro if compiling with MFC-stlport <STL/_ config. h>
* Then include <afx. h> instead of <windows. h> to get synchronisation primitives
*
*/
# DEFINE _ stlp_use_mfc 1 // skip this if you do not need MFC
// Boris: this setting is here as we cannot detect precense of new platform SDK automatically
// If you are using new psdk with VC ++ 6.0 or lower, Please define this to get correct prototypes for interlockedxxx Functions
# DEFINE _ stlp_new_platform_sdk 1
In addition, there are some common errors for compiling and selecting projects, such as project-> setting-> library modules: Ice. Lib iceutil. Lib in link.
Project Options/GR/MDD
Project Options in project> setting> C/C ++: _ win32_winnt = 0x500
In addition, I still encountered a problem. The debug version does not have any problems, but an error occurs when the release version is used.
Later I found that the/MDD parameter was used for compilation in the release version./md should be used in the release version.
It seems that the specific meaning of this parameter was not understood when the problem occurred, and now it is finally understood.