]]>VC6浠g爜鍚慥C2005鍗囩駭鏃惰娉ㄦ剰鐨勯棶棰?/title>http://www.shnenglu.com/bangle/archive/2008/10/17/64240.html榛戣壊澶╀嬌榛戣壊澶╀嬌Fri, 17 Oct 2008 06:49:00 GMThttp://www.shnenglu.com/bangle/archive/2008/10/17/64240.htmlhttp://www.shnenglu.com/bangle/comments/64240.htmlhttp://www.shnenglu.com/bangle/archive/2008/10/17/64240.html#Feedback0http://www.shnenglu.com/bangle/comments/commentRss/64240.htmlhttp://www.shnenglu.com/bangle/services/trackbacks/64240.html 鎼滅儲浜嗕竴涓媘s鐨勭綉绔欙紝鎵懼埌浜嗙粨鏋溿俶s璁や負浠ュ墠鐨刢/c++搴撲腑鏈変竴閮ㄥ垎鍑芥暟涓嶅瀹夊叏錛屽笇鏈涚▼搴忓憳鍙互浣跨敤浠栦滑鐨勬浛浠e畨鍏ㄥ簱(Safe Library)鏉ラ伩鍏嶄笉蹇呰鐨勯殣鎮c?鏁翠釜鍘熸枃璇風偣鍑諱互涓嬮摼鎺ヨ闂?Repel Attacks on Your Code with the Visual Studio 2005 Safe C and C++ Libraries 鍦ㄧ綉涓婃悳绱㈠埌鐨勬渶甯哥敤鐨勮В鍐蟲柟妗堬紝閭e氨鏄畾涔?_CRT_SECURE_NO_DEPRECATE 鍜?_SCL_SECURE_NO_DEPRECATE 鏉ョ姝c2005瀵規浜х敓璀﹀憡(渚濈劧浣跨敤鐨勬槸闈炲畨鍏ㄥ簱錛佹樉鐒跺茍涓嶆槸涓涓ソ鐨勮В鍐蟲柟妗?銆傝屼笖濡傛灉浣跨敤浜咥TL,鍒欒繕闇瑕佸畾涔?_ATL_SECURE_NO_DEPRECATE錛?浣跨敤浜哅FC鍒欓渶瑕佸畾涔?_AFX_SECURE_NO_DEPRECATE銆傜劧鑰屽敖綆″姝わ紝鏇村ソ鐨勮В鍐蟲柟妗堝彧闇瑕佸畾涔変竴涓畯 _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES, 閭d箞vc灝嗕細鑷姩鏇挎崲浣跨敤浠栦滑鐨凷afe Library鏉ヤ唬鏇緾/C++鏍囧噯搴?濡俿trcat灝嗚strcat_f鏉ュ彇浠?銆?br> 鍗充嬌浣跨敤浜哶CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES錛屼唬鐮佸皢渚濇棫涓嶅瀹夊叏:(, 瀵規錛宮s鎻愬嚭浜嗗涓?0鐐瑰緩璁? 1. 涓嶈璁や負 strcpy_s 鍜?strncpy_s( 浠ュ強鍏朵粬鐨勫瓧絎︿覆鍑芥暟)(鍦ㄧ┖闂翠笉澶熺殑鏃跺?浼氳嚜鍔ㄧ粓姝㈡嫹璐?truncate鎴柇錛屼笉鎴柇鍒欐剰鍛崇潃婧㈠嚭).濡傛灉闇瑕佽嚜鍔ㄦ埅鏂紝璇蜂嬌鐢╯trncpy_s (鍚屾椂浣跨敤_TRUNCATE浣滀負闀垮害鍙傛暟)銆?br> 2. 璁頒綇fopen_s緙虹渷鏄嫭鍗犳ā寮忋傚闇鍏變韓浣跨敤鏂囦歡錛屽簲璇ヤ嬌鐢╛sopen銆?br> 3. 鍒繕浜哶dupenv_s, 瀹冨皢姣擾getenv_s鏇村鏄撲嬌鐢紝鍥犱負瀹冭兘鑷姩鍒嗛厤涓涓紜暱搴︾殑鍐呭瓨(buffer)銆?br> 4. 鍦╯canf_s涓皬蹇冨弬鏁伴『搴忋?br> 5. 紜畾printf_s涓牸寮忓瓧絎︿覆鐨勬紜?br> 6. 浣跨敤_countof(x)鏉ュ彇浠izeof(x)/sizeof(element). _countof灝嗕細姝g‘鐨勮綆楀厓绱犱釜鏁幫紝鑰屼笖濡傛灉x鏄竴涓寚閽堬紝緙栬瘧鍣ㄥ皢浼氬彂鍑轟竴涓鍛?鏉ユ彁閱掔▼搴忓憳,浠呴拡瀵笴++緙栬瘧) 7. 璁頒綇鎵鏈夌殑sizes(澶у皬,闈為暱搴?閮芥槸浣跨敤characters(瀛楃錛寀nicode涓嬩竴涓瓧絎﹀崰2涓猙yte)浣滀負鍗曚綅錛岃屼笉鏄痓ytes(瀛楄妭). 8. 璁頒綇鎵鏈夌殑sizes(澶у皬錛岄潪闀垮害錛岀紭鐢卞悓涓?鍖呭惈浜嗗瓧絎︿覆緇撴潫絎?\0'(鍗沖埆蹇樹簡寰堝鎯呭喌涓媠ize闇瑕?1)銆?br> 9. 璋冭瘯鐨勬椂鍊欑洃瑙嗘暟鎹?xfd銆?(鍦ㄨ皟璇曠増鏈笅)0xfd灝嗕細琚~鍏呭湪鏁版嵁(buffer錛岄氬父鏄瓧絎︿覆)鐨勭粨灝懼銆傚鏋滆繍琛岄潪浣犳墍鎰匡紝鍙兘浼氬緱鍒頒竴涓暱搴﹂敊璇?br> 10. 媯鏌ユ墍鏈夌殑閿欒銆?璁稿鏂板嚱鏁扮浉姣旀棫鍑芥暟,鑳借繑鍥?琛ㄧず)閿欒淇℃伅(鐨勬暟鍊?銆?br> 浠婂ぉ鍦ㄦ妸浠ュ墠鐨勯」鐩畃ort鍒癡C2005涓婃潵鏃訛紝紕板埌浜嗕笉灝戦棶棰橈紝澶ч兘鍜屽瓧絎﹀鐞嗙浉鍏熾俈C2005涓粯璁ょ殑瀛楃澶勭悊鍑芥暟閮芥槸璋冪敤鍙屽瓧鑺傜増鏈紝鑰屼笖鐩存帴鍦ㄤ唬鐮佷腑杈撳叆鐨勫瓧絎︿覆閮介粯璁や負鍙屽瓧鑺傜殑銆?br> 鍦ㄩ」鐩殑杞崲Log涓彂鐜拌繖涓孌碉細The C/C++ compiler default settings have been modified to be more compliant with ISO Standard C++. Included in those changes are enforcing Standard C++ for loop scoping and supporting wchar_t as a native type. These changes may cause existing code to no longer compile without changes to the code or the compiler options with which it is built. Standard C++ 鏈夎姹倃char_t浣滀負榛樿鐨勫瓧絎︾被鍨嬪悧錛熷彧濂藉厛鍦≒roject->Properties->Configuration Properties->C/C++->Language涓殑閫夐」"Treate wchar_t as Build-in Type"璁劇疆涓篘o 榪樻湁涓鐐瑰氨鏄疺C2005鐨凜RT鐢ㄧ殑鏄柊鐗堢殑Security-Enhanced Versions of CRT Functions,鏈夊叧瀛楃涓插鐞嗙殑鐩稿叧鍑芥暟閮借寤鴻鐢ㄥ悗緙鍔犱笂"_s"鐨勭増鏈紝榪欐牱鐨勮瘽錛屽湪浠庝互鍓嶉」鐩殑杞崲涓細鍑虹幇涓澶у爢鐨剋arnings錛屽仛濂界殑瑙e喅鍔炴硶鏄細鍦ㄩ緙栬瘧澶存枃浠朵腑鐨勪換浣昳nclude涔嬪墠鍔犲叆: //for Secure Template Overloads of Security-Enhanced Versions of CRT Functions #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 瀹氫箟榪欎釜瀹忓氨浼氶粯璁や嬌鐢⊿ecurity-Enhanced CRT錛屽嵆浣夸綘鐨勪唬鐮佷腑鐢ㄧ殑騫朵笉鏄姞鍚庣紑_s鐨勫嚱鏁扮増鏈紝鍥犱負瀹冨湪搴撲腑浣跨敤浜嗕竴涓皬鎶閲忥細鍑芥暟閲嶈澆銆?br> 浣嗘槸鍗充嬌浣犲畬鍏ㄦ寜鐓т笂闈㈢殑鍋氫簡錛屽湪緙栬瘧浠g爜鐨勬椂鍊欒繕鏄細鍑虹幇涓澶у爢鐑︿漢鐨剋arnings錛屼綘鍙兘浼氳“鎴戜笉鏄凡緇忕敤鏂扮増鐨凜RT浜嗗悧錛?#8221; 鏄殑錛屾病閿欙紒閭f槸鍦ㄩ摼鎺ョ殑鏃跺欏仛鐨勶紝浣嗘槸緙栬瘧鍣ㄥ湪緙栬瘧浣犵殑浠g爜鐨勬椂鍊欏茍涓嶆竻妤氾紝瀹冨彧璁や綘涓婇潰鍐欑殑鏄粈涔堬紝娌?xxx_s";錛屽氨緇欎綘濂界湅錛佷笉璁╁畠浠嚭鐜版湁涓ょ鍔炴硶錛屾垜浠鍏堟兂鍒扮殑灝辨槸鍙互鍦ㄩ緙栬瘧澶存枃浠墮噷鍔犱笂#pragma warning (disable :xxxx)錛岃繖鏍蜂篃涓嶅け涓轟竴涓鐞嗙殑鍔炴硶銆傚彟澶栦竴涓槸VS2005鑷甫MSDN涓鏄庣殑鍔炴硶錛屽悓涓婏紝鍦╯tdafx.h娌nclude浠諱綍澶存枃浠朵箣鍓嶅畾涔変竴涓畯: //for no more warns about the Security-Enhanced Versions of CRT Functions #define _CRT_SECURE_NO_DEPRECATE 銆愮郴緇熷垎鏋愩戙愮紪璇戙戙愪唬鐮佸崌綰с戝崌綰у埌Visual C++ 2005搴撹娉ㄦ剰浜嬮」 Visual C++搴撶殑鍗侀」紿佺牬鎬у彉鍖?lt;/p><p>Visual C++ 2005搴撳凡緇忓彂鐢熶簡涓緋誨垪鐨勫彉鍖栵紝鍙兘浼氬鐜版湁鐨勭▼搴忔湁鎵褰卞搷錛屽湪鍗囩駭鍒癡isual C++ 2005涔嬪墠錛屽繀欏昏紜畾紼嬪簭涓病鏈夎繖浜涢棶棰樸?br> 1銆佸弬鏁扮殑鏈夋晥鎬?br> 鍦–榪愯鏃跺簱涓紝鍔犲叆浜嗕竴浜涗唬鐮侊紝浠ユ鏌ュ弬鏁扮殑鏈夋晥鎬с備緥濡傦細濡傛灉浼犻掔殑鐩爣緙撳啿鍖哄ぇ灝忎笉瓚充互strcpy浣跨敤--閫氬父榪欐槸鍦ㄥ啋瀹夊叏椋庨櫓錛岃屾柊鐗堟湰姝ゆ椂鍒欎細璋冪敤涓涓潪娉曞弬鏁板鐞嗙▼搴忋傚湪release鐗堜腑錛屼細璋冪敤Dr.Watson錛涜屽湪debug鐗堜腑錛屼細浜х敓鏂█錛坅ssert錛夛紝褰撶劧錛屽彧瑕佺▼搴忎腑浼犻掔殑鍙傛暟閮芥槸鏈夋晥鐨勶紝灝變笉浼氭湁浠涔堥棶棰樹簡銆?br> 2銆佸闈炲畨鍏ˋPI鐨勮鍛?br> 鍦╒isual C++ 2005涓紝CRT涓殑涓緇勫嚱鏁板凡涓嶅啀寤鴻浣跨敤錛岃屽簲浣跨敤鏂版彁渚涚殑瀹夊叏鐗堟湰銆傚ぇ澶氭暟榪欎簺涓嶅緩璁嬌鐢ㄧ殑鍑芥暟濡傛灉浣跨敤涓嶅綋錛屽皢浼氬鑷寸紦鍐插尯婧㈠嚭鎴栧叾浠栧畨鍏ㄩ棶棰橈紝榪欎簺鍑芥暟濡傦細strcpy銆乻trcat絳夌瓑銆傝繖浜涘嚱鏁版柊鐨勫畨鍏ㄧ増鏈兘鍦ㄥ嚱鏁板悕鍚庡姞浜嗕竴涓猒s鍚庣紑錛屼互鏂逛究璇嗗埆錛屽strcpy_s銆亀cscpy_s銆乵bscpy_s銆乧alloc_s鍜宻trcat_s榪欎簺鍑芥暟銆傚鏋滄兂緇х畫浣跨敤鑰佺増鏈侀潪瀹夊叏鐨勫嚱鏁幫紝鍙湪婧愪唬鐮佸紑濮嬪鍔犱笂#define value of _CRT_SECURE_NO_DEPRECATE錛堟澶剉alue浠h〃鏌愪竴鏁板鹼級錛涚劧鑰岋紝榪樻槸寤鴻澶у鍗囩駭浠g爜浣跨敤鏂扮殑瀹夊叏鍑芥暟銆?br> 3銆佽凱浠e櫒瓚婄晫 鍙楁鏌ョ殑榪唬鍣紙checked iterators錛夊拰璋冭瘯榪唬鍣紙debug iterators錛変篃鍥犱負瀹夊叏鐨勫師鍥犺繘琛屼簡鐩稿簲鐨勬洿鏂幫紝濡傛灉榪唬鍣ㄨ秺鐣岋紝鍒欑浉搴斾細璋冪敤涓涓潪娉曞弬鏁板鐞嗙▼搴忋傚啀嬈℃彁閱掞紝鍙互閫氳繃鎶涘嚭涓涓秺鐣屽紓甯告潵閬垮厤浜х敓闈炴硶鍙傛暟闂銆傚湪浠g爜涓姞鍏?define value of _SECURE_SCL_THROWS錛屽茍鎶妚alue鍊艱涓?,榪欐牱灝變笉浼氳皟鐢ㄩ潪娉曞弬鏁板鐞嗙▼搴忥紝鑰屾槸浜х敓涓涓紓甯鎬簡銆備篃鍙互閫氳繃璁劇疆#defined value of _SECURE_SCL鍊間負闆訛紝鍏抽棴姝よ凱浠e櫒媯鏌ワ紝閫氬父榛樿鎯呭喌涓嬶紝姝ら夐」鏄墦寮鐨勩?br> 4銆乼ime_t綾誨瀷 time_t綾誨瀷閫氬父鐢ㄤ簬鏄劇ず浠?970騫村紑濮嬩互鏉ョ殑縐掓暟銆傜洿鍒癡isual C++ 7.1錛堝嵆Visual C++ .NET 2003錛夛紝time_t綾誨瀷閮借瀹氫箟涓轟竴涓猯ong錛岃屽埌浜哣isual C++ 2005涓紝宸茶瀹氫箟涓轟竴涓?4浣嶇被鍨嬶紝鍙敤浜庢樉紺轟竴鐩村埌3000騫寸殑鏃墮棿浜嗐?br> 5銆侀摼鎺ュ埌CRT 鎵樼搴旂敤紼嬪簭鐜板湪涓嶈兘闈欐侀摼鎺ュ埌CRT銆備互寰錛屽湪Visual C++ 7.0鍜?.1涓紙鎸嘨isual Studio .NET 2002涓?003錛夛紝鍙互鐢熸垚闈欐侀摼鎺ュ埌CRT鐨凜LR紼嬪簭錛岃屽湪Visual Studio 2005鍗磋涓嶉氥?br> 6銆佸崟綰跨▼CRT鏀寔 鍦╒isual Studio 2005涓紝宸茬粡鍙栨秷浜嗗崟綰跨▼CRT鏀寔銆傝屼笖鐢ㄥ彂灞曠殑鐪煎厜鏉ョ湅錛屾湭鏉ュぇ澶氭暟鐨勪漢榪樻槸鎰挎剰浣跨敤綰跨▼瀹夊叏鐨勫綰跨▼浠g爜銆?lt;br />鍦ㄧ嚎紼嬩腑錛屽彲浣跨敤_nolock鍚庣紑鏉ヤ紭鍖栦唬鐮侊紝浣嗗悓鏃訛紝榪欎簺鍑芥暟鏄潪綰跨▼瀹夊叏鐨勩?br> 7銆佸紓甯稿鐞?br> 鏈変袱縐嶇被鍨嬬殑寮傚父澶勭悊鍙緵閫夋嫨錛?EHa錛堝紓姝ョ殑錛夊拰/EHs錛堝悓姝++寮傚父錛夈傚湪浠ュ墠錛屽鏋滀嬌鐢ㄤ簡/EHs錛岄偅涔堝湪涓涓猚atch(…)鍧椾腑錛屼篃璁稿彲鑳姐佷篃璁鎬笉鍙兘鎹曟崏鍒扮粨鏋勫寲寮傚父錛屽洜涓烘琛屼負鏄病鏈夊畾涔変笖涓嶅彲闈犵殑錛涚幇鍦紝鍐嶄嬌鐢?EHs鏃訛紝灝卞彲淇濊瘉涓嶄細鎹曟崏鍒扮粨鏋勫寲寮傚父銆傚鏋滄兂涓庝互鍓嶇増鏈殑Visual C++淇濇寔涓鑷達紝騫朵笖鎹曟崏寮傛緇撴瀯鍖栧紓甯革紝榪樻槸搴旇鍦ㄧ紪璇戞椂浣跨敤/EHa銆?br> 8銆佸垵濮嬪寲欏哄簭 浠ュ線錛屽鏋滀唬鐮佷腑鍚屾椂鏈夋墭綆′笌鏈湴鍏ㄥ眬鍙橀噺鍙婂璞★紝閭d箞鍒濆鍖栭『搴忔槸涓嶇‘瀹氱殑錛涘浠g爜涓瓨鍦ㄦ墭綆″璞′笌鏈湴瀵硅薄浜掓搷浣滐紝灝變笉鑳戒繚璇佸摢涓涓璞″厛鍒濆鍖栦簡銆傜幇鍦紝Visual Stuio 2005鍙繚璇佹墍鏈夌殑鏈湴鍏ㄥ眬鍙橀噺鍙婂璞″厛鍒濆鍖栵紝鐒跺悗鎵嶅垵濮嬪寲鎵樼鍏ㄥ眬鍙橀噺鍙婂璞°?br> 9銆乸rintf 灝辯洰鍓嶆潵璇達紝printf涓殑%n鏍煎紡鍖栨寚紺虹涓鑸敤浜庢寚瀹氳緭鍑虹殑瀛楃涓暟銆傝繖宸茬粡紜涓轟竴涓畨鍏ㄩ殣鎮o紝騫朵笖宸茬鐢紝浣嗗彲浠ヤ嬌鐢╯et_printf_count_output鏉ュ惎鐢ㄥ畠錛涢氳繃浼犻掔粰set_printf_count_output涓涓浂鍊鹼紙0錛夊彲紱佺敤瀹冿紝鑰屼紶閫掍換鎰忎竴涓叾浠栧煎彲鍐嶆鍚敤銆?br> 10銆乻wprintf鍑芥暟 涓轟笌C++鏍囧噯淇濇寔涓鑷達紝瀵箂wprintf鍑芥暟涔熶綔浜嗕慨鏀癸紝鐜板湪瀹冨凡閬靛驚C++鏍囧噯浜嗐傚湪C++涓紝閫氳繃閫傚綋鐨勫弬鏁幫紝鍙疄鐜伴噸杞斤紱榪欎釜鍑芥暟鐨勮佺増鏈凡涓嶅啀寤鴻浣跨敤錛屽洜涓哄湪C涓紝鏄笉鍏佽閲嶈澆鐨勶紝鍥犳濡傛灉浣跨敤鑰佹牸寮忥紝灝嗕細榪斿洖涓涓敊璇?br> 緙栬瘧鍣ㄤ腑鐨勭獊鐮存у彉鍖?br> 闄や簡閭d簺浼氬獎鍝嶅埌搴撶殑鍙樺寲涔嬪錛屼篃鏈変竴浜涘彉鍖栦細褰卞搷鍒扮紪璇戝櫒銆備互涓嬫槸Visual C++ 2005涓紪璇戝櫒鐨勪富瑕佸彉鍖栵紝闇鍐嶆鎻愰啋鐨勬槸錛屾澶勫茍娌℃湁鍒楀嚭鎵鏈夌殑鍙樺寲錛屼絾鍗存槸寰蔣鍏徃VC++浣跨敤鑰呭強鍐呴儴鍚堜綔鑰呮墍紜鐨勫叧閿у彉鍖栥?br> 鎸囧悜鎴愬憳鐨勬寚閽?br> 鍦ㄤ箣鍓嶇殑鐗堟湰涓紝涓涓寚鍚戞垚鍛樼殑鎸囬拡涓嶉渶浣跨敤鍙栧潃鎿嶄綔絎︼紙&錛夊氨鑳借幏鍙栵紝鐜板湪錛孷isual C++ 2005宸茬粡涓ユ牸鎸夌収鏍囧噯錛屽繀欏昏浣跨敤鍙栧潃鎿嶄綔絎︼紝榪欎篃鏈夊姪浜庢秷闄ゆ綔鍦ㄧ殑榪愯鏃墮敊璇備絾涔熷鑷翠簡MFC搴撶殑璁稿鍦版柟闇瑕佷慨鏀癸紝鍚屾椂鎰忓懗鐫錛屽彲鑳戒細瀵圭幇鏈夌殑紼嬪簭閫犳垚褰卞搷銆?br> 鑼冨洿闄愬埗瑙勫垯 鍦╢or寰幆澹版槑涓紝榛樿鎯呭喌涓嬩笉寮哄埗鎵ц鑼冨洿闄愬埗瑙勫垯銆傚湪涔嬪墠鐨勭増鏈腑錛宖or寰幆涓彉閲忕殑鐢熷懡鏈熷皢浼氬歡緇埌寰幆涔嬪錛屼負涓庢爣鍑嗗吋瀹癸紝for寰幆涓畾涔夌殑鍙橀噺錛岀幇鍦ㄥ彧闄愬畾鍦╢or寰幆鍐呬嬌鐢ㄣ?br> wchar_t綾誨瀷 鐜板湪錛寃char_t宸蹭負榛樿鍐呯疆綾誨瀷銆傝繖灝辨槸璇達紝涔熻鍦ㄤ互鍓嶏紝wchar_t鍙兘浼氳褰撲綔涓涓猽nsigned short錛屽洜涓哄畠榪樹笉鏄唴緗被鍨嬶紝鎵浠ワ紝褰撲笌閭d簺鏈墂char_t綾誨瀷鍙橀噺鐨勬枃浠朵綔絎﹀彿姣旇緝鏃訛紝寰堝彲鑳戒細瀵艱嚧闂銆傚湪Visual C++ 2005涓紝wchar_t宸叉槸涓涓唴緗被鍨嬶紝涔熷氨鏄錛岄渶瑕佺‘瀹氫互鍓嶅wchar_t鐨勭敤娉曚笉浼氬鑷磋漿璇戜負涓涓猽nsigned short銆?br> 寮傚父澶勭悊 涓轟簡涓庡簱鐨勫彉鍖栦繚鎸佷竴鑷達紝緙栬瘧鍣ㄥ凡浣滀簡涓浜涗慨鏀癸紝浠ヤ究涓嶄細鎹曟崏鍒扮粨鏋勫寲寮傚父銆傛墍浠ワ紝涓轟笌浠ュ墠浠g爜淇濇寔鍏煎錛岃繕鏄簲璇ヤ嬌鐢?EHa銆? 鍙傛暟灞炴?br> 涓轟簡鎻愪緵鏇村仴澹殑灞炴?-涔熸槸涓轟簡浠g爜鐨勫仴澹э紝緙栬瘧鍣ㄧ幇鍦ㄥ皢浼氭鏌ョ被鍨嬨佹灇涓劇瓑絳夌殑灞炴с傝繖鎰忓懗鐫錛屼互鍓嶇殑浠g爜鍙兘浼氬湪灞炴ф柟闈㈢鍒頒竴涓粠鏈湁榪囩殑緙栬瘧鍣ㄩ敊璇?br> 榛樿涓篿nt 涓洪伒寰狢++鏍囧噯錛屽娌℃湁綾誨瀷澹版槑鐨勫彉閲忔垨鍑芥暟錛屽凡涓嶅啀榛樿涓篿nt綾誨瀷銆備絾鍦–璇█涓粛鐒跺彲浠ワ紝C++璇█涓凡涓嶈銆傝繖鐢氳嚦涔熷獎鍝嶅埌浜嗗井杞叕鍙歌嚜韜殑浠g爜錛屽寘鎷琋T緋葷粺鐨勪唬鐮侊紝鎵浠ユ渶濂界殑鏂瑰紡錛岃繕鏄樉寮忓0鏄庛?br> 鍏充簬C鐨勬墭綆′唬鐮?br> C璇█緙栬瘧鍣ㄤ竴鑸笉鍙兘鍒涘緩CLR鐨勬墭綆′唬鐮侊紝鍥犱負C璇█涓嶆槸闈㈠悜瀵硅薄鐨勶紝瀹冧笉絎﹀悎CLR鎵浣跨敤鐨勬ā鍨嬶紝鍥犳錛屼換浣曚互C璇█鏉ョ紪璇戠殑浠g爜閮戒細涓嶤LR緙栬瘧鍣ㄨ緗啿紿併備緥濡傦紝濡傛灉鍦ㄧ紪璇戞椂浣跨敤/TC璁劇疆錛岃屼笖鍙堣緗簡CLR錛屽氨浼氬鑷村啿紿併?br> 闈㈠悜CLR鐨勬柊璇硶 閫氳繃璁劇疆/clr緙栬瘧閫夐」錛孋++緙栬瘧鍣ㄥ彧鎺ュ彈鏂拌娉曘傝繖灝嗗己鍒舵帹騫垮姞鍏ュ埌Visual C++ 2005涓殑鏂拌娉曪紝鍚屾椂錛屼篃浼氬簾寮冩帀鑰佷唬鐮併?br> 瀹夊叏媯鏌?br> 鍦ㄥ畨鍏ㄨ秺鏉ヨ秺寰楀埌閲嶈鐨勪粖澶╋紝瀹夊叏媯鏌ラ夐」/GS錛屽湪榛樿鎯呭喌涓嬪氨鏄墦寮鐨勶紝榪樻槸鏈変竴瀹氶亾鐞嗙殑銆傚湪Visual C++銆2005涓紝榛樿鎯呭喌涓嬪皢浼氫嬌鐢?GS閫夐」銆?br> 緇撹:鏈枃鍒楀嚭浜嗗井杞叕鍙稿凡紜鐨刅isual C++ 2005涓殑涓浜涘叧閿у彉鍖栵紝铏界劧涓嶆槸鎵鏈夌殑鍙樺寲錛屼篃涓嶆槸鏈鏈夊彲鑳藉啿鍑誨埌浠g爜鐨勫彉鍖栵紝浣嗘澶勬墍鍒楀嚭鐨勯」鐩紝灝嗘渶鏈夊彲鑳藉鑷撮棶棰樼殑浜х敓銆傚綊鏍圭粨搴曪紝鍦ㄥ崌綰ф垨鐢ㄦ柊鐗堢紪璇戝櫒瀵圭▼搴忎綔淇敼涔嬪墠錛屽繀欏誨厛璇曠潃緙栬瘧鐜版湁紼嬪簭錛屼互紜浠g爜鑳介氳繃緙栬瘧錛屽惁鍒欙紝灝變笉鍙伩鍏嶈鍔ㄦ墜淇婧愪唬鐮佷腑瀛樺湪鐨勯棶棰樸?