锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1.Project Settings >> C/C++(Tab) >> Category:Code Generation >> User run-time library:Debug Multithreaded DLL
2.Project Settings >> C/C++(Tab) >> Category:Preprocessor >> Additional include directories:(鍦ㄦ欏逛腑濉叆涓涓偣".",琛ㄧず鏍圭洰褰?
3.Project Settings >> C/C++(Tab) >> Category:C++ Language >> 鍕鵑?Enable Run-Time Type Information(RTTI)"欏?br />
4.Project Settings >> Link(Tab) >> Category:General>>鍦?Object/library modules:"妗嗕腑鐨勬湭棣栧姞鍏ヤ袱涓寘"iced.lib"鍜?iceutild.lib"
榪欐牱,鏁翠釜ICE宸ョ▼鐨凞EBUG鐗堟湰灝卞緩绔嬪畬鎴愪簡.
浠ヤ笂鏂規(guī)硶鍦?VC++6.0 SP6 鍜?ICE3.0.0 涓嬮氳繃
娉?涔辯爜鏄敱浜庢垜鐨凩INUX涓嬩笉鏀寔涓枃鍝?鏄敞閲婁笉鐢ㄧ瀹?br />Demo.cpp:浠g爜濡備笅:
#include <string.h>
#include <iostream>
#include "Demo.h"
int main( int argc , char* argv[])
{
聽MemoryInf mymem;
聽DiskInf mydisk;
聽DbInf mydb;
聽Inital( argv[1]);
聽mydisk = GetDiskStat();
聽mymem = GetMemInf();
聽mydb = GetDbStat();
聽printf("disk total space:%d\n",mydisk.TotalSpace);
聽printf("disk FreeSpace space:%d\n",mydisk.FreeSpace);
聽printf("Memory TotalMem:%d\n",mymem.TotalMem);
聽printf("ValidMem:%d\n",mymem.ValidMem);
聽printf("VirtualMem:%d\n",mymem.VirtualMem);
聽printf("DbConnNum:%d\n",mydb.DbConnNum);
聽printf("DbStat:%d\n",mydb.DbStat);
聽printf("cpu:%d\n",GetCpuInf());
聽DesIceCom();
聽return 1;
}
5.緙栬瘧鏂囦歡鐢熸垚鍙墽琛岀▼搴?
鐢ㄤ互涓嬪懡浠?
$c++聽-lMyApp聽-o聽Demo聽Demo.cpp
璇存槑:-lMyApp鍙傛暟琛ㄧず,鐢ㄥ姩鎬侀摼鎺ュ簱libMyApp.so涓璧瘋繘琛岀紪璇?瀵逛簡libMyApp.so鏈濂芥斁鍦?usr/lib鐩綍涓嬪搱
濡備笉鍑烘剰澶栧垰浼氱敓鎴愬悕涓篋emo鐨勫彲鎵ц鏂囦歡
char 杞崲涓?string 鍨?BR> char* str = "char 杞崲涓?string 鍨?;
SendData.strSql = str;
//SendData.strSql 涓簊td::string鍨?/P>
浠ヤ笅鏄腑鏂囨枃妗d腑鍏充簬绔偣鐨勬弿榪?
D.2 绔偣
綰茶
endpoint : endpoint
鎻忚堪
绔偣鍒楄〃鐢變竴涓垨澶氫釜鐢ㄥ啋鍙?:) 鍒嗛殧鐨勭鐐圭粍鎴愩傜鐐圭殑鏍煎紡濡備笅鎵
紺猴細 protocol option銆傛墍鏀寔鐨勫崗璁湁tcp銆乽dp銆乻sl錛屼互鍙?BR>default銆傚鏋滀嬌鐢ㄤ簡default錛屽畠浼氳Ice.Default.Protocol 灞炴х殑鍊兼浛
浠c傚鏋滅鐐圭殑鏍煎紡鏈夐棶棰橈紝鎴栬呮寚瀹氫簡鏈煡鐨勫崗璁紝搴旂敤浼氭敹鍒?BR>Ice::EndpointParseException銆?BR>鍙湁瀹夎浜咺ceSSL 鎻掍歡錛屾墠鑳戒嬌鐢╯sl 鍗忚銆?BR>鍚勪釜鍗忚鍙婂叾鎵鏀寔鐨勯夐」灝嗗湪涓嬮潰鎻忚堪銆?BR>TCP 绔偣
綰茶
tcp -h host -p port -t timeout -z
鎻忚堪
tcp 绔偣鏀寔浠ヤ笅閫夐」錛?BR>閫夐」鎻忚堪瀹㈡埛璇箟鏈嶅姟鍣ㄨ涔?BR>-h host 鎸囧畾绔偣鐨勪富鏈哄悕
鎴朓P 鍦板潃銆傚鏋?BR>娌℃湁鎸囧畾錛屽皢浣跨敤
Ice.Default.Hos
t 鐨勫箋?BR>紜畾瑕佽繛鎺ュ埌鐨勪富
鏈哄悕鎴朓P 鍦板潃銆?BR>紜畾瀵硅薄閫傞厤鍣ㄧ敤
浜庝睛鍚繛鎺ョ殑緗戠粶
鎺ュ彛錛屼互鍙婂湪閫傞厤
鍣ㄦ墍鍒涘緩鐨勪唬鐞嗕腑
鍚戝鍏竷鐨勪富鏈?BR>鍚嶃?BR>-p port 鎸囧畾绔偣鐨勭鍙?BR>鍙楓?BR>紜畾瑕佽繛鎺ュ埌鐨勭
鍙? 蹇呴』鎸囧畾)銆?BR>濡傛灉娌℃湁鎸囧畾榪欎釜
閫夐」錛屾垨鏄痯ort 涓?BR>闆訛紝绔彛灝嗙敱鎿嶄綔
緋葷粺閫夋嫨銆?BR>932 浠g悊涓庣鐐?/P>
浠ヤ笂鏄熀浜嶵CP鍗忚鐨?鍏充簬UDP,SSL鍗忚鐨勪篃宸笉澶?BR>
鎴戝湪鎴戠殑鑱婂ぉ紼嬪簭涓繛鎺AN涓竴鍙版湇鍔″櫒鐨勪唬鐮?
#include <Ice/Ice.h>
#include <Printer.h>
using namespace std;
using namespace Demo;
int main(int argc, char * argv[])
{
int status = 0;
char strtemp[100];//鑱婂ぉ鍐呭
char clientname[20];//瀹㈡埛鍚?BR> char chattmp[130];
Ice::CommunicatorPtr ic;
try {
ic = Ice::initialize(argc, argv);
/*榪炴帴鏈嶅姟鍣?SimplePrinter16鎵鐢寵鐨勪唬鐞咺D,default鍗充負浣跨敤榛樿鐨勫崗璁甌CP,-h 192.168.1.16 涓烘湇鍔$鎵鍦↙AN涓殑IP鍦板潃,-p 9600涓虹鍙e彿*/
Ice::ObjectPrx base = ic->stringToProxy("SimplePrinter16:default -h 192.168.1.16 -p 9600");
//鍒涘緩涓涓狿rinter鐨勪唬鐞?Printer鍗充負瀹㈡埛绔笌鏈嶅姟鍣ㄧ鐨勬帴鍙?錛屽埄鐢╟heckedCast(base)媯鏌ヤ唬鐞嗘槸鍚﹀瓨鍦?BR> PrinterPrx printer = PrinterPrx::checkedCast(base);
if (!printer)
{
throw "Invalid proxy";//浠g悊涓嶅瓨鍦?BR> }
else
{
printf("璇瘋緭鍏ユ?zhèn)ㄧ殑ID:");
cin >> clientname;
}
while ( 1 )
{
cin >> strtemp;//杈撳叆鑱婂ぉ鍐呭
if ( strcmp( strtemp,"q") == 0 )
{
break;//閫鍑鴻亰澶?BR> }
//strcat( chattmp, clientname );
strcpy( chattmp, clientname );
strcat( chattmp, " say: " );
strcat( chattmp, strtemp );
printer->printString(chattmp);
}
//鍙戠粰鏈嶅姟鍣ㄧ殑閫鍑烘秷鎭?BR> printer->printString(clientname);
printer->printString("宸查鍑?");
cout << "鎴愬姛閫鍑?" << endl;
} catch (const Ice::Exception & ex) {
cerr << ex << endl;
status = 1;
} catch (const char * msg) {
cerr << msg << endl;
status = 1;
}
if (ic) {
try {
ic->destroy();
} catch (const Ice::Exception & ex) {
cerr << ex << endl;
status = 1;
}
}
return status;
}