锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
涓轟簡鍏嬫湇array蹇呴』浜嬪厛瀹e憡澶у皬鐨勪笉渚匡紝STL鍜?NET閮芥湁瑙e喅鐨勬柟寮忥紝鍦⊿TL鐨刢ontainer褰撲腑錛岄熷害鏈蹇殑灝辨槸std::vector錛岃?NET褰撲腑灝辨槸ArrayList錛屾墍浠ユ垜鎯蟲祴璇曞湪鍚屾牱鐨勭▼搴忎腑錛岃嫢浣跨敤unmanaged 鐨剆td::vector鏄惁浼氭瘮managed ArrayList蹇?br />
鎵ц緇撴灉
鎵ц緇撴灉浠ゆ垜璁跺紓錛屾垜鍘熸湰棰勬湡unmanaged鐨剆td::vector搴旇浼氭瘮杈冨揩錛屼絾緇撴灉鍗存槸managed鐨凙rrayList杈冨揩錛屾垜瑙夊緱鍙兘鐨勫師鍥犳槸錛宮anaged鐨勬暟鎹斁鍦–LR鍐咃紝鑰寀nmanaged鏁版嵁鏀懼湪涓嶅悓鐨勫湴鏂癸紝褰搖nmanaged鐨剆td::vector瑕佸湪managed鐨勬墽琛岀幆澧冧腑鏄劇ず鏃訛紝榪樿緇忚繃marshaling鐨勫姩浣滐紝鎵浠ユ氮璐逛簡涓浜涙椂闂達紝綾諱技鍦?NET涓嬌鐢–OM鐨刣ll鏃訛紝涔熷繀欏葷粡榪噈arshaling錛屾墍浠ラ熷害杈冩參銆?br />
鍥炲埌鎴戠涓涓棶棰橈紝鐢–++寮鍙慉SP.NET鏈変粈涔堝ソ澶?鍦ㄨ繖涓畝鍗曠殑紼嬪簭閲屽彲浠ュ彂鐜幫紝C++/CLI鐨勬渶澶х壒鑹詫紝璁╀綘鍙互灝唌anaged鍜寀nmanaged紼嬪簭鍐欏湪涓璧鳳紝鍚屾椂浣跨敤.NET Framework鍜屼紶緇烠++鐨刲ibrary錛屽STL銆乥oost錛岃繖鏄疌#鎵鍋氫笉鍒扮殑錛屽亣濡備綘鐨勫伐紼嬮鍩熷凡緇忔湁寰堝library錛屾槸鐢–/C++鍐欑殑錛屽彲鑳芥槸10鍑犲勾鍓嶇殑涓滆タ錛岀洰鍓嶆牴鏈病鏈塁#鐗堟湰鐨刲ibrary錛岃屼綘鍙堟ラ渶榪欎簺library鐨刦unction寮鍙?NET紼嬪簭錛孋++/CLI灝卞緢鏂逛究浜嗭紝璁╀綘鍚屾椂鎷ユ姳C/C++ library鍜?NET Framework錛岃繖涔熸槸Microsoft寮鍙慍++/CLI鐨勫師鍥犮?br />
緇撹
鍦–++/CLI寮鍙憁anaged code錛屾墽琛岄熷害涓嶄細姣擟#銆乂B蹇紝铏界劧C++/CLI鍙互寮鍙憉nmanaged code錛屼絾鑻?NET Framework鏈夌浉瀵瑰簲鐨勬敮鎸佹椂錛屽簲鍏堣冭檻.NET Framework錛岀劧鍚庡啀鑰冭檻鍏跺畠C++鑷繁鐨刲ibrary錛屽綋鐒禖++/CLI涓嶈鐨勯傚悎鎵鏈夊紑鍙戜漢鍛橈紝浣嗗浜庝竴浜涘紑鍙戜漢鍛樻槸寰堟柟渚跨殑銆?br />
榪欑寮鍙戞柟寮忕敓浜у姏騫朵笉楂橈紝鑻ュ彧鏄紑鍙戝涔犵敤鐨勫皬紼嬪簭鍒欏獎鍝嶄笉澶э紝浣嗚嫢瑕佸紑鍙戝ぇ鍨嬮」鐩椂錛岀▼搴忔。妗堜釜鏁頒紬澶氾紝闇瑕佺敤project鎴杝olution鐨勬柟寮忕鐞嗭紱涓攄ebug鏃禸reakpoint鐨勫姞鍏ワ紝鍗曟鎵ц錛岃瀵熷彉閲忓彉鍖栫瓑錛岄兘闇瑕佹洿鍙鍖栫殑鏂瑰紡鎵嶈兘澶熷鍔犵敓浜у姏錛涙渶閲嶈鐨勶紝鐢變簬鐜板湪鐨勭▼搴忚璦鐨嗛潪甯哥殑搴炲ぇ錛屽張鏈夊鏉傜殑鍑藉紡搴擄紝瑕佺▼搴忓憳鐔熻鎵鏈夌殑紼嬪簭璇硶鍜宖unction鍚嶇О錛屽疄鍦ㄥ緢鍥伴毦錛屾墍浠ヨ娉曟彁紺?Intellisense)鐨勫姛鑳藉氨闈炲父閲嶈錛岃繖浜涘氨蹇呴』闈營DE鏉ヨ揪鎴愩?/p>
鍦╓indows騫沖彴涓婏紝鑻ヨ寮鍙慍/C++紼嬪簭錛屾垜浠湁Microsoft Visual Studio銆丅orland C++ Builder鍙敤錛岃繖浜涢兘鏄緢濂界敤鐨処DE錛屼絾鍙儨浠呰兘鍦╓indows涓嬩嬌鐢紝浣嗘槸鍦↙inux騫沖彴鍛?鍩轟簬浠ヤ笅鐞嗙敱錛屾垜鎺ㄨ崘浣跨敤Eclipse寮鍙慍/C++紼嬪簭錛?br />
1.聽Eclipse鏄竴涓敤Java鎵鎾板啓IDE錛屽洜姝ゅ彲璺ㄥ鉤鍙幫紝鎵浠ュ湪Linux鍜學indows騫沖彴涓嬬殕鍙嬌鐢‥clipse錛屽彲闄嶄綆紼嬪簭鍛樼啛鏋怚DE鐨勫涔犳洸綰褲?br />
2.聽Eclipse铏界劧涓昏鎷挎潵寮鍙慗ava紼嬪簭錛屼絾浜嬪疄涓奅clipse涓轟竴涓庝竾鐢ㄨ璦銆忕殑IDE錛屽彧瑕佹寕涓妏lugin鍚庯紝灝卞彲浠ュ湪Eclipse寮鍙戝悇縐嶈璦紼嬪簭錛屾墍浠ユ垜浠彧瑕佹寕涓奀DT(C/C++ Development Toolkit)鍚庯紝灝卞彲浠ュ湪Eclipse寮鍙慍/C++紼嬪簭錛岄櫎姝や箣澶栵紝鐩墠鐨勪富嫻佺▼搴忚璦錛屽C/C++銆丆#銆丣ava銆丳HP銆丳erl銆丳ython銆丷uby銆丷ebol銆丣avaScript銆丼QL銆乆ML銆乁ML絳夛紝鐨嗗彲鍦‥clipse涓婃挵鍐欙紝鎵浠ュ彧瑕佺啛鏋怑clipse鐨処DE鐜錛屽皢鏉ヨ嫢寮鍙戝叾瀹冭璦紼嬪簭錛屽氨涓嶇敤鍐嶉噸鏂板涔營DE鐜浜嗐?br />
3.聽鏈閲嶈鐨勶紝Eclipse鍜孋DT鏄疧pen Source涓斿畬鍏ㄥ厤璐癸紝鍙栧緱鐩稿綋瀹規槗錛屼簨瀹炰笂Fedora 5宸茬粡鍖呭惈Eclipse鍜孋DT浜嗭紝铏界劧棰勮Fedara 5瀹夎鏃跺茍娌℃湁鍚獷clipse錛屽彧瑕佹墜鍔ㄥ彟澶栧姞閫夊嵆鍙?/p>
B.聽濡備綍鍦↙inux涓嬪畨瑁匛clipse鍜孋DT?聽
i.聽鐢盠inux Distribution瀹夎Eclipse錛孎edora 5灝卞唴鍚獷clipse鍜孋DT銆?br />
ii.聽鎵嬪姩瀹夎
聽 1.聽涓嬭澆妗f
聽聽聽 A銆伮犱笅杞絁RE(Java Runtime Environment) 銆?http://java.sun.com/javase/downloads/index.jsp)
聽聽聽 B銆伮犱笅杞紼clipse SDK銆?http://www.eclipse.org/downloads/)
聽聽聽 C銆伮犱笅杞紺DT銆?http://www.eclipse.org/cdt/downloads.php)
聽 2.聽瀹夎
聽聽聽 A銆伮犲畨瑁匤RE
聽聽聽聽聽 i.聽[root@localhost ~]#mkdir /usr/local/java
聽聽聽聽聽 ii.聽(灝嗘。妗坖re-1_5_0_09-linux-i586-rpm.bin涓嬭澆鍒?usr/local/java鐩綍涓?
聽聽聽聽聽 iii.聽(瓚呯駭鐢ㄦ埛妯″紡)
聽聽聽聽聽 [root@localhost ~]#su聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽 iv.聽 [root@localhost ~]#cd /usr/java
聽聽聽聽聽 v.聽(灝嗘偍鎵涓嬭澆鐨勬。鐨勬潈闄愭洿鏀逛負鍙墽琛?
聽聽聽聽聽 [root@localhost java]#chmod a+x jre-1_5_0_09-linux-i586-rpm.bin聽
聽聽聽聽聽 vi.聽(鍚姩瀹夎榪囩▼)
聽聽聽聽聽 [root@localhost java]#./jre-1_5_0_09-linux-i586-rpm.bin
聽聽聽聽聽 (姝ゆ椂灝嗘樉紺轟簩榪涘埗璁稿彲鍗忚錛屾寜鎺ф牸鏄劇ず涓嬩竴欏碉紝璇誨畬璁稿彲鍗忚鍚庯紝杈撳叆 銆巠es銆忕戶緇畨瑁呫傛鏃朵細灝嗚В鍘嬬緝錛屼駭鐢焜re-1_5_0_9-linux-i586.rpm)
聽聽聽聽聽 vii. (瀹夎jre-1_5_0_9-linux-i586.rpm)
聽聽聽聽聽 [root@localhost java]#rpm 鈥搃vh jre-1_5_0_9-linux-i586.rpm
聽聽聽聽聽 (姝ゆ椂浼氬皢JRE瑁呭湪/usr/java/jre1.5.0_09鐩綍涓?
聽聽聽聽聽 viii.聽(璁懼畾鐜鍙橀噺錛岃Linux鑳芥壘鍒癑RE)
聽聽聽聽聽 [root@localhost java]#vi /etc/profile
聽聽聽聽聽 (灝嗕互涓嬪唴瀹瑰姞鍏ュ湪妗f鍚庨潰)
聽聽聽聽聽 (瀛樼洏鍚庯紝閲嶆柊鍚姩Linux)
聽聽聽聽聽 ix.聽(嫻嬭瘯Java鏄惁瀹夎鎴愬姛)
聽聽聽聽聽 [root@localhost ~]#java 鈥搗ersion
聽聽聽 B銆伮犲畨瑁匛clipse SDK
聽聽聽聽聽 i.聽(灝嗘。妗坋clipse-SDK-3.2.1-linux-gtk.tar.gz涓嬭澆鍒版闈?
聽聽聽聽聽 ii.聽[root@localhost ~]#cd /usr/local
聽聽聽聽聽 iii.聽[root@localhost local]#cp ~Desktop/eclipse-SDK-3.2.1-linux-gtk.tar.gz .聽聽聽聽
聽聽聽聽聽 iv.聽(灝唀clipse-SDK-3.2.1-linux-gtk.tar.gz瑙e帇緙?
聽聽聽聽聽 [root@localhost local]#tar 鈥搝xvf eclipse-SDK-3.2.1-linux-gtk.tar.gz
聽聽聽聽聽 v.聽[root@localhost local]#cd eclipse
聽聽聽聽聽 vi.聽(鎵цEclipse)
聽聽聽聽聽 [root@localhost eclipse]#./eclipse
聽聽聽聽聽 vii.聽(Select a workspace)
聽聽聽聽聽 (灝哢se this as the default and do not ask again鎵撳嬀錛屼互鍚庡氨涓嶄細鍑虹幇榪欎釜紿楀彛)
聽聽聽聽聽 (絎竴嬈℃墽琛孍clipse浼氬嚭鐜版error錛屽洜涓烘病鏈変換浣旹clipse璁懼畾妗o紝鎵浠ユ棤娉曡鍙栵紝絎簩嬈℃墽琛孍clipse灝辨棤姝ら敊璇鎭紝鎸塐K緇х畫銆?
聽聽聽聽聽 (Eclipse涓葷敾闈?
聽聽聽 C銆?瀹夎CDT
聽聽聽聽聽 i. (灝嗘。妗坥rg.eclipse.cdt-3.1.1-linux.x86.tar.gz涓嬭澆鍒版闈?
聽聽聽聽聽 ii. [root@localhost ~]#cp ~/Desktop/org.eclipse.cdt-3.1.1-linux.x86.tar.gz .
聽聽聽聽聽 iii. (灝唎rg.eclipse.cdt-3.1.1-linux.x86.tar.gz瑙e帇緙?
聽聽聽聽聽 [root@localhost ~]#tar 鈥搝xvf org.eclipse.cdt-3.1.1-linux.x86.tar.gz
聽聽聽聽聽 (妗f灝嗚В鍒皛/eclipse鐩綍涓?
聽聽聽聽聽 iv. (瀹夎CDT plugin)
聽聽聽聽聽 [root@localhost ~]cp 鈥搑 eclipse/plugins/. /usr/local/eclipse/plugins/
聽聽聽聽聽 v. (鍚姩Eclipse錛屽浜咰鍜孋++ Project鏀寔)聽
聽聽聽
C.聽濡備綍鍦‥clipse涓婂紑鍙慍/C++紼嬪簭?
i.聽寤虹珛Hello Word project
聽 1.聽寤虹珛C/C++ project
聽 2.聽閫夋嫨Managed Make C++ Project(鑻ラ夋嫨Managed Make C++ Project錛孍clipse浼氳嚜鍔ㄤ負鎴戜滑寤虹珛make file錛涜嫢閫夋嫨Standard Make C++ Project錛屽垯蹇呴』鑷繁鍐檓ake file銆?
聽 3.聽杈撳叆Project name
聽 4.聽閫夋嫨Project綾誨瀷(濡傛墽琛屾。鎴朙ibrary錛岃繖閲岄夋嫨鎵ц妗e嵆鍙?
聽 5.聽棰濆鐨勮瀹?br />
聽 6.聽Open Associated Perspective?(閫塝es緇х畫)
聽 7.聽寤虹珛C++ Source File
8.聽杈撳叆C++ Source File妾斿悕
聽 9.聽杈撳叆C++紼嬪簭浠g爜
聽 10.聽鎵ц紼嬪簭(鏄劇ず鍦ㄤ笅鏂圭殑Console鍖?
ii.聽濡備綍鍦‥clipse CDT涓璂ebug C/C++紼嬪簭?
1.聽鍦‥clipse涓璂ebug錛屽氨濡傚悓鍦ㄤ竴鑸琁DE涓璂ebug涓鏍鳳紝鍙鍦ㄧ▼搴忎唬鐮佺殑宸︽柟鎸変袱涓嬶紝灝卞彲鍔犲叆breakpoint銆?br />
聽 2.聽鍚姩Debug
聽 3.聽Debug璁懼畾錛屾寜Debug寮濮婦ebug
聽 4.聽鍗曟鎵ц錛屾樉紺哄彉閲忓彉鍖?br />
E.聽緇撹
Eclipse涓篖inux鍦–/C++寮鍙戞彁渚涗竴涓畬鍠勭殑IDE鐜錛屼簨瀹炰笂錛屼互鎴戠敤榪囦紬澶欼DE鐨勭粡楠岋紝闄や簡Visual Studio鏈鏂逛究澶栵紝Eclipse鐨勫ソ鐢ㄤ篃鐩磋拷Visual Studio錛屽茍涓旇秴瓚夿orland C++ Builder鍙奃ev C++錛岃櫧鐒跺畨瑁呬笂姣旇緝楹葷儲錛屼絾鍙渚濈収鏈枃浠嬬粛涓姝ヤ竴姝ョ殑璁懼畾錛屽氨涓瀹氬彲瀹屾垚Eclipse璁懼畾錛岃嫢鎯寵鍦╓indows騫沖彴浣跨敤gcc compiler錛屼篃寤鴻浣跨敤Eclipse + CDT + MinGW鐨勭粍鍚堛?br />
See Also
[杞澆] Eclipse + CDT + MinGW 瀹夎鏂規硶
Reference
1.聽涓篖inux鎵嬪姩涓嬭澆鍜屽畨瑁匤ava Runtime Enrironment(JRE)鐨勮鏄?br />(http://www.java.com/zh_CN/download/help/5000010500.xml)
2.聽Eclipse 3.0 CDT on Linux
(http://www.autexier.de/jmau/dev/CDT/cdt.html)
鏈鍚庡彧瑕佸皢HelloWorld.aspx鏀懼埌c:\Inetpub\wwwroot\涓嬶紝HelloWorld.dll鏀懼埌c:\Inetpub\wwwroot\bin\涓嬶紝灝卞畬鎴恉eployment銆?br />
緇撹
寰堝浜鴻C++鏃犳硶寮鍙慉SP.NET錛孉NSI C++鐨勭‘涓嶈兘錛屼絾C++/CLI鍒欏彲浠ワ紝浜嬪疄涓婏紝浠諱綍.NET涓嬬殑璇█閮藉彲浠ュ紑鍙慉SP.NET錛岃櫧鐒禫isual Studio 2005宸ュ叿涓嶈鐨勬敮鎸侊紝浣嗗彧瑕侀忚繃涓浜涘皬鎶宸э紝浣犱緷鐒跺彲浠ョ敤濡沖枩嬈㈢殑.NET璇█寮鍙慉SP.NET銆?br />
Reference
ASP.NET with Managed C++聽, Soliant, The聽 code project.