由于VS2003配置的文章太多,在此处无法上传,所以大家有communitysever的可以从里面获得然后反编译为自己所用,没有的就到网络上搜下吧,有许多资源呢!我就是在网上下了许多关于VS2003配置的帮助说明。
以下VS2003配置步骤没多做解释是因为本人也是初学,尚未入门:
一、下载
Ice-3.2.0-VC71.msi: http://www.zeroc.com/download/Ice/3.2/Ice-3.2.0-VC71.msi
Ice-3.2.0-ThirdParty-VC71.msi: http://www.zeroc.com/download/Ice/3.2/Ice-3.2.0-ThirdParty-VC71.msi
二、安装
1、Ice-3.2.0-VC71.msi 安装到c:\Ice-3.2.0-VC71
2、Ice-3.2.0-ThirdParty-VC71.msi到C:\Ice-3.2.0-VC71\ThirdParty
3、在OS系统环境变量中添加ICEROOT,指向c:\Ice-3.2.0-VC71
4、在OS系统环境变量path添加“%ICEROOT%\bin;”、“%ICEROOT%\lib;”、“%ICEROOT%\ThirdParty\bin;”、“%ICEROOT%\ThirdParty\lib”;#t#
二、设置
1、打开VS2003,
“工具”\“选项”\“项目”\“VC++目录”
选择“可执行文件”: 增加“$(ICEROOT)\ThirdParty\bin”、“$(ICEROOT)\bin”
选择“包含文件”: 增加“$(ICEROOT)\include”、“$(ICEROOT)\ThirdParty\include”
选择“库文件”: 增加“$(ICEROOT)\ThirdParty\lib”、“$(ICEROOT)\lib”
三、示例程序
1、新建ICEDEMO空白解决方案
2、在方案中添加新建Visual C++项目Slice,选择Win32静态库空白项目。
3、命令行中敲入notepad Printer.ice(必须是.ice),
4、文件printer.ice
注意分号:
- module demo
- {
- interface Printer
- {
- void printString(string s);
- };
- };
保存在目录\slice下。
5、用命令行程序编译printer.ice:slice2cpp printer.ice,生成Printer.h、Printer.cpp两个文件
6、将pritner.h、printer.cpp加入Slice工程
7、修改Printer.cpp中的第一行“#include <printer.h>”为“#include "printer.h"”
8、设置Slice项目属性还需要进行如下设置:
C/C++选项卡\代码生成\运行时库\“多线程调试DLL(/MDd)”;
C/C++选项卡\语言\启用运行时类型信息\“是(/GR)”;
注意:MD表示RELEASE,MDD表示DEBUG
9、新建一个Visual C++项目Server,选择Win32控制台空白项目
10、在项目server中添加引用项目Slice
11、在项目server中添加空白CPP文件Server.cpp:
- #include "..\Slice\Printer.h"
- #include <Ice/Application.h>
- #include <Ice/Ice.h>
- using namespace std;
- using namespace demo;
- class PrinterI : public Printer
- {
- public:
- virtual void printString(const string& s,const Ice::Current&);
- };
- void PrinterI::printString(const string& s, const Ice::Current&)
- {
- cout << s << endl;
- }
- int main(int argc, char* argv[])
- {
- int status = 0;
- Ice::CommunicatorPtr ic;
- try
- {
- ic = Ice::initialize(argc, argv);
- Ice::ObjectAdapterPtr adapter= ic->createObjectAdapterWithEndpoints("SimplePrinterAdapter",
"default -p 10000");- Ice::ObjectPtr object = new PrinterI;
- adapter->add(object,ic->stringToIdentity("SimplePrinter"));
如果您按网上盛传的文章写成adapter->add(object,ICE::stringToIdentity("SimplePrinter"));您就死翘翘了就这个问题缠了我3天,后来发现官方文档是ic->stringToIdentity("SimplePrinter"),总算解围了,否则还得死绕,本想偷懒不看英文,只看马维达的翻译或网上的文章,他们的代码与官方文档代码就这一句不同,不仔细看根本发现不了,想想懒没偷成更费一身汗。话又说回来,官方文档也有陷阱,纯看文档同样死得难看。
我终于解决了VS2003配置的一些相关问题与难点了。哈哈