小弟對(duì)于VS2003配置給出的幾點(diǎn)意見
由于VS2003配置的文章太多,在此處無法上傳,所以大家有communitysever的可以從里面獲得然后反編譯為自己所用,沒有的就到網(wǎng)絡(luò)上搜下吧,有許多資源呢!我就是在網(wǎng)上下了許多關(guān)于VS2003配置的幫助說明。
以下VS2003配置步驟沒多做解釋是因?yàn)楸救艘彩浅鯇W(xué),尚未入門:
一、下載
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系統(tǒng)環(huán)境變量中添加ICEROOT,指向c:\Ice-3.2.0-VC71
4、在OS系統(tǒng)環(huán)境變量path添加“%ICEROOT%\bin;”、“%ICEROOT%\lib;”、“%ICEROOT%\ThirdParty\bin;”、“%ICEROOT%\ThirdParty\lib”;#t#
二、設(shè)置
1、打開VS2003,
“工具”\“選項(xiàng)”\“項(xiàng)目”\“VC++目錄”
選擇“可執(zhí)行文件”: 增加“$(ICEROOT)\ThirdParty\bin”、“$(ICEROOT)\bin”
選擇“包含文件”: 增加“$(ICEROOT)\include”、“$(ICEROOT)\ThirdParty\include”
選擇“庫文件”: 增加“$(ICEROOT)\ThirdParty\lib”、“$(ICEROOT)\lib”
三、示例程序
1、新建ICEDEMO空白解決方案
2、在方案中添加新建Visual C++項(xiàng)目Slice,選擇Win32靜態(tài)庫空白項(xiàng)目。
3、命令行中敲入notepad Printer.ice(必須是.ice),
4、文件printer.ice
注意分號(hào):
- module demo
- {
- interface Printer
- {
- void printString(string s);
- };
- };
保存在目錄\slice下。
5、用命令行程序編譯printer.ice:slice2cpp printer.ice,生成Printer.h、Printer.cpp兩個(gè)文件
6、將pritner.h、printer.cpp加入Slice工程
7、修改Printer.cpp中的第一行“#include <printer.h>”為“#include "printer.h"”
8、設(shè)置Slice項(xiàng)目屬性還需要進(jìn)行如下設(shè)置:
C/C++選項(xiàng)卡\代碼生成\運(yùn)行時(shí)庫\“多線程調(diào)試DLL(/MDd)”;
C/C++選項(xiàng)卡\語言\啟用運(yùn)行時(shí)類型信息\“是(/GR)”;
注意:MD表示RELEASE,MDD表示DEBUG
9、新建一個(gè)Visual C++項(xiàng)目Server,選擇Win32控制臺(tái)空白項(xiàng)目
10、在項(xiàng)目server中添加引用項(xiàng)目Slice
11、在項(xiàng)目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"));
如果您按網(wǎng)上盛傳的文章寫成adapter->add(object,ICE::stringToIdentity("SimplePrinter"));您就死翹翹了就這個(gè)問題纏了我3天,后來發(fā)現(xiàn)官方文檔是ic->stringToIdentity("SimplePrinter"),總算解圍了,否則還得死繞,本想偷懶不看英文,只看馬維達(dá)的翻譯或網(wǎng)上的文章,他們的代碼與官方文檔代碼就這一句不同,不仔細(xì)看根本發(fā)現(xiàn)不了,想想懶沒偷成更費(fèi)一身汗。話又說回來,官方文檔也有陷阱,純看文檔同樣死得難看。
我終于解決了VS2003配置的一些相關(guān)問題與難點(diǎn)了。哈哈