1. 下载安装包:http://www.zeroc.com
2. 把$ICE_PATH/bin 添加到系统路径中,因为在执行客户服务程序是要用到相关的dll
3. 配置VS.NET环境
* Visual C++ 2008: Tools->Options->Projects and Solutions -> VC++ Directories, 把ICE相应的目录添加到:可执行文件、库文件、包含文件中。
4. 建立项目HelloPrinter项目,我这里的目录结构是:
Client中是客户项目
Server中是服务器项目
Slice 是Slice文件存放目录
5. 编写Printer.ICE文件
Module Hello
{
Interface Printer
{
void PrintString(string s);
};
};
6. 把Ice添加到项目Server和Client项目中
7. 设置Client和Server对ice文件的自定义生成:
a) 右键选择Printer.ice ->属性->自定义生成步骤->设置如下:
命令行: slice2cpp.exe $(InputPath)
说明: compile the slice file ……
输出: $(InputFile).h $(InputFile).cpp
b) 选中slice文件,选择编译
c) 把生成的文件添加进项目中,这里是Printer.h和Printer.cpp文件
d) 为了不使每次slice文件都重编,可以从文件属性->常规,
设置从生成中排除设为: 是
8. 实现代码如下
服务器端Server.cpp:
客户端Client.cpp
这里有几点注意:
1. 编译项目是要链接库 ice.lib(iced.lib)和iceutil.lib(iceutild.lib)两个库
2. 我在编译debug版本的时候,用链接库ice.lib和iceutil.lib总报 bad allocation错误,该成链接iced.lib和iceutild.lib版的就可以了。
3. 也可以用自定义生成规则来生成slice文件。项目->自定义生成规则… 可以设置自定生成规则。附件中有我写的一个自定生成规则, 参考:
http://msdn.microsoft.com/zh-cn/library/03t8bzzy(v=VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/xfsbz6cw(v=VS.80).aspx