小弟對于VS2003配置給出的幾點意見
由于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配置的一些相關問題與難點了。哈哈