锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
浠婂ぉ瀹夎codeblocks灝遍亣鍒頒簡榪欎釜闂錛屽簱鍦?usr/lib涓嬶紝涓嶅姞涓婅繖涓厤緗緇堟彁紺猴細
./codeblocks: error while loading shared libraries: libcodeblocks.so.0: cannot open shared object file: No such file or directory
鍔犱笂鍚庨棶棰樿В鍐籌紒~
鍋氱綉緇滄ā鍧楃殑鏃跺欑粡甯鎬細閬囧埌鏈夊叧緗戝潃鐨勫鐞?涓鑸ぇ鑷寸殑鎯呭艦鏄?縐?
1.寰楀埌鐨勬槸鍩熷悕,濡?www.3322.org
2.寰楀埌鐨勬槸瀹為檯鐨処P鍦板潃,濡?61.160.235.203
3.寰楀埌鐨勬槸緇忚繃inet_addr澶勭悊榪囩殑IP,涓簎nsigned long(DWORD)
涓.閭d箞濡傛灉鏄粰鍑虹偣鍒嗗埗鐨処P瑕佽漿涓篋WORD鍨嬫槸濡備綍杞寲鍛?榪欎釜鍏跺疄鏈綆鍗?鏈変笓闂ㄧ殑鍑芥暟涓撻棬澶勭悊姝や簨
unsigned long dwIP = inet_addr("222.212.12.77"); printf("IP(%s)->DWORD(%lu)\n"); //output IP(222.212.12.77)->DWORD(1292686558)
浜?絎竴縐嶆儏鍐電殑閫嗚漿鍖?/p>
#include <stdio.h> #include <stdlib.h> #include <sys/select.h> #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <errno.h> #include <string.h> int main(int argc, char *argv[]) { struct in_addr net; char tmp[16] = {0}; if(argc != 3) { printf("You MUST enter 3 varibal.No.1:func name No.2:case.No.3:ip(string or DWORD)\n"); return 0; } if(strcmp("1", argv[1]) == 0) { char* ip_string; ip_string = argv[2]; unsigned long dword = inet_addr(ip_string); printf("IP(%s)-->DWORD(%lu)\n", ip_string, dword); } else if(strcmp("2", argv[1]) == 0) { net.s_addr = (unsigned long)atol(argv[2]); strcpy(tmp, inet_ntoa(net)); printf("DWORD(%s)-->IP(%s)\n",argv[2], tmp); } return 0; }
榪欓噷緇欏嚭涓涓偣鍒嗗埗IP鍜孌WORD鐩鎬簰杞寲鐨勭▼搴?/pre>涓?濡傛灉緇欏嚭鐨勬槸鍩熷悕鑰屾兂寰楀埌鐐瑰垎鍒剁殑IP鍛?榪欓噷緇欏嚭涓涓帴鍙?鏀寔杈撳叆鐨勭被鍨嬫槸鐐瑰垎鍒跺拰鍩熷悕2涓被鍨?榪斿洖鐨勬槸DWORD鍨嬬殑IP鏈変竴鐐硅澹版槑鐨勬槸gethostbyname榪欎釜鍑芥暟蹇呴』鍦ㄧ綉緇滆繛閫氱殑鎯呭喌涓嬫墠鑳芥紜畬鎴愬煙鍚嶇殑瑙f瀽,浣犳兂,榪炰釜緗戦兘涓嶉?瀹冩庝箞瑙f瀽?#include <stdio.h> #include <stdlib.h> #include <sys/select.h> #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <errno.h> #include <string.h> #define DWORD unsigned long DWORD platform_domain2ip(const char *szDomain, char *szDotNumIP) { char szAddr[32] = {0}; struct hostent *pHost; printf("input domain name(%s)\n", szDomain); if((pHost = gethostbyname(szDomain)) == NULL) { printf("can not parse domain\n"); return -1; } printf("HostName :%s\n",pHost->h_name); strcpy(szAddr, inet_ntoa(*((struct in_addr *)pHost->h_addr))); printf("IP Address :%s\n", szAddr); strcpy(szDotNumIP, szAddr); return inet_addr(szAddr); } int main(int argc, char *argv[]) { DWORD dwip; char *ip = malloc(32); //dwip = platform_domain2ip("www.3322.org", ip); dwip = platform_domain2ip("61.160.235.203", ip); printf("ip 1 (%s) 2 dw(%lu)\n", ip, dwip); return 0; }//鍙互灝唌ain鐨勬敞鍐屽垎鍒墦寮鏉ュ垽鏂笅緇撴灉鏄惁姝g‘,榪欓噷緇欏嚭榪愯鐨勭粨鏋?鏈夊浘鏈夌湡鐩?/pre>緙栬瘧鐨勫懡浠ゅ啀璇翠笅鍚?鎬曟湁浜轟笉鐭ラ亾gcc gethost.c –Wall –o gethost//鍦╨inux涓?/pre>arm-hismall-linux-gcc gethost.c –Wall –o gethost//宓屽叆寮忕幆澧冧笅姝ゆ帴鍙e凡緇忓湪鎴戠殑宸ョ▼涓嬌鐢?鍦ㄥ鉤鍙癐P鐨勮В鏋愬拰3322鐨勮В鏋愪腑寰楀埌浜嗗簲鐢?鎵浠ユ槸紼沖畾鍙鐨?榪?涓璉P鐨勮漿鍖栭兘浜嗚В浜嗙殑璇?閭d箞緗戠粶緙栫▼涓嶅氨鎵櫎浜嗕竴涓ぇ鐭沖ご鍚?鍛靛懙,澶у鍔熻兘榪涙緗戜笂姣旇緝嫻佽鐨刧ethostbyname鐨勪緥瀛愬涓?鍙楀埌浜嗗惎鍙?/pre>#include <stdio.h> #include <stdlib.h> #include <sys/select.h> #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <errno.h> #include <string.h> int main(int argc, char **argv) { char *ptr,**pptr; struct hostent *hptr; char str[32]; /* 鍙栧緱鍛戒護鍚庣涓涓弬鏁幫紝鍗寵瑙f瀽鐨勫煙鍚嶆垨涓繪満鍚?*/ ptr = argv[1]; /* 璋冪敤gethostbyname()銆傝皟鐢ㄧ粨鏋滈兘瀛樺湪hptr涓?*/ if((hptr = gethostbyname(ptr)) == NULL) { printf("gethostbyname error for host:%s\n", ptr); return 1; /* 濡傛灉璋冪敤gethostbyname鍙戠敓閿欒錛岃繑鍥? */ } printf("official hostname:%s\n",hptr->h_name); /* 涓繪満鍙兘鏈夊涓埆鍚嶏紝灝嗘墍鏈夊埆鍚嶅垎鍒墦鍑烘潵 */ for(pptr = hptr->h_aliases; *pptr != NULL; pptr++) printf(" alias:%s\n",*pptr); /* 鏍規嵁鍦板潃綾誨瀷錛屽皢鍦板潃鎵撳嚭鏉?*/ switch(hptr->h_addrtype) { case AF_INET: case AF_INET6: pptr=hptr->h_addr_list; /* 灝嗗垰鎵嶅緱鍒扮殑鎵鏈夊湴鍧閮芥墦鍑烘潵銆傚叾涓皟鐢ㄤ簡inet_ntop()鍑芥暟*/ for(;*pptr!=NULL;pptr++) printf(" address:%s\n", inet_ntop(hptr->h_addrtype,*pptr, str, sizeof(str))); break; default: printf("unknown address type\n"); break; } return 0; }
鍙傛暟 鍚箟
/MDd /MLd 鎴?/MTd 浣跨敤 Debug runtime library (璋冭瘯鐗堟湰鐨勮繍琛屾椂鍒誨嚱鏁板簱)
/Od 鍏抽棴浼樺寲寮鍏?
/D "_DEBUG" 鐩稿綋浜?#define _DEBUG,鎵撳紑緙栬瘧璋冭瘯浠g爜寮鍏?(涓昏閽堝assert鍑芥暟)
/ZI 鍒涘緩 Edit and continue(緙栬緫緇х畫)鏁版嵁搴擄紝榪欐牱鍦ㄨ皟璇曡繃紼嬩腑濡傛灉淇敼浜嗘簮浠g爜涓嶉渶閲嶆柊緙栬瘧
/GZ 鍙互甯姪鎹曡幏鍐呭瓨閿欒
/Gm 鎵撳紑鏈灝忓寲閲嶉摼鎺ュ紑鍏籌紝 鍑忓皯閾炬帴鏃墮棿
Release 鐗堟湰
鍙傛暟 鍚箟
/MD /ML 鎴?/MT 浣跨敤鍙戝竷鐗堟湰鐨勮繍琛屾椂鍒誨嚱鏁板簱
/O1 鎴?/O2 浼樺寲寮鍏籌紝浣跨▼搴忔渶灝忔垨鏈蹇?
/D "NDEBUG" 鍏抽棴鏉′歡緙栬瘧璋冭瘯浠g爜寮鍏?(鍗充笉緙栬瘧assert鍑芥暟)
/GF 鍚堝茍閲嶅鐨勫瓧絎︿覆錛?騫跺皢瀛楃涓插父閲忔斁鍒板彧璇誨唴瀛橈紝 闃叉琚慨鏀?
瀹為檯涓婏紝Debug 鍜?Release 騫舵病鏈夋湰璐ㄧ殑鐣岄檺錛屼粬浠彧鏄竴緇勭紪璇戦夐」鐨勯泦鍚堬紝緙栬瘧鍣ㄥ彧鏄寜鐓ч瀹氱殑閫夐」琛屽姩銆備簨瀹炰笂錛屾垜浠敋鑷沖彲浠ヤ慨鏀硅繖浜涢夐」錛屼粠鑰屽緱鍒頒紭鍖栬繃鐨勮皟璇曠増鏈垨鏄甫璺熻釜璇彞鐨勫彂甯冪増鏈?
鍝簺鎯呭喌涓?Release 鐗堜細鍑洪敊
鏈変簡涓婇潰鐨勪粙緇嶏紝鎴戜滑鍐嶆潵閫愪釜瀵圭収榪欎簺閫夐」鐪嬬湅 Release 鐗堥敊璇槸鎬庢牱浜х敓鐨?
1銆丷untime Library錛氶摼鎺ュ摢縐嶈繍琛屾椂鍒誨嚱鏁板簱閫氬父鍙紼嬪簭鐨勬ц兘浜х敓褰卞搷銆傝皟璇曠増鏈殑 Runtime Library 鍖呭惈浜嗚皟璇曚俊鎭紝騫墮噰鐢ㄤ簡涓浜涗繚鎶ゆ満鍒朵互甯姪鍙戠幇閿欒錛屽洜姝ゆц兘涓嶅鍙戝竷鐗堟湰銆傜紪璇戝櫒鎻愪緵鐨?Runtime Library 閫氬父寰堢ǔ瀹氾紝涓嶄細閫犳垚 Release 鐗堥敊璇紱鍊掓槸鐢變簬 Debug 鐨?Runtime Library 鍔犲己浜嗗閿欒鐨勬嫻嬶紝濡傚爢鍐呭瓨鍒嗛厤錛屾湁鏃朵細鍑虹幇 Debug 鏈夐敊浣?Release 姝e父鐨勭幇璞°傚簲褰撴寚鍑虹殑鏄紝濡傛灉 Debug 鏈夐敊錛屽嵆浣?Release 姝e父錛岀▼搴忚偗瀹氭槸鏈?Bug 鐨勶紝鍙笉榪囧彲鑳芥槸 Release 鐗堢殑鏌愭榪愯娌℃湁琛ㄧ幇鍑烘潵鑰屽凡銆?
2銆佷紭鍖栵細榪欐槸閫犳垚閿欒鐨勪富瑕佸師鍥狅紝鍥犱負鍏抽棴浼樺寲鏃舵簮紼嬪簭鍩烘湰涓婃槸鐩存帴緲昏瘧鐨勶紝鑰屾墦寮浼樺寲鍚庣紪璇戝櫒浼氫綔鍑轟竴緋誨垪鍋囪銆傝繖綾婚敊璇富瑕佹湁浠ヤ笅鍑犵錛?
1. 甯ф寚閽?Frame Pointer)鐪佺暐錛堢畝縐癋PO錛夛細鍦ㄥ嚱鏁拌皟鐢ㄨ繃紼嬩腑錛屾墍鏈夎皟鐢ㄤ俊鎭紙榪斿洖鍦板潃銆佸弬鏁幫級浠ュ強鑷姩鍙橀噺閮芥槸鏀懼湪鏍堜腑鐨勩傝嫢鍑芥暟鐨勫0鏄庝笌瀹炵幇涓嶅悓錛堝弬鏁般佽繑鍥炲箋佽皟鐢ㄦ柟寮忥級錛屽氨浼氫駭鐢熼敊璇紝浣?Debug 鏂瑰紡涓嬶紝鏍堢殑璁塊棶閫氳繃 EBP 瀵勫瓨鍣ㄤ繚瀛樼殑鍦板潃瀹炵幇錛屽鏋滄病鏈夊彂鐢熸暟緇勮秺鐣屼箣綾葷殑閿欒錛堟垨鏄秺鐣?#8220;涓嶅”錛夛紝鍑芥暟閫氬父鑳芥甯告墽琛岋紱Release 鏂瑰紡涓嬶紝浼樺寲浼氱渷鐣?EBP 鏍堝熀鍧鎸囬拡錛岃繖鏍烽氳繃涓涓叏灞鎸囬拡璁塊棶鏍堝氨浼氶犳垚榪斿洖鍦板潃閿欒鏄▼搴忓穿婧冦?
C++ 鐨勫己綾誨瀷鐗規ц兘媯鏌ュ嚭澶у鏁拌繖鏍風殑閿欒錛屼絾濡傛灉鐢ㄤ簡寮哄埗綾誨瀷杞崲錛屽氨涓嶈浜嗐備綘鍙互鍦?Release 鐗堟湰涓己鍒跺姞鍏?Oy-緙栬瘧閫夐」鏉ュ叧鎺夊撫鎸囬拡鐪佺暐錛屼互紜畾鏄惁姝ょ被閿欒銆傛綾婚敊璇氬父鏈夛細MFC 娑堟伅鍝嶅簲鍑芥暟涔﹀啓閿欒銆傛紜殑搴斾負錛?
afx_msg LRESULT OnMessageOwn
(WPARAM wparam, LPARAM lparam);
ON_MESSAGE 瀹忓寘鍚己鍒剁被鍨嬭漿鎹€傞槻姝㈣繖縐嶉敊璇殑鏂規硶涔嬩竴鏄噸瀹氫箟 ON_MESSAGE 瀹忥紝鎶婁笅鍒椾唬鐮佸姞鍒?stdafx.h 涓紙鍦?include "afxwin.h"涔嬪悗錛?鍑芥暟鍘熷艦閿欒鏃剁紪璇戜細鎶ラ敊銆?
#undef ON_MESSAGE
#define ON_MESSAGE(message, memberFxn) \
{
message, 0, 0, 0, AfxSig_lwl, \
(AFX_PMSG)(AFX_PMSGW)
(static_cast< LRESULT (AFX_MSG_CALL \
CWnd::*)(WPARAM, LPARAM) > (&memberFxn)
},
2. volatile 鍨嬪彉閲忥細volatile 鍛婅瘔緙栬瘧鍣ㄨ鍙橀噺鍙兘琚▼搴忎箣澶栫殑鏈煡鏂瑰紡淇敼錛堝緋葷粺銆佸叾浠栬繘紼嬪拰綰跨▼錛夈備紭鍖栫▼搴忎負浜嗕嬌紼嬪簭鎬ц兘鎻愰珮錛屽父鎶婁竴浜涘彉閲忔斁鍦ㄥ瘎瀛樺櫒涓紙綾諱技浜?register 鍏抽敭瀛楋級錛岃屽叾浠栬繘紼嬪彧鑳藉璇ュ彉閲忔墍鍦ㄧ殑鍐呭瓨榪涜淇敼錛岃屽瘎瀛樺櫒涓殑鍊兼病鍙樸?
濡傛灉浣犵殑紼嬪簭鏄綰跨▼鐨勶紝鎴栬呬綘鍙戠幇鏌愪釜鍙橀噺鐨勫間笌棰勬湡鐨勪笉絎﹁屼綘紜俊宸叉紜殑璁劇疆浜嗭紝鍒欏緢鍙兘閬囧埌榪欐牱鐨勯棶棰樸傝繖縐嶉敊璇湁鏃朵細琛ㄧ幇涓虹▼搴忓湪鏈蹇紭鍖栧嚭閿欒屾渶灝忎紭鍖栨甯搞傛妸浣犺涓哄彲鐤戠殑鍙橀噺鍔犱笂 volatile 璇曡瘯銆?br>3. 鍙橀噺浼樺寲錛氫紭鍖栫▼搴忎細鏍規嵁鍙橀噺鐨勪嬌鐢ㄦ儏鍐典紭鍖栧彉閲忋備緥濡傦紝鍑芥暟涓湁涓涓湭琚嬌鐢ㄧ殑鍙橀噺錛屽湪 Debug 鐗堜腑瀹冩湁鍙兘鎺╃洊涓涓暟緇勮秺鐣岋紝鑰屽湪 Release 鐗堜腑錛岃繖涓彉閲忓緢鍙兘琚紭鍖栬皟錛屾鏃舵暟緇勮秺鐣屼細鐮村潖鏍堜腑鏈夌敤鐨勬暟鎹傚綋鐒訛紝瀹為檯鐨勬儏鍐典細姣旇繖澶嶆潅寰楀銆備笌姝ゆ湁鍏崇殑閿欒鏈夐潪娉曡闂紝鍖呮嫭鏁扮粍瓚婄晫銆佹寚閽堥敊璇瓑銆備緥濡傦細
void fn(void)
{
int i;
i = 1;
int a[4];
{
int j;
j = 1;
}
a[-1] = 1;
//褰撶劧閿欒涓嶄細榪欎箞鏄庢樉錛屼緥濡備笅鏍囨槸鍙橀噺
a[4] = 1;
}
j 铏界劧鍦ㄦ暟緇勮秺鐣屾椂宸插嚭浜嗕綔鐢ㄥ煙錛屼絾鍏剁┖闂村茍鏈敹鍥烇紝鍥犺?i 鍜?j 灝變細鎺╃洊瓚婄晫銆傝?Release 鐗堢敱浜?i銆乯 騫舵湭鍏跺緢澶т綔鐢ㄥ彲鑳戒細琚紭鍖栨帀錛屼粠鑰屼嬌鏍堣鐮村潖銆?
3. DEBUG 涓?NDEBUG 錛氬綋瀹氫箟浜?_DEBUG 鏃訛紝assert() 鍑芥暟浼氳緙栬瘧錛岃?NDEBUG 鏃朵笉琚紪璇戙傛澶栵紝TRACE() 瀹忕殑緙栬瘧涔熷彈 _DEBUG 鎺у埗銆?
鎵鏈夎繖浜涙柇璦閮藉彧鍦?Debug鐗堜腑鎵嶈緙栬瘧錛岃屽湪 Release 鐗堜腑琚拷鐣ャ傚敮涓鐨勪緥澶栨槸 VERIFY()銆備簨瀹炰笂錛岃繖浜涘畯閮芥槸璋冪敤浜哸ssert()鍑芥暟錛屽彧涓嶈繃闄勫姞浜嗕竴浜涗笌搴撴湁鍏崇殑璋冭瘯浠g爜銆傚鏋滀綘鍦ㄨ繖浜涘畯涓姞鍏ヤ簡浠諱綍紼嬪簭浠g爜錛岃屼笉鍙槸甯冨皵琛ㄨ揪寮忥紙渚嬪璧嬪箋佽兘鏀瑰彉鍙橀噺鍊肩殑鍑芥暟璋冪敤絳夛級錛岄偅涔圧elease鐗堥兘涓嶄細鎵ц榪欎簺鎿嶄綔錛屼粠鑰岄犳垚閿欒銆傚垵瀛﹁呭緢瀹規槗鐘繖綾婚敊璇紝鏌ユ壘鐨勬柟娉曚篃寰堢畝鍗曪紝鍥犱負榪欎簺瀹忛兘宸插湪涓婇潰鍒楀嚭錛屽彧瑕佸埄鐢?VC++ 鐨?Find in Files 鍔熻兘鍦ㄥ伐紼嬫墍鏈夋枃浠朵腑鎵懼埌鐢ㄨ繖浜涘畯鐨勫湴鏂瑰啀涓涓媯鏌ュ嵆鍙傚彟澶栵紝鏈変簺楂樻墜鍙兘榪樹細鍔犲叆 #ifdef _DEBUG 涔嬬被鐨勬潯浠剁紪璇戯紝涔熻娉ㄦ剰涓涓嬨?
欏轟究鍊煎緱涓鎻愮殑鏄疺ERIFY()瀹忥紝榪欎釜瀹忓厑璁鎬綘灝嗙▼搴忎唬鐮佹斁鍦ㄥ竷灝旇〃杈懼紡閲屻傝繖涓畯閫氬父鐢ㄦ潵媯鏌?Windows API鐨勮繑鍥炲箋傛湁浜涗漢鍙兘涓鴻繖涓師鍥犺屾互鐢╒ERIFY()錛屼簨瀹炰笂榪欐槸鍗遍櫓鐨勶紝鍥犱負VERIFY()榪濆弽浜嗘柇璦鐨勬濇兂錛屼笉鑳戒嬌紼嬪簭浠g爜鍜岃皟璇曚唬鐮佸畬鍏ㄥ垎紱伙紝鏈緇堝彲鑳戒細甯︽潵寰堝楹葷儲銆傚洜姝わ紝涓撳浠緩璁敖閲忓皯鐢ㄨ繖涓畯銆?
4. /GZ 閫夐」錛氳繖涓夐」浼氬仛浠ヤ笅榪欎簺浜嬶細
1. 鍒濆鍖栧唴瀛樺拰鍙橀噺銆傚寘鎷敤 0xCC 鍒濆鍖栨墍鏈夎嚜鍔ㄥ彉閲忥紝0xCD ( Cleared Data ) 鍒濆鍖栧爢涓垎閰嶇殑鍐呭瓨錛堝嵆鍔ㄦ佸垎閰嶇殑鍐呭瓨錛屼緥濡?new 錛夛紝0xDD ( Dead Data ) 濉厖宸茶閲婃斁鐨勫爢鍐呭瓨錛堜緥濡?delete 錛夛紝0xFD( deFencde Data ) 鍒濆鍖栧彈淇濇姢鐨勫唴瀛橈紙debug 鐗堝湪鍔ㄦ佸垎閰嶅唴瀛樼殑鍓嶅悗鍔犲叆淇濇姢鍐呭瓨浠ラ槻姝㈣秺鐣岃闂級錛屽叾涓嫭鍙蜂腑鐨勮瘝鏄井杞緩璁殑鍔╄璇嶃傝繖鏍峰仛鐨勫ソ澶勬槸榪欎簺鍊奸兘寰堝ぇ錛屼綔涓烘寚閽堟槸涓嶅彲鑳界殑錛堣屼笖 32 浣嶇郴緇熶腑鎸囬拡寰堝皯鏄鏁板鹼紝鍦ㄦ湁浜涚郴緇熶腑濂囨暟鐨勬寚閽堜細浜х敓榪愯鏃墮敊璇級錛屼綔涓烘暟鍊間篃寰堝皯閬囧埌錛岃屼笖榪欎簺鍊間篃寰堝鏄撹鯨璁わ紝鍥犳榪欏緢鏈夊埄浜庡湪 Debug 鐗堜腑鍙戠幇 Release 鐗堟墠浼氶亣鍒扮殑閿欒銆傝鐗瑰埆娉ㄦ剰鐨勬槸錛屽緢澶氫漢璁や負緙栬瘧鍣ㄤ細鐢?鏉ュ垵濮嬪寲鍙橀噺錛岃繖鏄敊璇殑錛堣屼笖榪欐牱寰堜笉鍒╀簬鏌ユ壘閿欒錛夈?
2. 閫氳繃鍑芥暟鎸囬拡璋冪敤鍑芥暟鏃訛紝浼氶氳繃媯鏌ユ爤鎸囬拡楠岃瘉鍑芥暟璋冪敤鐨勫尮閰嶆с傦紙闃叉鍘熷艦涓嶅尮閰嶏級
3. 鍑芥暟榪斿洖鍓嶆鏌ユ爤鎸囬拡錛岀‘璁ゆ湭琚慨鏀廣傦紙闃叉瓚婄晫璁塊棶鍜屽師褰笉鍖歸厤錛屼笌絎簩欏瑰悎鍦ㄤ竴璧峰彲澶ц嚧妯℃嫙甯ф寚閽堢渷鐣?FPO 錛夐氬父 /GZ 閫夐」浼氶犳垚 Debug 鐗堝嚭閿欒?Release 鐗堟甯哥殑鐜拌薄錛屽洜涓?Release 鐗堜腑鏈垵濮嬪寲鐨勫彉閲忔槸闅忔満鐨勶紝榪欐湁鍙兘浣挎寚閽堟寚鍚戜竴涓湁鏁堝湴鍧鑰屾帺鐩栦簡闈炴硶璁塊棶銆傞櫎姝や箣澶栵紝/Gm/GF絳夐夐」閫犳垚閿欒鐨勬儏鍐墊瘮杈冨皯錛岃屼笖浠栦滑鐨勬晥鏋滄樉鑰屾槗瑙侊紝姣旇緝瀹規槗鍙戠幇銆?
鎬庢牱“璋冭瘯” Release 鐗堢殑紼嬪簭
閬囧埌Debug鎴愬姛浣哛elease澶辮觸錛屾樉鐒舵槸涓浠跺緢娌撫鐨勪簨錛岃屼笖寰寰鏃犱粠涓嬫墜銆傚鏋滀綘鐪嬩簡浠ヤ笂鐨勫垎鏋愶紝緇撳悎閿欒鐨勫叿浣撹〃鐜幫紝寰堝揩鎵懼嚭浜嗛敊璇紝鍥虹劧寰堝ソ銆備絾濡傛灉涓鏃舵壘涓嶅嚭錛屼互涓嬬粰鍑轟簡涓浜涘湪榪欑鎯呭喌涓嬬殑絳栫暐銆?
1. 鍓嶉潰宸茬粡鎻愯繃錛孌ebug鍜孯elease鍙槸涓緇勭紪璇戦夐」鐨勫樊鍒紝瀹為檯涓婂茍娌℃湁浠涔堝畾涔夎兘鍖哄垎浜岃呫傛垜浠彲浠ヤ慨鏀筊elease鐗堢殑緙栬瘧閫夐」鏉ョ緝灝忛敊璇寖鍥淬傚涓婃墍榪幫紝鍙互鎶奟elease 鐨勯夐」閫愪釜鏀逛負涓庝箣鐩稿鐨凞ebug閫夐」錛屽/MD鏀逛負/MDd銆?O1鏀逛負/Od錛屾垨榪愯鏃墮棿浼樺寲鏀逛負紼嬪簭澶у皬浼樺寲銆傛敞鎰忥紝涓嬈″彧鏀逛竴涓夐」錛岀湅鏀瑰摢涓夐」鏃墮敊璇秷澶憋紝鍐嶅搴旇閫夐」鐩稿叧鐨勯敊璇紝閽堝鎬у湴鏌ユ壘銆傝繖浜涢夐」鍦≒roject\Settings...涓兘鍙互鐩存帴閫氳繃鍒楄〃閫夊彇錛岄氬父涓嶈鎵嬪姩淇敼銆傜敱浜庝互涓婄殑鍒嗘瀽宸茬浉褰撳叏闈紝榪欎釜鏂規硶鏄渶鏈夋晥鐨勩?
2. 鍦ㄧ紪紼嬭繃紼嬩腑灝辮鏃跺父娉ㄦ剰嫻嬭瘯 Release 鐗堟湰錛屼互鍏嶆渶鍚庝唬鐮佸お澶氾紝鏃墮棿鍙堝緢绱с?
3. 鍦?Debug 鐗堜腑浣跨敤 /W4 璀﹀憡綰у埆錛岃繖鏍峰彲浠ヤ粠緙栬瘧鍣ㄨ幏寰楁渶澶ч檺搴︾殑閿欒淇℃伅錛屾瘮濡?if( i =0 )灝變細寮曡搗 /W4 璀﹀憡銆備笉瑕佸拷鐣ヨ繖浜涜鍛婏紝閫氬父榪欐槸浣犵▼搴忎腑鐨?Bug 寮曡搗鐨勩備絾鏈夋椂 /W4 浼氬甫鏉ュ緢澶氬啑浣欎俊鎭紝濡?鏈嬌鐢ㄧ殑鍑芥暟鍙傛暟 璀﹀憡錛岃屽緢澶氭秷鎭鐞嗗嚱鏁伴兘浼氬拷鐣ユ煇浜涘弬鏁般傛垜浠彲浠ョ敤:
#progma warning(disable: 4702)
//紱佹
//...
#progma warning(default: 4702)
//閲嶆柊鍏佽鏉ユ殏鏃剁姝㈡煇涓鍛婏紝鎴栦嬌鐢?br>#progma warning(push, 3)
//璁劇疆璀﹀憡綰у埆涓?/W3
//...
#progma warning(pop)
//閲嶈涓?/W4
鏉ユ殏鏃舵敼鍙樿鍛婄駭鍒紝鏈夋椂浣犲彲浠ュ彧鍦ㄨ涓哄彲鐤戠殑閭d竴閮ㄥ垎浠g爜浣跨敤 /W4銆?
4. 浣犱篃鍙互鍍廌ebug涓鏍瘋皟璇曚綘鐨凴elease鐗堬紝鍙鍔犲叆璋冭瘯絎﹀彿銆傚湪Project/Settings... 涓紝閫変腑 Settings for "Win32 Release"錛岄変腑 C/C++ 鏍囩錛孋ategory 閫?General錛孌ebug Info 閫?Program Database銆傚啀鍦?Link 鏍囩 Project options 鏈鍚庡姞涓?"/OPT:REF" (寮曞彿涓嶈杈?銆傝繖鏍瘋皟璇曞櫒灝辮兘浣跨敤 pdb 鏂囦歡涓殑璋冭瘯絎﹀彿銆?
浣嗚皟璇曟椂浣犱細鍙戠幇鏂偣寰堥毦璁劇疆錛屽彉閲忎篃寰堥毦鎵懼埌??榪欎簺閮借浼樺寲榪囦簡銆備笉榪囦護浜哄簡騫哥殑鏄紝Call Stack紿楀彛浠嶇劧宸ヤ綔姝e父錛屽嵆浣垮撫鎸囬拡琚紭鍖栵紝鏍堜俊鎭紙鐗瑰埆鏄繑鍥炲湴鍧錛変粛鐒惰兘鎵懼埌銆傝繖瀵瑰畾浣嶉敊璇緢鏈夊府鍔┿?br>==========================================================================
鍒漢鍘熷垱鐨勬枃妗o紝寮曠敤涓涓嬶細
DEBUG鍜孯ELEASE 鐗堟湰宸紓鍙婅皟璇曠浉鍏抽棶棰橈細
. 鍐呭瓨鍒嗛厤闂
1. 鍙橀噺鏈垵濮嬪寲銆備笅闈㈢殑紼嬪簭鍦╠ebug涓繍琛岀殑寰堝ソ銆?nbsp;
thing * search(thing * something)
BOOL found;
for(int i = 0; i < whatever.GetSize(); i++)
{
if(whatever[i]->field == something->field)
{ /* found it */
found = TRUE;
break;
} /* found it */
}
if(found)
return whatever[i];
else
return NULL;
鑰屽湪release涓嵈涓嶈錛屽洜涓篸ebug涓細鑷姩緇欏彉閲忓垵濮嬪寲found=FALSE,鑰屽湪release鐗堜腑鍒欎笉浼氥傛墍浠ュ敖鍙兘鐨勭粰鍙橀噺銆佺被鎴栫粨鏋勫垵濮嬪寲銆?nbsp;
2. 鏁版嵁婧㈠嚭鐨勯棶棰?nbsp;
濡傦細char buffer[10];
int counter;
lstrcpy(buffer, "abcdefghik");
鍦╠ebug鐗堜腑buffer鐨凬ULL瑕嗙洊浜哻ounter鐨勯珮浣嶏紝浣嗘槸闄ら潪counter>16M,浠涔堥棶棰樹篃娌℃湁銆備絾鏄湪release鐗堜腑錛宑ounter鍙兘琚斁鍦ㄥ瘎瀛樺櫒涓紝榪欐牱NULL灝辮鐩栦簡buffer涓嬮潰鐨勭┖闂達紝鍙兘灝辨槸鍑芥暟鐨勮繑鍥炲湴鍧錛岃繖灝嗗鑷碅CCESS ERROR銆?nbsp;
3. DEBUG鐗堝拰RELEASE鐗堢殑鍐呭瓨鍒嗛厤鏂瑰紡鏄笉鍚岀殑 銆傚鏋滀綘鍦―EBUG鐗堜腑鐢寵 ele 涓?nbsp; 6*sizeof(DWORD)=24bytes,瀹為檯涓婂垎閰嶇粰浣犵殑鏄?2bytes錛坉ebug鐗堜互32bytes涓哄崟浣嶅垎閰嶏級錛?nbsp; 鑰屽湪release鐗堬紝鍒嗛厤緇欎綘鐨勫氨鏄?4bytes錛坮elease鐗堜互8bytes涓哄崟浣嶏級錛屾墍浠ュ湪debug鐗堜腑濡傛灉浣犲啓ele[6],鍙兘涓嶄細鏈変粈涔堥棶棰橈紝鑰屽湪release鐗堜腑錛屽氨鏈堿CCESS VIOLATE銆?nbsp;
II. ASSERT鍜孷ERIFY
1. ASSERT鍦≧elease鐗堟湰涓槸涓嶄細琚紪璇戠殑銆?nbsp;
ASSERT瀹忔槸榪欐牱瀹氫箟鐨?nbsp;
#ifdef _DEBUG
#define ASSERT(x) if( (x) == 0) report_assert_failure()
#else
#define ASSERT(x)
#endif
瀹為檯涓婂鏉備竴浜涳紝浣嗘棤鍏崇揣瑕併傚亣濡備綘鍦ㄨ繖浜涜鍙ヤ腑鍔犱簡紼嬪簭涓繀欏昏鏈夌殑浠g爜
姣斿
ASSERT(pNewObj = new CMyClass);
pNewObj->MyFunction();
榪欑鏃跺橰elease鐗堟湰涓殑pNewObj涓嶄細鍒嗛厤鍒扮┖闂?nbsp;
鎵浠ユ墽琛屽埌涓嬩竴涓鍙ョ殑鏃跺欑▼搴忎細鎶ヨ紼嬪簭鎵ц浜嗛潪娉曟搷浣滅殑閿欒銆傝繖鏃跺彲浠ョ敤VERIFY 錛?nbsp;
#ifdef _DEBUG
#define VERIFY(x) if( (x) == 0) report_assert_failure()
#else
#define VERIFY(x) (x)
#endif
榪欐牱鐨勮瘽錛屼唬鐮佸湪release鐗堜腑灝卞彲浠ユ墽琛屼簡銆?nbsp;
III. 鍙傛暟闂錛?nbsp;
鑷畾涔夋秷鎭殑澶勭悊鍑芥暟錛屽繀欏誨畾涔夊涓嬶細
afx_msg LRESULT OnMyMessage(WPARAM, LPARAM);
榪斿洖鍊煎繀欏繪槸HRESULT鍨嬶紝鍚﹀垯Debug浼氳繃錛岃孯elease鍑洪敊
IV. 鍐呭瓨鍒嗛厤
淇濊瘉鏁版嵁鍒涘緩鍜屾竻闄ょ殑緇熶竴鎬э細濡傛灉涓涓狣LL鎻愪緵涓涓兘澶熷垱寤烘暟鎹殑鍑芥暟錛岄偅涔堣繖涓狣LL鍚屾椂搴旇鎻愪緵涓涓嚱鏁伴攢姣佽繖浜涙暟鎹傛暟鎹殑鍒涘緩鍜屾竻闄ゅ簲璇ュ湪鍚屼竴涓眰嬈′笂銆?nbsp;
V. DLL鐨勭伨闅?nbsp;
浜轟滑灝嗕笉鍚岀増鏈珼LL娣峰悎閫犳垚鐨勪笉涓鑷存у艦璞$殑縐頒負 “鍔ㄦ佽繛鎺ュ簱鐨勫湴鐙?#8220;(DLL Hell) 錛岀敋鑷沖井杞嚜宸變篃榪欎箞璇?http://msdn.microsoft.com/library/techart/dlldanger1.htm)銆?nbsp;
濡傛灉浣犵殑紼嬪簭浣跨敤浣犺嚜宸辯殑DLL鏃惰娉ㄦ剰錛?nbsp;
1. 涓嶈兘灝哾ebug鍜宺elease鐗堢殑DLL娣峰悎鍦ㄤ竴璧蜂嬌鐢ㄣ俤ebug閮芥槸debug鐗堬紝release鐗堥兘鏄痳elease鐗堛?nbsp;
瑙e喅鍔炴硶鏄皢debug鍜宺elease鐨勭▼搴忓垎鍒斁鍦ㄤ富紼嬪簭鐨刣ebug鍜宺elease鐩綍涓?nbsp;
2. 鍗冧竾涓嶈浠ヤ負闈欐佽繛鎺ュ簱浼氳В鍐抽棶棰橈紝閭e彧浼氫嬌鎯呭喌鏇寸碂緋曘?nbsp;
VI. RELEASE鏉夸腑鐨勮皟璇?nbsp; 錛?nbsp;
1. 灝咥SSERT() 鏀逛負 VERIFY() 銆傛壘鍑哄畾涔夊湪"#ifdef _DEBUG"涓殑浠g爜錛屽鏋滃湪RELEASE鐗堟湰涓渶瑕佽繖浜涗唬鐮佽灝嗕粬浠Щ鍒板畾涔夊銆傛煡鎵綯RACE(...)涓唬鐮侊紝鍥犱負榪欎簺浠g爜鍦≧ELEASE涓篃涓嶈緙栬瘧銆?nbsp; 璇瘋鐪熸鏌ラ偅浜涘湪RELEASE涓渶瑕佺殑浠g爜鏄惁騫舵病鏈夎渚垮疁銆?nbsp;
2. 鍙橀噺鐨勫垵濮嬪寲鎵甯︽潵鐨勪笉鍚岋紝鍦ㄤ笉鍚岀殑緋葷粺錛屾垨鏄湪DEBUG/RELEASE鐗堟湰闂撮兘瀛樺湪榪欐牱鐨勫樊寮傦紝鎵浠ヨ瀵瑰彉閲忚繘琛屽垵濮嬪寲銆?nbsp;
3. 鏄惁鍦ㄧ紪璇戞椂宸茬粡鏈変簡璀﹀憡?璇峰皢璀﹀憡綰у埆璁劇疆涓?鎴?,鐒跺悗淇濊瘉鍦ㄧ紪璇戞椂娌℃湁璀﹀憡鍑虹幇.
VII. 灝哖roject Settings" 涓?nbsp; "C++/C " 欏圭洰涓嬩紭鍖栭夐」鏀逛負Disbale錛圖ebug錛夈傜紪璇戝櫒鐨勪紭鍖栧彲鑳藉鑷磋澶氭剰鎯充笉鍒扮殑閿欒錛岃鍙傝?a >http://www.pgh.net/~newcomer/debug_release.htm
1. 姝ゅ瀵筊ELEASE鐗堟湰鐨勮蔣浠朵篃鍙互榪涜璋冭瘯錛岃鍋氬涓嬫敼鍔細
鍦?Project Settings" 涓?nbsp; "C++/C " 欏圭洰涓嬭緗?nbsp; "category" 涓?nbsp; "General" 騫朵笖灝?Debug Info"璁劇疆涓?nbsp; "Program Database"銆?nbsp;
鍦?Link"欏圭洰涓嬮変腑"Generate Debug Info"媯鏌ユ銆?nbsp;
"Rebuild All"
濡傛鍋氭硶浼氫駭鐢熺殑涓浜涢檺鍒訛細
鏃犳硶鑾峰緱鍦∕FC DLL涓殑鍙橀噺鐨勫箋?nbsp;
蹇呴』瀵硅杞歡鎵浣跨敤鐨勬墍鏈塂LL宸ョ▼閮借繘琛屾敼鍔ㄣ?nbsp;
鍙︼細
MS BUG錛歁S鐨勪竴浠芥妧鏈枃妗d腑琛ㄦ槑錛屽湪VC5涓浜嶥LL鐨?Maximize Speed"浼樺寲閫夐」騫舵湭琚畬鍏ㄦ敮鎸侊紝鍥犳榪欏皢浼氬紩璧峰唴瀛橀敊璇茍瀵艱嚧紼嬪簭宕╂簝銆?nbsp;
2. www.sysinternals.com鏈変竴涓▼搴廌ebugView錛岀敤鏉ユ崟鎹塐utputDebugString鐨勮緭鍑猴紝榪愯璧鋒潵鍚庯紙浼拌鏄嚜璁句負system debugger錛夊氨鍙互瑙傜湅鎵鏈夌▼搴忕殑OutputDebugString鐨勮緭鍑恒傛鍚庯紝浣犲彲浠ヨ劚紱籚C鏉ヨ繍琛屼綘鐨勭▼搴忓茍瑙傜湅璋冭瘯淇℃伅銆?nbsp;
3. 鏈変竴涓彨Gimpel Lint鐨勯潤鎬佷唬鐮佹鏌ュ伐鍏鳳紝鎹姣旇緝濂界敤銆?a >http://www.gimpel.com 涓嶈繃瑕佸寲$鐨勩?nbsp;
鍙傝冩枃鐚細
1) http://www.cygnus-software.com/papers/release_debugging.html
2) http://www.pgh.net/~newcomer/debug_release.htm
榪樻湁縐嶅師鍥犳槸浣跨敤浜?span style="COLOR: #ff0000">tchar閫犳垚鐨?闇瑕佷慨鏀箇inmain鍏ュ彛鍑芥暟:
灝?_tWinMain(.., .., LPTSTR, ..) 淇敼涓?
WinMain(.., .., LPSTR, ..) 鍗沖彲.
C++璧勬簮涔嬩笉瀹屽叏瀵煎紩錛堝畬鏁寸増錛?/p>
鏉ユ簮錛?a >www.csdn.net
鎾版枃錛氭浘姣呫侀櫠鏂?/p>
澹版槑錛氭湰鏂?004騫?鏈堥鍙戜簬銆奀SDN寮鍙戦珮鎵嬨嬶紝鐗堟潈褰掕鏉傚織涓庛婄▼搴忓憳銆嬫潅蹇楃ぞ
鎵鏈夈?/p>
------------------------------------------------------------------------
--------
銆銆1錛屽墠璦
銆銆鏃犳暟嬈″惉鍒扳滄垜瑕佸紑濮嬪涔燙++!鈥濈殑鍛愬枈錛屾棤鏁版鍚埌鈥淐++澶鏉備簡錛屾垜鐪熺殑
瀛︿笉浼氣濈殑鏃犲銆係tan Lippman鍏堢敓鏇懼湪銆奀++ Primer銆嬩竴涔︿腑鎸囧嚭鈥淐++鏄渶涓洪毦
瀛︾殑楂樼駭紼嬪簭璁捐璇█涔嬩竴鈥濓紝浜轟滑甯稿皢鈥滀箣涓鈥濆幓鎺変互琛ㄨ揪鑷繁瀵笴++鐨勬暚鐣忋傝瘹
鐒訛紝C++紼嬪簭璁捐璇█瀵逛簬瀛︿範鑰呯殑紜湁寰堝闅句互閫捐秺鐨勯縛娌燂紝浣撶郴緇撴瀯鐨勫簽澶э紝搴?br />鎺ヤ笉鏆囧茍涓嶆柇鎵╁厖鐨勭壒鎬р︹﹂櫎姝や箣澶栵紝鍙傝冭祫鏂欎箣澶氫笌鍐楁潅浣垮畠鐨勫涔犺呮湜鑰屽嵈
姝ワ紝嬈叉眰娣卞叆鑰呰嫤涓嶅牚璦銆傚笇鏈涜繖涓浠戒笉瀹屽叏瀵煎紩鑳藉鎴愪負鎮–++瀛︿範涔嬭礬涓婄殑寮曡礬
鐏?/p>
銆銆鎾板啓鏈枃鐨勫垵琛峰茍涓嶆墦綆楀甫棰嗗ぇ瀹朵綋楠屽彜鑰佺殑C++鍘嗗彶錛屽鏋滀綘鎯充簡瑙++鐨勫巻
鍙蹭笌鍏跺墠鏈熷彂灞曚腑璇稿鎶鏈殑婕斿彉錛屼綘搴斿綋鍘誨弬鑰傿jarne鐨勩奣he Design and Evo
lution of C++銆嬨傚綋鐒朵篃涓嶆墦綆楃粰澶у涓涓棤鎵涓嶅寘鐨勫疂鍏革紙騫墮潪涓嶆兂錛氬叾涓鏄洜
姘村鉤鏈夐檺錛屽叾浜屾棤濂圕++涔嬪崥澶х簿娣憋級錛屾墍緇欏嚭鐨勪粎浠呮槸涓浜涙垜浠涓哄浜庢兂瀛︿範C
++鐨勫箍澶ц鑰呮潵璇存渶閲嶈騫朵笖瑙︽墜鍙強鐨勫紑鍙戜笌瀛︿範璧勬簮銆?/p>
銆銆鏈枃浠嬬粛騫跺垎鏋愪簡涓浜涚紪璇戝櫒錛屽紑鍙戠幆澧冿紝搴擄紝灝戦噺鐨勪功綾嶄互鍙婂弬鑰冪綉绔欙紝騫?br />涓斿敖鍙兘灝濊瘯鐫緇欏嚭涓涓埄鐢ㄨ繖浜涜祫婧愮殑瀵煎紩錛屾湜瀵瑰鍚屾垜浠竴鏍風殑鍒濆鑰呰兘澶熸湁
鎵瑁ㄧ泭銆?/p>
------------------------------------------------------------------------
--------
銆銆2錛岀紪璇戝櫒
銆銆鍦–++涔嬪鐨勪換浣曡璦涓紝緙栬瘧鍣ㄩ兘浠庢潵娌℃湁鍙楀埌榪囧姝や箣閲嶈銆傚洜涓篊++鏄竴
闂ㄧ浉褰撳鏉傜殑璇█錛屾墍浠ョ紪璇戝櫒涔熼毦浜庢瀯寤恒傜洿鍒版渶榪戞垜浠墠寮濮嬭兘澶熶嬌鐢ㄤ笂瀹屽叏
絎﹀悎C++鏍囧噯鐨勭紪璇戝櫒錛堝摝錛屼綘鍙兘浼氳矗鎬偅浜涚紪璇戝櫒鍘傚晢涓嶈兘灝芥棭鐨勬彁渚涚鍚堟爣鍑?br />鐨勭紪璇戝櫒錛岃繖鍙兘鎬粬浠悇鑷淮緋葷潃鑷韓鐨勪竴濂楀埆浜轟笉鎰挎帴鍙楃殑鏍囧噯錛夈備粈涔堬紵浣?br />璇磋繖鏃犲叧绱ц錛熷摝錛屼笉錛屼綘鎵闇瑕佺殑鏄拰鏍囧噯鍖朇++楂樺害鍏煎鐨勭紪璇戠幆澧冦傞暱榪滄潵鐪?br />錛屽彧鏈夎繖鏍風殑緙栬瘧鍣ㄥC++寮鍙戜漢鍛樻潵璇存墠鏄渶鏈夋剰涔夌殑宸ュ叿錛屽挨鍏舵槸瀵逛簬紼嬪簭璁捐
璇█鐨勫涔犺呫備竴鑷蟲ц浠g爜鍏峰鍙Щ妞嶆э紝騫惰涓闂ㄨ璦鍙婂叾搴撶殑搴旂敤鏇翠負騫挎硾
銆傚棷錛屾槸鐨勶紝鎴戜滑榪欓噷鍙墦綆椾粙緇嶄竴浜涘叕璁ょ殑浼樼緙栬瘧鍣ㄣ?/p>
銆銆2.1 Borland C++
銆銆榪欎釜鏄疊orland C++ Builder鍜孊orland C++ Builder X榪欎袱縐嶅紑鍙戠幆澧冪殑鍚庡彴
緙栬瘧鍣ㄣ傦紙鍝︼紝鎴戜箣鎵浠ュ皢涔嬪垎涓轟袱縐嶅紑鍙戠幆澧冧綘搴斿綋鑳芥槑鐧戒負浠涔堬紝姝eDelphi
7鍒癉elphi8鐨勮漿鍙橈紝鏄潻鍛芥х殑涓や唬銆傦級Borland C++鐢辮佺墝寮鍙戝伐鍏峰巶鍟咮orland
鍊懼姏鎵撻犮傝鍏徃鐨勭紪璇戝櫒绱犱互閫熷害蹇紝絀洪棿鏁堢巼楂樿憲縐幫紝Borland C++ 緋誨垪緙栬瘧
鍣ㄧ鎵夸簡榪欎釜浼犵粺錛屽睘浜庨潪甯鎬紭璐ㄧ殑緙栬瘧鍣ㄣ傛爣鍑嗗寲鏂歸潰鏃╁湪5.5鐗堟湰鐨勭紪璇戝櫒涓
鏍囧噯鍖朇++鐨勫吋瀹瑰氨杈懼埌浜?2.73%銆傜洰鍓嶆渶鏂扮増鏈槸Borland C++ Builder X涓殑6.
0鐗堟湰錛屽畼鏂圭О100%絎﹀悎ANSI/ISO鐨凜++鏍囧噯浠ュ強C99鏍囧噯銆傚棷鈥﹁繖姝f槸鎴戝墠闈㈡墍鎸囩殑
鈥滃畬鍏ㄧ鍚圕++鏍囧噯鐨勭紪璇戝櫒鈥濄?/p>
銆銆2.2 Visual C++
銆銆榪欎釜姝f槸鎴戜滑鐔熺煡鐨刅isual Studio 鍜?Visual Studio.net 2002, 2003浠ュ強2
005 Whidbey涓甫鐨凜++緙栬瘧鍣ㄣ傜敱Microsoft鍏徃鐮斿埗銆傚湪Visual Studio 6.0涓紝
鍥犱負緙栬瘧鍣ㄦ湁澶鍦版柟涓嶈兘涓庡悗鏉ュ嚭鐜扮殑C++鏍囧噯鐩稿惢鍚堣岄ケ鍙楁壒璇勶紙鎯蟲兂浣犲湪浣跨敤
STL鐨勬椂鍊欑紪璇戞椂鎶ュ嚭鐨勯偅浜涗護浜哄帉鎭剁殑error鍜寃arning鍚э級銆俈C++6.0瀵規爣鍑嗗寲C+
+鐨勫吋瀹瑰彧鏈?3.43%銆備絾鏄殢鐫C++緙栬瘧鍣ㄨ璁″ぇ甯圫tanley Lippman浠ュ強璇稿C++紺?br />緹よ揪浜虹殑鍔犵洘錛屽湪Visual Studio.NET 2003涓紝Visual C++緙栬瘧鍣ㄥ凡緇忔垚涓轟竴涓潪
甯告垚鐔熷彲闈犵殑C++緙栬瘧鍣ㄤ簡銆侱r.Dobb's Journal鐨勮瘎嫻嬫樉紺篤isual C++7.1瀵規爣鍑咰
++鐨勫吋瀹規ч珮杈?8.22%錛屼竴搴︽垚涓篊BX涔嬪墠鍏煎鎬ф渶濂界殑緙栬瘧鍣ㄣ傜粨鍚堝己澶х殑Visua
l Studio.NET寮鍙戠幆澧冿紝鏄竴涓潪甯鎬笉閿欑殑閫夋嫨銆傝嚦浜嶹hidbey鏃朵唬鐨刅isual C++,
浼間箮寰蔣鎵鏈鍏蟲敞鐨勬槸C++/CLI鈥︹︽垜浠笉鎯寵瘎璁哄井杞笅涓浠g殑C++緙栬瘧鍣ㄥ鏍囧噯鍖?br />鍏煎濡備綍錛屼絾浠栫‘瀹炶秺鏉ヨ秺閫傚悎.NET (鍏跺疄浣犲拰鎴戠殑鎰熻鍙兘鏄竴鏍風殑錛屽井杞笉搴?br />褰撴妸鏍囧噯C++榪欏潡鑲ヨ倝涓㈢粰Borland,鐒惰屽井杞彲鑳藉茍涓嶈繖鏍瘋涓?銆?/p>
銆銆2.3 GNU C++
銆銆钁楀悕鐨勫紑婧怌++緙栬瘧鍣ㄣ傛槸綾籙nix鎿嶄綔緋葷粺涓嬬紪鍐機++紼嬪簭鐨勯閫夈傜壒鐐規槸鏈夐潪
甯稿ソ鐨勭Щ妞嶆э紝浣犲彲浠ュ湪闈炲父騫挎硾鐨勫鉤鍙頒笂浣跨敤瀹冿紝鍚屾椂涔熸槸緙栧啓璺ㄥ鉤鍙幫紝宓屽叆寮?br />紼嬪簭寰堝ソ鐨勯夋嫨銆傚彟澶栧湪絎﹀悎鏍囧噯榪欎釜鏂歸潰涓鐩撮兘闈炲父濂斤紝GCC3.3澶ф鑳藉杈懼埌96
.15%銆備絾鏄敱浜庡叾璺ㄥ鉤鍙扮殑鐗規э紝鍦ㄤ唬鐮佸昂瀵擱熷害絳変紭鍖栦笂鐣ュ井宸竴鐐廣?/p>
銆銆鍩轟簬GNU C++鐨勭紪璇戝櫒鏈夊緢澶氾紝姣斿錛?/p>
銆銆(1) Mingw
銆銆GCC鐨勪竴涓猈indows鐨勭Щ妞嶇増鏈紙Dev-C++鐨勫悗鍙幫級
銆銆(2) Cygwin
銆銆http://sources.redhat.com/cygwin/
銆銆GCC鐨勫彟澶栦竴涓猈indows縐繪鐗堟湰鏄疌ygwin鐨勪竴閮ㄥ垎錛孋ygwin鏄疻indows涓嬬殑涓涓?br />Unix浠跨湡鐜銆備弗鏍肩殑璇存槸妯℃嫙GNU鐨勭幆澧冿紝榪欎篃灝辨槸"Gnu's Not Unix"瑕佽〃杈劇殑鎰?br />鎬濓紝鍣紝鎵繙浜嗭紝榪欏茍涓嶆槸鎴戜滑鍦ㄨ繖閲屽叧蹇冪殑瀹炶川鍐呭銆?/p>
銆銆(3) Djgpp
銆銆http://www.delorie.com/djgpp/
銆銆榪欐槸GCC鐨凞OS縐繪鐗堟湰銆?/p>
銆銆(4) RSXNT
銆銆http://www.mathematik.uni-bielefeld.de/~rainer/
銆銆榪欐槸GCC鐨凞OS鍜學indows縐繪鐗堟湰銆?/p>
銆銆(5) Intel C++
銆銆钁楀悕CPU鍒墮犲巶鍟咺ntel鍑哄搧鐨勭紪璇戝櫒錛孲pecial Design for Intel x86錛佸浜?br />Intel x86緇撴瀯鐨凜PU緇忚繃鐗瑰埆鐨勪紭鍖栥傚湪鏈変簺搴旂敤鎯呭喌涓嬶紝鐗瑰埆鏄暟鍊艱綆楃瓑楂樻?br />鑳藉簲鐢紝浠呬粎閲囩敤Intel鐨勭紪璇戝櫒緙栬瘧灝辮兘澶у箙搴︾殑鎻愰珮鎬ц兘銆?/p>
銆銆(6) Digital Mars C++
銆銆緗戠粶涓婃彁渚涘厤璐逛笅杞斤紝Zortech/Symantec C++鐨勭戶鎵胯咃紝鍏跺墠韜湪褰撳勾鎯ㄧ儓鐨?br />C++鍥涘浗鎴樹腑涔熸槸涓昏涔嬩竴銆?/p>
------------------------------------------------------------------------
--------
銆銆3錛屽紑鍙戠幆澧?/p>
銆銆寮鍙戠幆澧冨浜庣▼搴忓憳鐨勪綔鐢ㄤ笉璦鑰屽柣銆傞夋嫨鑷繁鏈濆鐩稿鐨勭幆澧冧篃涓嶆槸瀹規槗鐨?br />浜嬫儏錛岀壒鍒槸鍦↖DE濡傛涓板瘜鐨勬儏鍐典笅銆備笅闈㈠氨鏄垜浠帹鑽愮殑涓浜涘父瑙佺殑C++寮鍙戠幆
澧冿紝騫舵病鏈夊寘鎷竴浜涘皬鍨嬬殑錛岀綍瑙佺殑IDE銆傚叾涓換浣曚竴嬈鵑兘鏄姛鑳戒赴瀵岋紝鍙互鐢ㄤ綔鏃?br />甯稿紑鍙戜嬌鐢ㄧ殑銆傚浜庝笉鍚屽眰闈㈢殑寮鍙戣咃紝璇峰弬瑙佸唴鏂囧叧浜庨傜敤瀵硅薄鐨勬弿榪般?/p>
銆銆3.1 Visual Studio 6.0
銆銆榪欎釜铏界劧鏄疢icrosoft鍏徃鐨勮佺増鏈殑寮鍙戠幆澧冿紝浣嗘槸閴翠簬鍏跺悗緇х増鏈琕isual
Studio.NET鐨勫簽澶ц韓韜紝浠ュ強鍒濆鑰呭茍涓嶉偅涔堥珮鐨勫姛鑳借姹傦紝鎵浠ユ帹鑽愯繖涓紑鍙戠幆
澧冪粰C++鐨勫垵瀛﹁咃紝渚涘叾瀛︿範C++鐨勬渶鍩烘湰鐨勯儴鍒嗭紝姣斿C鐨勯偅閮ㄥ垎瀛愰泦錛屽綋鐒朵綘鍒寚
鏈涗粬鑳藉鏀寔鏈鏂扮殑C99鏍囧噯銆傚湪鏃ュ父鐨勫紑鍙戜腑錛屼粛鐒舵湁寰堝鍏徃浣跨敤榪欎釜緇忓吀紼沖畾
鐨勭幆澧冿紝姣斿絎旇呭氨鐪嬫浘浜茶鏈変簺鍏徃灝嗗叾緙栬瘧鍣ㄦ浛鎹負GCC鍋氭墜鏈哄紑鍙戜箣鐢ㄣ?/p>
銆銆3.2 Visual Studio.NET 2003
銆銆浣滀負Microsoft鍏徃瀹樻柟姝e紡鍙戝竷鐨勬渶鏂扮増鏈紑鍙戠幆澧冿紝鍏朵腑鏈夊お澶氭縺鍔ㄤ漢蹇冪殑
鍔熻兘銆傜粨鍚堝叾鏈鏂扮殑C++緙栬瘧鍣ㄣ傚浜庢満鍣ㄩ厤緗瘮杈冨ソ鐨勫紑鍙戜漢鍛樻潵璇達紝浣跨敤榪欎釜寮
鍙戠幆澧冨皢鑳芥弧瓚沖叾澶ч儴鍒嗙殑瑕佹眰銆傝繖閲屼笉鎵撶畻鍗曠嫭璇碫isual Studio Whidbey,铏界劧
Visual Studio .NET 2005 - Whidbey紺懼尯棰勮鐗堝凡緇忔帹鍑猴紝浣嗘殏涓嶆槸寰堢ǔ瀹氾紝璇昏?br />鍙互浜茶韓鍘諱綋楠屻?/p>
銆銆3.3 Borland C++ Builder 6
銆銆榪欎釜騫朵笉鏄疊orland鐨凜++寮鍙戠幆澧冪殑鏈鏂扮増鏈傞夋嫨瀹冪殑鍘熷洜鏄畠涓嶆槸鐢↗ava
鍐欑殑IDE錛岄熷害姣旇緝蹇傚畠鏈変竴涓緢瀹屽杽鐨凣UI紿椾綋璁捐鍣紝鍜孌elphi鍏辯敤涓涓猇CL銆?br />鐢變簬榪欎簺鐗圭偣錛屾瘮杈冮傚悎鍒濆鑰呬笂鎵嬨備絾鏄敱浜庡叾GUI鐨勪腑蹇冧綅緗紝鍙兘涓嶅埄浜庡浜?br />C++璇█鐨勫涔犮傝屼笖鍏朵負浜嗘敮鎸乂CL榪欎釜Object Pascal鍐欑殑搴撲篃瀵笴++榪涜浜嗕竴浜?br />縐佹湁鐨勬墿鍏呫備嬌寰椾漢浠湁涓涓笉寰椾笉鎺ュ彈鐨勪簨瀹烇細鈥淏orland C++ Builder 6鐨勯珮鎵?br />鍑犱箮閮芥槸Delphi楂樻墜鈥濄?/p>
銆銆3.4 Borland C++ Builder X
銆銆姝e鍓嶆枃鎵榪幫紝铏界劧鐗堟湰鍙蜂笂鍜屽墠闈㈤偅涓狪DE闈炲父鐩歌薄錛屼絾鏄叾瀹炲畠浠槸瀹屽叏涓?br />鍚岀殑涓や釜闆嗘垚寮鍙戠幆澧冦侰++Builder鏇村鐨勬槸涓涓拰Delphi鍚屾鐨凜++鐗堟湰鐨勫紑鍙戠幆
澧冿紝C++BuilderX鍒欐槸瀹屽叏浠嶤++鐨勮搴︽濊冨緱鍑虹殑涓涓姛鑳戒赴瀵岀殑IDE銆傚叾鏈澶х殑鐗?br />鐐規槸璺ㄥ鉤鍙幫紝璺ㄧ紪璇戝櫒錛屽縐岶ramework鐨勯泦鎴愶紝騫朵笖鏈変竴涓猈xWindows涓哄熀紜鐨凣U
I璁捐鍣ㄣ傚挨鍏舵槸閲囩敤浜嗙函C++鏉ラ噸鍐欎簡鏁翠釜Framework,鎽掑純浜嗕互鍓嶄護浜烘棤濂堢殑鐗堟湰
銆傚浜嶤++鐨勫紑鍙戞潵璇達紝浠庣紪璇戝櫒錛屽埌搴擄紝鍒板姛鑳介泦鎴愰兘鏄潪甯哥悊鎯崇殑銆傚彲浠ラ瑙侊紝
Borland C++ Builder X 2.0寰堝煎緱C++鐖卞ソ鑰呮湡寰呫傚敮涓浠や漢闅懼牚涔嬪鏄綔涓轟竴涓?br />C++鐨勫紑鍙戝伐鍏鳳紝鍏禝DE鏄敤Java鍐欑殑錛屽湪閰嶇疆涓嶅鐞嗘兂鐨勬満鍣ㄤ笂璇鋒厧閲嶈冭檻鍐嶅畨瑁?br />銆?/p>
銆銆3.5 Emacs + GCC
銆銆鍓嶉潰璁茬殑澶ч儴鍒嗘槸Windows鐜涓嬬殑闆嗘垚寮鍙戠幆澧冦侺inux涓婄殑寮鍙戣呮洿鍊懼悜浜?br />浣跨敤Emacs鏉ョ紪杈慍++鐨勬枃浠訛紝鐢∕akefile鏉ュ懡浠CC鍋氱紪璇戙傝櫧鐒剁湅涓婂幓姣旇緝鏉炬暎錛?br />浣嗘槸榪欎簺涓滆タ緇煎悎璧鋒潵榪樻槸涓涓紑0鍙戠幆澧冦傚鏋滀綘鑳藉濞寸啛鐨勪嬌鐢ㄨ繖鏍風殑鐜鍐欑▼
搴忥紝浣犵殑姘村鉤搴旇瓚沖鎸囧鎴戜滑鏉ュ啓榪欑瘒闄嬫枃浜嗐?/p>
銆銆3.6 Dev C++
銆銆GCC鏄竴涓緢濂界殑緙栬瘧鍣ㄣ傚湪Windows涓婄殑C++緙栬瘧鍣ㄤ竴鐩村拰鏍囧噯鏈夌潃涓孌佃窛紱葷殑
鏃跺欙紝GCC灝辨槸涓涓Windows涓嬪紑鍙戣呮祦鍙f按鐨勭紪璇戝櫒銆侱ev-C++灝辨槸鑳藉璁〨CC璺?br />鍦╓indows涓嬬殑宸ュ叿錛屼綔涓洪泦鎴愬紑鍙戠幆澧冿紝榪樻彁渚涗簡鍚屼笓涓欼DE鐩稿緹庣殑璇硶楂樹寒錛?br />浠g爜鎻愮ず錛岃皟璇曠瓑鍔熻兘銆傜敱浜庝嬌鐢―elphi寮鍙戯紝鍗犵敤鍐呭瓨灝戯紝閫熷害寰堝揩錛屾瘮杈冮傚悎
杞婚噺綰х殑瀛︿範鍜屼嬌鐢ㄣ?/p>
銆銆3.7 Eclipse + CDT
銆銆Eclipse鍙槸榪戞潵澶у悕榧庨紟鐨勫紑鍙戝伐鍏楓傛渶鏂頒竴鏈熺殑Jolt澶у灝遍緇欎簡榪欎釜鏉板嚭
鐨勭鐗┿傝鍏剁濂囨槸鍥犱負錛屽畠鏈韓鏄敤Java鍐欑殑錛屼絾鏄嫢鏈夋瘮涓鑸琂ava鍐欑殑紼嬪簭蹇?br />寰楀鐨勯熷害銆傝屼笖鍥犱負鍏跺熀浜庢彃浠剁粍瑁呬竴鍒囩殑鍘熷垯錛屼嬌寰楄兘澶熸湁CDT榪欐牱鐨勬彃浠舵妸E
clipse鍙樻垚涓涓狢/C++鐨勫紑鍙戠幆澧冦傚鏋滀綘涓鐩寸敤Eclipse鍐橨ava鐨勭▼搴忥紝涓嶅Θ鐢ㄥ畠
浣撻獙涓涓婥++寮鍙戠殑涔愯叮銆?/p>
------------------------------------------------------------------------
--------
銆銆4錛屽伐鍏?/p>
銆銆C++鐨勮緟鍔╁伐鍏風箒澶氾紝鎴戜滑鍒嗛棬鍒被鐨勪負澶у浣滀粙緇嶏細
銆銆4.1 鏂囨。綾?/p>
銆銆(1) Doxygen
銆銆鍙傝冪珯鐐癸細http://www.doxygen.org
銆銆Doxygen鏄竴縐嶉傚悎C椋庢牸璇█錛堝C++銆丆銆両DL銆丣ava鐢氳嚦鍖呮嫭C#鍜孭HP錛夌殑銆?br />寮鏀炬簮鐮佺殑銆佸熀浜庡懡浠よ鐨勬枃妗d駭鐢熷櫒銆?/p>
銆銆(2) C++2HTML
銆銆鍙傝冪珯鐐癸細http://www.bedaux.net/cpp2html/
銆銆鎶奀++浠g爜鍙樻垚璇硶楂樹寒鐨凥TML
銆銆(3) CodeColorizer
銆銆鍙傝冪珯鐐癸細http://www.chami.com/colorizer/
銆銆瀹冭兘鎶婂ソ鍑犵璇█鐨勬簮浠g爜鐫鑹蹭負HTML
銆銆(4) Doc-O-Matic
銆銆鍙傝冪珯鐐癸細http://www.doc-o-matic.com/
銆銆Doc-O_Matic涓轟綘鐨凜/C++錛孋++.net錛孌elphi/Pascal, VB.NET錛孋#鍜孞ava紼嬪簭
鎴栬呯粍浠朵駭鐢熷噯紜殑鏂囨。銆侱oc-O-Matic浣跨敤婧愪唬鐮佷腑鐨勭鍙峰拰娉ㄩ噴浠ュ強澶栭儴鐨勬枃妗?br />鏂囦歡鍒涘緩涓庢祦琛岀殑鏂囨。鏍峰紡涓鑷寸殑鏂囨。銆?/p>
銆銆(5) DocVizor
銆銆鍙傝冪珯鐐癸細http://www.ucancode.net/Products/DocBuilder/Features.htm
銆銆DocVizor婊¤凍浜嗛潰鍚戝璞¤蔣浠跺紑鍙戣呯殑鍩烘湰瑕佹眰鈥斺斿畠璁╂垜浠兘澶熺湅鍒癈++宸ョ▼
涓殑綾誨眰嬈$粨鏋勩侱ocVizor蹇熷湴浜х敓瀹屾暣鍙緵鎵撳嵃鐨勭被灞傛緇撴瀯鍥撅紝鍖呮嫭浠庣涓?br />鏂瑰簱涓潵鐨勯偅浜涚被錛岄櫎姝や箣澶朌ocVizor榪樿兘浠庣被淇℃伅涓駭鐢烪TML鏂囦歡銆?/p>
銆銆(6) SourcePublisher C++
銆銆鍙傝冪珯鐐癸細http://www.scitools.com/sourcepublisher_c.html
銆銆緇欐簮浠g爜浜х敓鎻愪緵蹇熺洿瑙傜殑HTML鎶ヨ〃錛屽寘鎷唬鐮侊紝綾誨眰嬈$粨鏋勶紝璋冪敤鍜岃璋?br />鐢ㄦ爲錛屽寘鍚拰琚寘鍚爲銆傛敮鎸佸縐嶆搷浣滅郴緇熴?/p>
銆銆(7) Understand
銆銆鍙傝冪珯鐐癸細http://www.scitools.com/ucpp.html
銆銆鍒嗘瀽浠諱綍瑙勬ā鐨凜鎴栬匔++宸ョ▼錛屽府鍔╂垜浠洿濂界殑鐞嗚В浠ュ強緙栧啓鏂囨。銆?/p>
銆銆4.2 浠g爜綾?/p>
銆銆(1) CC-Rider
銆銆鍙傝冪珯鐐癸細http://www.cc-rider.com
銆銆CC-Rider鏄敤浜嶤/C++紼嬪簭寮哄ぇ鐨勪唬鐮佸彲瑙嗗寲宸ュ叿錛岄氳繃浜や簰寮忔祻瑙堛佺紪杈戝強鑷?br />鍔ㄦ枃浠舵潵淇冭繘紼嬪簭鐨勭淮鎸佸拰鍙戝睍銆?/p>
銆銆(2) CodeInspect
銆銆鍙傝冪珯鐐癸細http://www.yokasoft.com/
銆銆涓縐嶆柊鐨凜/C++浠g爜鍒嗘瀽宸ュ叿銆傚畠媯鏌ユ垜浠殑婧愪唬鐮佹壘鍑洪潪鏍囧噯鐨勶紝鍙兘鐨勶紝浠?br />鍙婃櫘閫氱殑閿欒浠g爜銆?/p>
銆銆(3) CodeWizard
銆銆鍙傝冪珯鐐癸細http://www.parasoft.com
銆銆鍏堣繘鐨凜/C++婧愪唬鐮佸垎鏋愬伐鍏鳳紝浣跨敤瓚呰繃500涓紪鐮佽鑼冭嚜鍔ㄥ寲鍦版爣鏄庡嵄闄╃殑錛?br />浣嗘槸緙栬瘧鍣ㄤ笉鑳芥鏌ュ埌鐨勪唬鐮佺粨鏋勩?/p>
銆銆(4) C++ Validation Test Suites
銆銆鍙傝冪珯鐐癸細http://www.plumhall.com/suites.html
銆銆涓緇勭敤浜庢祴璇曠紪璇戝櫒鍜屽簱瀵逛簬鏍囧噯鍚誨悎紼嬪害鐨勪唬鐮佸簱銆?/p>
銆銆(5) CppRefactory
銆銆鍙傝冪珯鐐癸細http://cpptool.sourceforge.net/
銆銆CPPRefactory鏄竴涓嬌寰楀紑鍙戣呰兘澶熼噸鏋勪粬浠殑C++浠g爜鐨勭▼搴忋傜洰鐨勬槸浣垮緱C
++浠g爜鐨勯噸鏋勮兘澶熷敖鍙兘鐨勬湁鏁堢巼鍜岀畝鍗曘?/p>
銆銆(6) Lzz
銆銆鍙傝冪珯鐐癸細http://www.lazycplusplus.com/
銆銆Lzz鏄竴涓嚜鍔ㄥ寲璁稿C++緙栫▼涓殑浣撳姏媧葷殑宸ュ叿銆傚畠鑳藉鑺傜渷鎴戜滑璁稿浜嬩歡騫?br />涓斾嬌寰楃紪鐮佹洿鍔犳湁涔愯叮銆傜粰鍑轟竴緋誨垪鐨勫0鏄庯紝Lzz浼氱粰鎴戜滑鍒涘緩澶存枃浠跺拰婧愭枃浠躲?/p>
銆銆(7) QA C++ Generation 2000
銆銆鍙傝冪珯鐐癸細http://www.programmingresearch.com/solutions/qacpp.htm
銆銆瀹冨叧娉ㄩ潰鍚戝璞$殑C++婧愪唬鐮侊紝瀵規湁鍏充簬璁捐錛屾晥鐜囷紝鍙潬鎬э紝鍙淮鎶ゆх殑閮ㄥ垎
鎻愬嚭璀﹀憡淇℃伅銆?/p>
銆銆(8) s-mail project - Java to C++DOL
銆銆鍙傝冪珯鐐癸細http://sadlocha.strefa.pl/s-mail/ja2dol.html
銆銆鎶奐ava婧愪唬鐮佺炕璇戜負鐩稿簲鐨凜++婧愪唬鐮佺殑鍛戒護琛屽伐鍏楓?/p>
銆銆(9) SNIP from Cleanscape Software International
銆銆鍙傝冪珯鐐癸細http://www.cleanscape.net/stdprod/snip/index.html
銆銆涓涓~騫崇紪鐮佸拰璁捐涔嬮棿娌熷鐨勬槗浜庝嬌鐢ㄧ殑C++寮鍙戝伐鍏鳳紝鑺傜渷澶ч噺緙栬緫鍜岃皟璇?br />鐨勪簨浠訛紝瀹冭繕浣垮緱寮鍙戣呰兘澶熸寚瀹氳璁℃ā寮忎綔涓哄璞℃ā鍨嬶紝鑷姩浠庡璞℃ā鍨嬩腑浜х敓
C++鐨勭被銆?/p>
銆銆(10) SourceStyler C++
銆銆鍙傝冪珯鐐癸細http://www.ochresoftware.com/
銆銆瀵笴/C++婧愪唬鐮佹彁渚涘畬鏁寸殑鏍煎紡鍖栧拰鎺掔増鎺у埗鐨勫伐鍏楓傛彁渚涘浜?5涓殑鏍煎紡鍖栭?br />欏逛互鍙婂畬鍏ㄦ敮鎸丄NSI C++銆?/p>
銆銆4.3 緙栬瘧綾?/p>
銆銆(1) Compilercache
銆銆鍙傝冪珯鐐癸細http://www.erikyyy.de/compilercache/
銆銆Compilercache鏄竴涓浣犵殑C鍜孋++緙栬瘧鍣ㄧ殑灝佽鑴氭湰銆傛瘡嬈℃垜浠繘琛岀紪璇戯紝灝?br />瑁呰剼鏈紝鎶婄紪璇戠殑緇撴灉鏀懼叆緙撳瓨錛屼竴鏃︾紪璇戠浉鍚岀殑涓滆タ錛岀粨鏋滃皢浠庣紦瀛樹腑鍙栧嚭鑰屼笉
鏄啀嬈$紪璇戙?/p>
銆銆(2) Ccache
銆銆鍙傝冪珯鐐癸細http://ccache.samba.org/
銆銆Ccache鏄竴涓紪璇戝櫒緙撳瓨銆傚畠浣跨敤璧鋒潵灝卞儚C/C++緙栬瘧鍣ㄧ殑緙撳瓨棰勫鐞嗗櫒錛岀紪璇?br />閫熷害閫氬父鑳芥彁楂樻櫘閫氱紪璇戣繃紼嬬殑5~10鍊嶃?/p>
銆銆(3) Cmm (C++ with MultiMethods)
銆銆鍙傝冪珯鐐癸細http://www.op59.net/cmm/cmm-0.28/users.html
銆銆榪欐槸涓縐岰++璇█鐨勬墿灞曘傝鍏mm婧愪唬鐮佽緭鍑篊++鐨勬簮浠g爜錛屽姛鑳芥槸瀵笴++璇█
娣誨姞浜嗗multimethod鐨勬敮鎸併?/p>
銆銆(4) The Frost Project
銆銆鍙傝冪珯鐐癸細http://frost.flewid.de/
銆銆Forst浣垮緱浣犺兘澶熷湪C++紼嬪簭涓儚鍘熺敓鐨凜++鐗規т竴鏍蜂嬌鐢╩ultimethod浠ュ強铏氬嚱
鏁板弬鏁般傚畠鏄竴涓紪璇戝櫒鐨勫澹熾?/p>
銆銆4.4 嫻嬭瘯鍜岃皟璇曠被
銆銆(1) CPPUnit
銆銆CppUnit 鏄釜鍩轟簬 LGPL 鐨勫紑婧愰」鐩紝鏈鍒濈増鏈Щ妞嶈嚜 JUnit錛屾槸涓涓潪甯鎬紭
縐鐨勫紑婧愭祴璇曟鏋躲侰ppUnit 鍜?JUnit 涓鏍蜂富瑕佹濇兂鏉ユ簮浜庢瀬闄愮紪紼嬨備富瑕佸姛鑳藉氨
鏄鍗曞厓嫻嬭瘯榪涜綆$悊錛屽茍鍙繘琛岃嚜鍔ㄥ寲嫻嬭瘯銆?/p>
銆銆(2) C++Test
銆銆鍙傝冪珯鐐癸細http://www.parasoft.com/
銆銆C++ Test鏄竴涓崟鍏冩祴璇曞伐鍏鳳紝瀹冭嚜鍔ㄥ寲浜咰鍜孋++綾伙紝鍑芥暟鎴栬呯粍浠剁殑嫻嬭瘯銆?/p>
銆銆(3) Cantata++
銆銆鍙傝冪珯鐐癸細http://www.iplbath.com/products/tools/pt400.shtml
銆銆璁捐鐨勭洰鐨勬槸涓轟簡婊¤凍鍦ㄥ悎鐞嗙殑緇忔祹寮閿涓嬩嬌鐢ㄨ繖涓伐鍏峰彲浠ヨ寮鍙戝伐紼嬪笀寮
灞曞崟鍏冩祴璇曞拰闆嗘垚嫻嬭瘯鐨勯渶姹?
銆銆(4) Purify
銆銆鍙傝冪珯鐐癸細http://www-900.ibm.com/cn/software/rational/products/purif
yplus/index.shtml
銆銆IBM Rational PurifyPlus鏄竴濂楀畬鏁寸殑榪愯鏃跺垎鏋愬伐鍏鳳紝鏃ㄥ湪鎻愰珮搴旂敤紼嬪簭鐨?br />鍙潬鎬у拰鎬ц兘銆侾urifyPlus灝嗗唴瀛橀敊璇拰娉勬紡媯嫻嬨佸簲鐢ㄧ▼搴忔ц兘鎻忚堪銆佷唬鐮佽鐩?br />鍒嗘瀽絳夊姛鑳界粍鍚堝湪涓涓崟涓銆佸畬鏁寸殑宸ュ叿鍖呬腑銆?/p>
銆銆(5) BoundsChecker
銆銆BoundsChecker鏄竴涓狢++榪愯鏃墮敊璇嫻嬪拰璋冭瘯宸ュ叿銆傚畠閫氳繃鍦╒isual Studi
o鍐呰嚜鍔ㄥ寲璋冭瘯榪囩▼鍔犻熷紑鍙戝茍涓旂緝鐭笂甯傜殑鍛ㄦ湡銆侭oundsChecker鎻愪緵娓呮錛岃緇?br />鐨勭▼搴忛敊璇垎鏋愶紝璁稿鏄C++鐙湁鐨勫茍涓斿湪static錛宻tack鍜宧eap鍐呭瓨涓嫻嬪拰璇?br />鏂敊璇紝浠ュ強鍙戠幇鍐呭瓨鍜岃祫婧愮殑娉勬紡銆傘銆(6) Insure++
銆銆鍙傝冪珯鐐癸細http://www.parasoft.com/
銆銆涓涓嚜鍔ㄥ寲鐨勮繍琛屾椂紼嬪簭嫻嬭瘯宸ュ叿錛屾鏌ラ毦浠ュ療瑙夌殑閿欒,濡傚唴瀛樿鐩栵紝鍐呭瓨娉?br />婕忥紝鍐呭瓨鍒嗛厤閿欒錛屽彉閲忓垵濮嬪寲閿欒錛屽彉閲忓畾涔夊啿紿侊紝鎸囬拡閿欒錛屽簱閿欒錛岄昏緫閿?br />璇拰綆楁硶閿欒絳夈?/p>
銆銆(7) GlowCode
銆銆鍙傝冪珯鐐癸細http://www.glowcode.com/
銆銆GlowCode鍖呮嫭鍐呭瓨娉勬紡媯鏌ワ紝code profiler錛屽嚱鏁拌皟鐢ㄨ窡韙瓑鍔熻兘銆傜粰C++寮
鍙戣呮彁渚涘畬鏁寸殑閿欒璇婃柇錛屽拰榪愯鏃舵ц兘鍒嗘瀽宸ュ叿鍖呫?/p>
銆銆(8) Stack Spy
銆銆鍙傝冪珯鐐癸細http://www.imperioustech.com/
銆銆瀹冭兘鎹曟崏stack corruption, stack over run, stack overflow絳夋湁鍏蟲爤鐨勯敊
璇?/p>
------------------------------------------------------------------------
--------
銆銆5錛屽簱
銆銆鍦–++涓紝搴撶殑鍦頒綅鏄潪甯擱珮鐨勩侰++涔嬬埗 Bjarne Stroustrup鍏堢敓澶氭琛ㄧず浜?br />璁捐搴撴潵鎵╁厖鍔熻兘瑕佸ソ榪囪璁℃洿澶氱殑璇硶鐨勮█璁恒傜幇瀹炰腑錛孋++鐨勫簱闂ㄧ被綣佸錛岃В鍐?br />鐨勯棶棰樹篃鏄瀬鍏跺箍娉涳紝搴撲粠杞婚噺綰у埌閲嶉噺綰х殑閮芥湁銆備笉灝戦兘鏄浜虹溂鐣屽ぇ寮錛屼害鎴?br />鏄湜鑰岀敓鍙圭殑鎬濈淮鏉頒綔銆傜敱浜庡簱鐨勬暟閲忛潪甯稿簽澶э紝鑰屼笖闄愪簬絎旇呮按騫籌紝鍏朵腑寰堝騫?br />涓嶄簡瑙c傛墍浠ユ枃涓墍鎻愮殑涓浜涘簱閮芥槸姣旇緝钁楀悕鐨勫ぇ鍨嬪簱銆?/p>
銆銆5.1 鏍囧噯搴?/p>
銆銆鏍囧噯搴撲腑鎻愪緵浜咰++紼嬪簭鐨勫熀鏈鏂姐傝櫧鐒禖++鏍囧噯搴撻殢鐫C++鏍囧噯鎶樿吘浜嗚澶氬勾
錛岀洿鍒版爣鍑嗙殑鍑哄彴鎵嶆寮忓畾鍨嬶紝浣嗘槸鍦ㄦ爣鍑嗗簱鐨勫疄鐜頒笂鍗村緢浠や漢嬈f叞寰楃湅鍒板縐嶅疄
鐜幫紝騫朵笖宸茶瀹炶返璇佹槑涓烘湁宸ヤ笟綰у埆寮哄害鐨勪匠浣溿?/p>
銆銆(1) Dinkumware C++ Library
銆銆鍙傝冪珯鐐癸細http://www.dinkumware.com/
銆銆P.J. Plauger緙栧啓鐨勯珮鍝佽川鐨勬爣鍑嗗簱銆侾.J. Plauger鍗氬+鏄疍r. Dobb's紼嬪簭璁?br />璁℃澃鍑哄鐨勮幏寰楄呫傚叾緙栧啓鐨勫簱闀挎湡琚玀icrosoft閲囩敤錛屽茍涓旀渶榪態orland涔熷彇寰椾簡
鍏禣EM鐨刲icense錛屽湪鍏禖/C++鐨勪駭鍝佷腑閲囩敤Dinkumware鐨勫簱銆?/p>
銆銆(2) RogueWave Standard C++ Library
銆銆鍙傝冪珯鐐癸細http://www.roguewave.com/
銆銆榪欎釜搴撳湪Borland C++ Builder鐨勬棭鏈熺増鏈腑鏇劇粡琚噰鐢紝鍚庢潵琚叾浠栫殑搴撶粰鏇?br />鎹簡銆傜瑪鑰呬笉鎺ㄨ崘浣跨敤銆?/p>
銆銆(3) SGI STL
銆銆鍙傝冪珯鐐癸細http://www.roguewave.com/
銆銆SGI鍏徃鐨凜++鏍囧噯妯$増搴撱?/p>
銆銆(4) STLport
銆銆鍙傝冪珯鐐癸細http://www.stlport.org/
銆銆SGI STL搴撶殑璺ㄥ鉤鍙板彲縐繪鐗堟湰銆?/p>
銆銆5.2 鈥滃噯鈥濇爣鍑嗗簱 - Boost
銆銆鍙傝冪珯鐐癸細http://www.boost.org
銆銆鍥藉唴闀滃儚錛?a >http://www.c-view.org/tech/lib/boost/index.htm
銆銆Boost搴撴槸涓涓粡榪囧崈閿ょ櫨鐐箋佸彲縐繪銆佹彁渚涙簮浠g爜鐨凜++搴擄紝浣滀負鏍囧噯搴撶殑鍚?br />澶囷紝鏄疌++鏍囧噯鍖栬繘紼嬬殑鍙戝姩鏈轟箣涓銆?Boost搴撶敱C++鏍囧噯濮斿憳浼氬簱宸ヤ綔緇勬垚鍛樺彂璧?br />錛屽湪C++紺懼尯涓獎鍝嶇敋澶э紝鍏舵垚鍛樺凡榪?000浜恒?Boost搴撲負鎴戜滑甯︽潵浜嗘渶鏂般佹渶閰楓?br />鏈瀹炵敤鐨勬妧鏈紝鏄笉鎶樹笉鎵g殑鈥滃噯鈥濇爣鍑嗗簱銆?/p>
銆銆Boost涓瘮杈冩湁鍚嶆皵鐨勬湁榪欎箞鍑犱釜搴擄細
銆銆Regex
銆銆姝e垯琛ㄨ揪寮忓簱
銆銆Spirit
銆銆LL parser framework錛岀敤C++浠g爜鐩存帴琛ㄨ揪EBNF
銆銆Graph
銆銆鍥劇粍浠跺拰綆楁硶
銆銆Lambda
銆銆鍦ㄨ皟鐢ㄧ殑鍦版柟瀹氫箟鐭皬鍖垮悕鐨勫嚱鏁板璞★紝寰堝疄鐢ㄧ殑functional鍔熻兘
銆銆concept check
銆銆媯鏌ユ硾鍨嬬紪紼嬩腑鐨刢oncept
聽
銆銆Mpl
銆銆鐢ㄦā鏉垮疄鐜扮殑鍏冪紪紼嬫鏋?/p>
聽
銆銆Thread
銆銆鍙Щ妞嶇殑C++澶氱嚎紼嬪簱
聽
銆銆Python
銆銆鎶奀++綾誨拰鍑芥暟鏄犲皠鍒癙ython涔嬩腑
銆銆Pool
銆銆鍐呭瓨姹犵鐞?/p>
聽
銆銆smart_ptr
銆銆5涓櫤鑳芥寚閽堬紝瀛︿範鏅鴻兘鎸囬拡蹇呰錛屼竴浠戒笉閿欑殑鍙傝冩槸鏉ヨ嚜CUJ鐨勬枃绔狅細
銆銆Smart Pointers in Boost錛屽摝錛岃繖綃囨枃绔犲彲浠ユ煡鍒幫紝CUJ鏄彁渚涘湪綰挎祻瑙堢殑銆?br />涓枃鐗堣絎旇呭湪銆奃r. Dobb's Journal杞歡鐮斿彂鏉傚織銆嬬7杈戜笂鐨勮瘧鏂囥?/p>
銆銆Boost鎬諱綋鏉ヨ鏄疄鐢ㄤ環鍊煎緢楂橈紝璐ㄩ噺寰堥珮鐨勫簱銆傚茍涓旂敱浜庡叾瀵硅法騫沖彴鐨勫己璋冿紝
瀵規爣鍑咰++鐨勫己璋冿紝鏄紪鍐欏鉤鍙版棤鍏籌紝鐜頒唬C++鐨勫紑鍙戣呭繀澶囩殑宸ュ叿銆備絾鏄疊oost涓篃
鏈夊緢澶氭槸瀹為獙鎬ц川鐨勪笢瑗匡紝鍦ㄥ疄闄呯殑寮鍙戜腑瀹炵敤闇瑕佽皚鎱庛傚茍涓斿緢澶欱oost涓殑搴撳姛
鑳藉牚縐板璇█鍔熻兘鐨勬墿灞曪紝鍏舵瀯閫犵敤灝界簿宸х殑鎵嬫硶錛屼笉瑕佽錘鐒剁殑鑺辮垂鏃墮棿鐮旇銆侭o
ost鍙﹀涓闈紝姣斿Graph榪欐牱鐨勫簱鍒欐槸鍏鋒湁宸ヤ笟寮哄害錛岀粨鏋勮壇濂斤紝闈炲父鍊煎緱鐮旇鐨?br />綺懼搧浠g爜錛屽茍涓斾篃鍙互鏀懼績鐨勫湪浜у搧浠g爜涓澶氬埄鐢ㄣ?/p>
銆銆5.3 GUI
銆銆鍦ㄤ紬澶欳++鐨勫簱涓紝GUI閮ㄥ垎鐨勫簱綆楁槸姣旇緝綣佽崳錛屼篃姣旇緝寮曚漢娉ㄧ洰鐨勩傚湪瀹為檯寮
鍙戜腑錛孏UI搴撶殑閫夋嫨涔熸槸闈炲父閲嶈鐨勪竴浠朵簨鎯咃紝涓嬮潰鎴戜滑緇艱堪涓涓嬪彲閫夋嫨鐨凣UI搴擄紝
鍚勮嚜鐨勭壒鐐逛互鍙婄浉鍏沖伐鍏風殑鏀寔銆?/p>
銆銆(1) MFC
銆銆澶у悕榧庨紟鐨勫井杞熀紜綾誨簱錛圡icrosoft Foundation Class錛夈傚ぇ鍑″榪嘨C++鐨?br />浜洪兘搴旇鐭ラ亾榪欎釜搴撱傝櫧鐒朵粠鎶鏈搴﹁錛孧FC鏄笉澶ф紓浜殑錛屼絾鏄畠鏋勫緩浜嶹indo
ws API 涔嬩笂錛岃兘澶熶嬌紼嬪簭鍛樼殑宸ヤ綔鏇村鏄?緙栫▼鏁堢巼楂橈紝鍑忓皯浜嗗ぇ閲忓湪寤虹珛 Windo
ws 紼嬪簭鏃跺繀欏葷紪鍐欑殑浠g爜錛屽悓鏃跺畠榪樻彁渚涗簡鎵鏈変竴鑸?C++ 緙栫▼鐨勪紭鐐癸紝渚嬪緇ф壙
鍜屽皝瑁呫侻FC 緙栧啓鐨勭▼搴忓湪鍚勪釜鐗堟湰鐨刉indows鎿嶄綔緋葷粺涓婃槸鍙Щ妞嶇殑錛屼緥濡傦紝鍦?br />Windows 3.1涓嬬紪鍐欑殑浠g爜鍙互寰堝鏄撳湴縐繪鍒?Windows NT 鎴?Windows 95 涓娿備絾
鏄湪鏈榪戝彂灞曚互鍙婂畼鏂規敮鎸佷笂鏃ユ笎鍔垮井銆?/p>
銆銆(2) QT
銆銆鍙傝冪綉绔欙細http://www.trolltech.com/
銆銆Qt鏄疶rolltech鍏徃鐨勪竴涓騫沖彴鐨凜++鍥懼艦鐢ㄦ埛鐣岄潰搴旂敤紼嬪簭妗嗘灦銆傚畠鎻愪緵緇?br />搴旂敤紼嬪簭寮鍙戣呭緩绔嬭壓鏈駭鐨勫浘褰㈢敤鎴風晫闈㈡墍闇鐨勬墍鐢ㄥ姛鑳姐俀t鏄畬鍏ㄩ潰鍚戝璞$殑
寰堝鏄撴墿灞曪紝騫朵笖鍏佽鐪熸鍦扮粍浠剁紪紼嬨傝嚜浠?996騫存棭浜涙椂鍊欙紝Qt榪涘叆鍟嗕笟棰嗗煙錛?br />瀹冨凡緇忔垚涓哄叏涓栫晫鑼冨洿鍐呮暟鍗冪鎴愬姛鐨勫簲鐢ㄧ▼搴忕殑鍩虹銆俀t涔熸槸嫻佽鐨凩inux妗岄潰鐜?br />澧僈DE 鐨勫熀紜錛屽悓鏃跺畠榪樻敮鎸乄indows銆丮acintosh銆乁nix/X11絳夊縐嶅鉤鍙般?/p>
銆銆(3) WxWindows
銆銆鍙傝冪綉绔欙細http://www.wxwindows.org/
銆銆璺ㄥ鉤鍙扮殑GUI搴撱傚洜涓哄叾綾誨眰嬈℃瀬鍍廙FC錛屾墍浠ユ湁鏂囩珷浠嬬粛浠嶮FC鍒癢xWindows鐨?br />浠g爜縐繪浠ュ疄鐜拌法騫沖彴鐨勫姛鑳姐傞氳繃澶氬勾鐨勫紑鍙戜篃鏄竴涓棩瓚嬪畬鍠勭殑GUI搴擄紝鏀寔鍚?br />鏍蜂笉寮變簬鍓嶉潰涓や釜搴撱傚茍涓旀槸瀹屽叏寮鏀炬簮浠g爜鐨勩傛柊榪戠殑C++ Builder X鐨凣UI璁捐
鍣ㄥ氨鏄熀浜庤繖涓簱鐨勩?/p>
銆銆(4) Fox
銆銆鍙傝冪綉绔欙細http://www.fox-toolkit.org/
銆銆寮鏀炬簮浠g爜鐨凣UI搴撱備綔鑰呬粠鑷繁浜茶韓鐨勫紑鍙戠粡楠屼腑寰楀嚭浜嗕竴涓悊鎯崇殑GUI搴撳簲
璇ユ槸浠涔堟牱瀛愮殑鎰熷彈鍑哄彂錛屼粠鑰屽紑濮嬩簡瀵硅繖涓簱鐨勫紑鍙戙傛湁鍏磋叮鐨勫彲浠ュ皾璇曚竴涓嬨?/p>
銆銆(5) WTL
銆銆鍩轟簬ATL鐨勪竴涓簱銆傚洜涓轟嬌鐢ㄤ簡澶ч噺ATL鐨勮交閲忕駭鎵嬫硶錛屾ā鏉跨瓑鎶鏈紝鍦ㄤ唬鐮佸昂
瀵革紝浠ュ強閫熷害浼樺寲鏂歸潰鍋氬緱闈炲父鍒頒綅銆備富瑕侀潰鍚戠殑浣跨敤緹や綋鏄紑鍙慍OM杞婚噺綰т緵緗戠粶
涓嬭澆鐨勫彲瑙嗗寲鎺т歡鐨勫紑鍙戣呫?/p>
銆銆(6) GTK
銆銆鍙傝冪綉绔欙細http://gtkmm.sourceforge.net/
銆銆GTK鏄竴涓ぇ鍚嶉紟榧庣殑C鐨勫紑婧怗UI搴撱傚湪Linux涓栫晫涓湁Gnome榪欐牱鐨勬潃鎵嬪簲鐢ㄣ?br />鑰孏TK灝辨槸榪欎釜搴撶殑C++灝佽鐗堟湰銆?/p>
銆銆5.4 緗戠粶閫氫俊
銆銆(1) ACE
銆銆鍙傝冪綉绔欙細http://www.cs.wustl.edu/~schmidt/ACE.html
銆銆C++搴撶殑浠h〃錛岃秴閲嶉噺綰х殑緗戠粶閫氫俊寮鍙戞鏋躲侫CE鑷傞厤閫氫俊鐜錛圓daptive
聽Communication Environment錛夋槸鍙互鑷敱浣跨敤銆佸紑鏀炬簮浠g爜鐨勯潰鍚戝璞℃鏋訛紝鍦?br />鍏朵腑瀹炵幇浜嗚澶氱敤浜庡茍鍙戦氫俊杞歡鐨勬牳蹇冩ā寮忋侫CE鎻愪緵浜嗕竴緇勪赴瀵岀殑鍙鐢–++鍖?br />瑁呭瑙傦紙Wrapper Facade錛夊拰妗嗘灦緇勪歡錛屽彲璺ㄨ秺澶氱騫沖彴瀹屾垚閫氱敤鐨勯氫俊杞歡浠誨姟
錛屽叾涓寘鎷細浜嬩歡澶氳礬鍒嗙鍜屼簨浠跺鐞嗗櫒鍒嗘淳銆佷俊鍙峰鐞嗐佹湇鍔″垵濮嬪寲銆佽繘紼嬮棿閫?br />淇°佸叡浜唴瀛樼鐞嗐佹秷鎭礬鐢便佸垎甯冨紡鏈嶅姟鍔ㄦ侊紙閲嶏級閰嶇疆銆佸茍鍙戞墽琛屽拰鍚屾錛岀瓑
絳夈?/p>
銆銆(2) StreamModule
銆銆鍙傝冪綉绔欙細http://www.omnifarious.org/StrMod/
銆銆璁捐鐢ㄤ簬綆鍖栫紪鍐欏垎甯冨紡紼嬪簭鐨勫簱銆傚皾璇曠潃浣垮緱緙栧啓澶勭悊寮傛琛屼負鐨勭▼搴忔洿瀹?br />鏄擄紝鑰屼笉鏄敤鍚屾鐨勫澹沖寘璧峰紓姝ョ殑鏈川銆?/p>
銆銆(3) SimpleSocket
銆銆鍙傝冪綉绔欙細http://home.hetnet.nl/~lcbokkers/simsock.htm
銆銆榪欎釜綾誨簱璁╃紪鍐欏熀浜巗ocket鐨勫鎴?鏈嶅姟鍣ㄧ▼搴忔洿鍔犲鏄撱?/p>
銆銆(4) A Stream Socket API for C++
銆銆鍙傝冪綉绔欙細http://www.pcs.cnu.edu/~dgame/sockets/socketsC++/sockets.h
tml
銆銆鍙堜竴涓Socket鐨勫皝瑁呭簱銆?/p>
銆銆5.5 XML
銆銆(1) Xerces
銆銆鍙傝冪綉绔欙細http://xml.apache.org/xerces-c/
銆銆Xerces-C++ 鏄竴涓潪甯稿仴澹殑XML瑙f瀽鍣紝瀹冩彁渚涗簡楠岃瘉錛屼互鍙奡AX鍜孌OM API
銆俋ML楠岃瘉鍦ㄦ枃妗g被鍨嬪畾涔?Document Type Definition錛孌TD)鏂歸潰鏈夊緢濂界殑鏀寔錛?br />騫朵笖鍦?001騫?2鏈堝鍔犱簡鏀寔W3C XML Schema 鐨勫熀鏈畬鏁寸殑寮鏀炬爣鍑嗐?/p>
銆銆(2) XMLBooster
銆銆鍙傝冪綉绔欙細http://www.xmlbooster.com/
銆銆榪欎釜搴撻氳繃浜х敓鐗瑰埗鐨刾arser鐨勫姙娉曟瀬澶х殑鎻愰珮浜哫ML瑙f瀽鐨勯熷害錛屽茍涓旇兘澶熶駭
鐢熺浉搴旂殑GUI紼嬪簭鏉ヤ慨鏀硅繖涓猵arser銆傚湪DOM鍜孲AX涓ゅぇ涓繪祦XML瑙f瀽鍔炴硶涔嬪鎻愪緵浜?br />鍙﹀涓涓彲琛岀殑瑙e喅鏂規銆?/p>
銆銆(3) Pull Parser
銆銆鍙傝冪綉绔欙細http://www.extreme.indiana.edu/xgws/xsoap/xpp/
銆銆榪欎釜搴撻噰鐢╬ull鏂規硶鐨刾arser銆傚湪姣忎釜SAX鐨刾arser搴曞眰閮芥湁涓涓猵ull鐨刾arse
r錛岃繖涓獂pp鎶婅繖灞傛毚闇插嚭鏉ョ洿鎺ョ粰澶у浣跨敤銆傚湪瑕佸厖鍒嗚冭檻閫熷害鐨勬椂鍊欏煎緱灝濊瘯銆?/p>
銆銆(4) Xalan
銆銆鍙傝冪綉绔欙細http://xml.apache.org/xalan-c/
銆銆Xalan鏄竴涓敤浜庢妸XML鏂囨。杞崲涓篐TML錛岀函鏂囨湰鎴栬呭叾浠朮ML綾誨瀷鏂囨。鐨刋SLT澶?br />鐞嗗櫒銆?/p>
銆銆(5) CMarkup
銆銆鍙傝冪綉绔欙細http://www.firstobject.com/xml.htm
銆銆榪欐槸涓縐嶄嬌鐢‥DOM鐨刋ML瑙f瀽鍣ㄣ傚湪寰堝鎬濊礬涓婇潰闈炲父鐏墊椿瀹炵敤銆傚煎緱澶у鍦―
OM鍜孲AX涔嬪瀵繪眰涓鐐圭伒鎰熴?/p>
銆銆(6) libxml++
銆銆http://libxmlplusplus.sourceforge.net/
銆銆libxml++鏄钁楀悕鐨刲ibxml XML瑙f瀽鍣ㄧ殑C++灝佽鐗堟湰
銆銆5.6 縐戝璁$畻
銆銆(1) Blitz++
銆銆鍙傝冪綉绔欙細http://www.oonumerics.org/blitz/
銆銆Blitz++ 鏄竴涓珮鏁堢巼鐨勬暟鍊艱綆楀嚱鏁板簱錛屽畠鐨勮璁$洰鐨勬槸甯屾湜寤虹珛涓濂楁棦鍏?br />鍍廋++ 涓鏍鋒柟渚匡紝鍚屾椂鍙堟瘮Fortran閫熷害鏇村揩鐨勬暟鍊艱綆楃幆澧冦傞氬父錛岀敤C++鎵鍐欏嚭
鐨勬暟鍊肩▼搴忥紝姣?Fortran鎱?0%宸﹀彸錛屽洜姝litz++姝f槸瑕佹敼鎺夎繖涓己鐐廣傛柟娉曟槸鍒?br />鐢–++鐨則emplate鎶鏈紝紼嬪簭鎵ц鐢氳嚦鍙互姣擣ortran鏇村揩銆侭litz++鐩墠浠嶅湪鍙戝睍涓?br />錛屽浜庡父瑙佺殑SVD錛孎FTs錛孮MRES絳夊父瑙佺殑綰挎т唬鏁版柟娉曞茍涓嶆彁渚涳紝涓嶈繃浣跨敤鑰呭彲浠?br />寰堝鏄撳湴鍒╃敤Blitz++鎵鎻愪緵鐨勫嚱鏁版潵鏋勫緩銆?/p>
銆銆(2) POOMA
銆銆鍙傝冪綉绔欙細http://www.codesourcery.com/pooma/pooma
銆銆POOMA鏄竴涓厤璐圭殑楂樻ц兘鐨凜++搴擄紝鐢ㄤ簬澶勭悊騫惰寮忕瀛﹁綆椼侾OOMA鐨勯潰鍚戝
璞¤璁℃柟渚夸簡蹇熺殑紼嬪簭寮鍙戯紝瀵瑰茍琛屾満鍣ㄨ繘琛屼簡浼樺寲浠ヨ揪鍒版渶楂樼殑鏁堢巼錛屾柟渚垮湪
宸ヤ笟鍜岀爺絀剁幆澧冧腑浣跨敤銆?/p>
銆銆(3) MTL
銆銆鍙傝冪綉绔欙細http://www.osl.iu.edu/research/mtl/
銆銆Matrix Template Library(MTL)鏄竴涓珮鎬ц兘鐨勬硾鍨嬬粍浠跺簱錛屾彁渚涗簡鍚勭鏍煎紡
鐭╅樀鐨勫ぇ閲忕嚎鎬т唬鏁版柟闈㈢殑鍔熻兘銆傚湪鏌愪簺搴旂敤浣跨敤楂樻ц兘緙栬瘧鍣ㄧ殑鎯呭喌涓嬶紝姣斿In
tel鐨勭紪璇戝櫒錛屼粠浜х敓鐨勬眹緙栦唬鐮佸彲浠ョ湅鍑哄叾涓庢墜鍐欏嚑涔庢病鏈変袱鏍風殑鏁堣兘銆?/p>
銆銆(4) CGAL
銆銆鍙傝冪綉绔欙細www.cgal.org
銆銆Computational Geometry Algorithms Library鐨勭洰鐨勬槸鎶婂湪璁$畻鍑犱綍鏂歸潰鐨勫ぇ
閮ㄥ垎閲嶈鐨勮В鍐蟲柟妗堝拰鏂規硶浠++搴撶殑褰㈠紡鎻愪緵緇欏伐涓氬拰瀛︽湳鐣岀殑鐢ㄦ埛銆?/p>
銆銆5.7 娓告垙寮鍙?/p>
銆銆(1) Audio/Video 3D C++ Programming Library
銆銆鍙傝冪綉绔欙細http://www.galacticasoftware.com/products/av/
銆銆***3D鏄竴涓法騫沖彴錛岄珮鎬ц兘鐨凜++搴撱備富瑕佺殑鐗規ф槸鎻愪緵3D鍥懼艦錛屽0鏁堟敮鎸侊紙S
B,浠ュ強S3M錛夛紝鎺у埗鎺ュ彛錛堥敭鐩橈紝榧犳爣鍜岄仴鎰燂級錛孹MS銆?/p>
銆銆(2) KlayGE
銆銆鍙傝冪綉绔欙細http://home.g365.net/enginedev/
銆銆鍥藉唴娓告垙寮鍙戦珮鎵嬭嚜宸辯敤C++寮鍙戠殑娓告垙寮曟搸銆侹layGE鏄竴涓紑鏀炬簮浠g爜銆佽法騫?br />鍙扮殑娓告垙寮曟搸錛屽茍浣跨敤Python浣滆剼鏈璦銆侹layGE鍦↙GPL鍗忚涓嬪彂琛屻傛劅璋㈤練鏁忔晱
鍏堢敓涓轟腑鍥芥父鎴忓紑鍙戜簨涓氭墍鍋氬嚭鐨勮礎鐚?/p>
銆銆(3) OGRE
銆銆鍙傝冪綉绔欙細http://www.ogre3d.org
銆銆OGRE錛堥潰鍚戝璞$殑鍥懼艦娓叉煋寮曟搸錛夋槸鐢–++寮鍙戠殑錛屼嬌鐢ㄧ伒媧葷殑闈㈠悜瀵硅薄3D寮曟搸
銆傚畠鐨勭洰鐨勬槸璁╁紑鍙戣呰兘鏇存柟渚垮拰鐩存帴鍦板紑鍙戝熀浜?D紜歡璁懼鐨勫簲鐢ㄧ▼搴忔垨娓告垙銆?br />寮曟搸涓殑綾誨簱瀵規洿搴曞眰鐨勭郴緇熷簱錛堝錛欴irect3D鍜孫penGL錛夌殑鍏ㄩ儴浣跨敤緇嗚妭榪涜浜?br />鎶借薄錛屽茍鎻愪緵浜嗗熀浜庣幇瀹炰笘鐣屽璞$殑鎺ュ彛鍜屽叾瀹冪被銆?/p>
銆銆5.8 綰跨▼
銆銆(1) C++ Threads
銆銆鍙傝冪綉绔欙細http://threads.sourceforge.net/
銆銆榪欎釜搴撶殑鐩爣鏄粰紼嬪簭鍛樻彁渚涙槗浜庝嬌鐢ㄧ殑綾伙紝榪欎簺綾昏緇ф壙浠ユ彁渚涘湪Linux鐜
涓緢闅劇湅鍒扮殑澶ч噺鐨勭嚎紼嬫柟闈㈢殑鍔熻兘銆?/p>
銆銆(2) ZThreads
銆銆鍙傝冪綉绔欙細http://zthread.sourceforge.net/
銆銆涓涓厛榪涚殑闈㈠悜瀵硅薄錛岃法騫沖彴鐨凜++綰跨▼鍜屽悓姝ュ簱銆?/p>
銆銆5.9 搴忓垪鍖?/p>
銆銆(1) s11n
銆銆鍙傝冪綉绔欙細http://s11n.net/
銆銆涓涓熀浜嶴TL鐨凜++搴擄紝鐢ㄤ簬搴忓垪鍖朠OD錛孲TL瀹瑰櫒浠ュ強鐢ㄦ埛瀹氫箟鐨勭被鍨嬨?/p>
銆銆(2) Simple XML Persistence Library
銆銆鍙傝冪綉绔欙細http://sxp.sourceforge.net/
銆銆榪欐槸涓涓妸瀵硅薄搴忓垪鍖栦負XML鐨勮交閲忕駭鐨凜++搴撱?/p>
銆銆5.10 瀛楃涓?/p>
銆銆(1) C++ Str Library
銆銆鍙傝冪綉绔欙細http://www.utilitycode.com/str/
銆銆鎿嶄綔瀛楃涓插拰瀛楃鐨勫簱錛屾敮鎸乄indows鍜屾敮鎸乬cc鐨勫縐嶅鉤鍙般傛彁渚涢珮搴︿紭鍖栫殑
浠g爜錛屽茍涓旀敮鎸佸綰跨▼鐜鍜孶nicode錛屽悓鏃惰繕鏈夋鍒欒〃杈懼紡鐨勬敮鎸併?/p>
銆銆(2) Common Text Transformation Library
銆銆鍙傝冪綉绔欙細http://cttl.sourceforge.net/
銆銆榪欐槸涓涓В鏋愬拰淇敼STL瀛楃涓茬殑搴撱侰TTL substring綾誨彲浠ョ敤鏉ユ瘮杈冿紝鎻掑叆錛?br />鏇挎崲浠ュ強鐢‥BNF鐨勮娉曡繘琛岃В鏋愩?/p>
銆銆(3) GRETA
銆銆鍙傝冪綉绔欙細http://research.microsoft.com/projects/greta/
銆銆榪欐槸鐢卞井杞爺絀墮櫌鐨勭爺絀朵漢鍛樺紑鍙戠殑澶勭悊姝e垯琛ㄨ揪寮忕殑搴撱傚湪灝忓瀷鍖歸厤鐨勬儏鍐?br />涓嬫湁闈炲父浼樼鐨勮〃鐜般?/p>
銆銆5.11 緇煎悎
銆銆(1) P::Classes
銆銆鍙傝冪綉绔欙細http://pclasses.com/
銆銆涓涓珮搴﹀彲縐繪鐨凜++搴旂敤紼嬪簭妗嗘灦銆傚綋鍓嶅叧娉ㄧ被鍨嬪拰綰跨▼瀹夊叏鐨剆ignal/slot
鏈哄埗錛宨/o緋葷粺鍖呮嫭鍩轟簬鎻掍歡鐨勭綉緇滃崗璁忔槑鐨刬/o鏋舵瀯錛屽熀浜庢彃浠剁殑搴旂敤紼嬪簭娑堟伅
鏃ュ織妗嗘灦錛岃闂畇ql鏁版嵁搴撶殑綾葷瓑絳夈?/p>
銆銆(2) ACDK - Artefaktur Component Development Kit
銆銆鍙傝冪綉绔欙細http://acdk.sourceforge.net/
銆銆榪欐槸涓涓鉤鍙版棤鍏崇殑C++緇勪歡妗嗘灦錛岀被浼間簬Java鎴栬?NET涓殑妗嗘灦錛堝弽灝勬満鍒訛紝
綰跨▼錛孶nicode錛屽簾鏂欐敹闆嗭紝I/O錛岀綉緇滐紝瀹炵敤宸ュ叿錛孹ML錛岀瓑絳夛級錛屼互鍙婂Java, P
erl, Python, TCL, Lisp, COM 鍜?CORBA鐨勯泦鎴愩?/p>
銆銆(3) dlib C++ library
銆銆鍙傝冪綉绔欙細http://www.cis.ohio-state.edu/~kingd/dlib/
銆銆鍚勭鍚勬牱鐨勭被鐨勪竴涓患鍚堛傚ぇ鏁存暟錛孲ocket錛岀嚎紼嬶紝GUI錛屽鍣ㄧ被,浠ュ強嫻忚鐩?br />褰曠殑API絳夌瓑銆?/p>
銆銆(4) Chilkat C++ Libraries
銆銆鍙傝冪綉绔欙細http://www.chilkatsoft.com/cpp_libraries.asp
銆銆榪欐槸鎻愪緵zip錛宔-mail錛岀紪鐮侊紝S/MIME錛孹ML絳夋柟闈㈢殑搴撱?/p>
銆銆(5) C++ Portable Types Library (PTypes)
銆銆鍙傝冪綉绔欙細http://www.melikyan.com/ptypes/
銆銆榪欐槸STL鐨勬瘮杈冪畝鍗曠殑鏇夸唬鍝侊紝浠ュ強鍙Щ妞嶇殑澶氱嚎紼嬪拰緗戠粶搴撱?/p>
銆銆(6) LFC
銆銆鍙傝冪綉绔欙細http://lfc.sourceforge.net/
銆銆鍝︼紝榪欏張鏄竴涓皾璇曟彁渚涗竴鍒囩殑C++搴?/p>
銆銆5.12 鍏朵粬搴?/p>
銆銆(1) Loki
銆銆鍙傝冪綉绔欙細http://www.moderncppdesign.com/
銆銆鍝︼紝浣犲彲鑳芥姳鎬ㄦ垜鏃╄鍜孊oost涓璧蜂粙緇嶅畠錛屼竴涓疄楠屾ц川鐨勫簱銆備綔鑰呭湪loki涓?br />鎶奀++妯℃澘鐨勫姛鑳藉彂鎸ュ埌浜嗘瀬鑷淬傚茍涓斿皾璇曟妸綾諱技璁捐妯″紡榪欐牱鎬濇兂灞傞潰鐨勪笢瑗塊氳繃
搴撴潵鎻愪緵銆傚悓鏃惰繕鎻愪緵浜嗘櫤鑳芥寚閽堣繖鏍鋒瘮杈冨疄鐢ㄧ殑鍔熻兘銆?/p>
銆銆(2) ATL
銆銆ATL(Active Template Library)
銆銆鏄竴緇勫皬宸с侀珮鏁堛佺伒媧葷殑綾伙紝榪欎簺綾諱負鍒涘緩鍙簰鎿嶄綔鐨凜OM緇勪歡鎻愪緵浜嗗熀鏈殑
璁炬柦銆?/p>
銆銆(3) FC++: The Functional C++ Library
銆銆榪欎釜搴撴彁渚涗簡涓浜涘嚱鏁板紡璇█涓墠鏈夌殑瑕佺礌銆傚睘浜庣敤搴撴潵鎵╁厖璇█鐨勪竴涓唬琛?br />浣溿傚鏋滄兂瑕佸湪OOP涔嬪瀵繪壘鍙︿竴鍒嗙殑涔愯叮錛屽彲浠ュ幓鐪嬬湅鍑芥暟寮忕▼搴忚璁$殑涓栫晫銆傚ぇ
甯圥eter Norvig鍦?鈥淭each Yourself Programming in Ten Years鈥濅竴鏂囦腑灝卞皢鍑?br />鏁板紡璇█鍒椾負鑷沖皯搴斿綋瀛︿範鐨?綾葷紪紼嬭璦涔嬩竴銆?/p>
銆銆(4) FACT!
銆銆鍙傝冪綉绔欙細http://www.kfa-juelich.de/zam/FACT/start/index.html
銆銆鍙﹀涓涓疄鐜板嚱鏁板紡璇█鐗規х殑搴?/p>
銆銆(5) Crypto++
銆銆鎻愪緵澶勭悊瀵嗙爜錛屾秷鎭獙璇侊紝鍗曞悜hash錛屽叕鍖欏姞瀵嗙郴緇熺瓑鍔熻兘鐨勫厤璐瑰簱銆?/p>
銆銆榪樻湁寰堝闈炲父嬋鍔ㄤ漢蹇冩垨鑰呮槸鏋佸叾瀹炵敤鐨凜++搴擄紝闄愪簬鎴戜滑鐨勬按騫充互鍙婃枃绔犵殑綃?br />騫呬笉鑳藉寘鎷繘鏉ャ傚湪瀵逛簬榪欎簺宸茬粡鍖呭惈榪戞潵鐨勫簱鐨勪粙緇嶄腑錛岀敱浜庡茍涓嶆槸姣忎竴涓垜浠?br />閮戒嬌鐢ㄨ繃錛屾墍浠ラ毦鍏嶆湁鍋忛涔嬪錛岃璇昏呰璋呫?/p>
------------------------------------------------------------------------
--------
銆銆6錛屼功綾?/p>
銆銆浠ュ墠鐔婅妭鍏堢敓鏇炬挵鏂囪瘎璁虹浉瀵逛簬Java紼嬪簭璁捐璇█錛孋++鐨勫ソ涔﹀濡傜墰姣涖傝崳鑰
鍏堢敓鍦ㄣ婄▼搴忓憳銆嬫潅蹇椾笂鎾版枃銆奀++紼嬪簭璁捐涔嬪洓涔︿簲緇忋嬩篃灝嗘湰棰嗗煙鍐呭嚑涔庢墍鏈夌殑
緇忓吀涔︾睄浣滀簡鍏ㄩ潰鐨勪粙緇?浠諱綍鍏充簬涔︾殑璇勮姝ゆ椂鐪嬫潵渚挎槸寰堝浣欑殑浜嗐備釜浜烘祬瑙侊紝
闄ら潪浣犳墦綆椾互C++浣滀負鍞竴鍏磋叮鎴栬呯敓瀛樹箣鏈紝涓鑸鑰呯‘瀹炴病鏈夎凍澶熺殑鏃墮棿鍜屽繀瑕?br />灝?0浣欐湰涔︾睄鍏ㄩ儴闃呰銆傛洿鏈夊弬鑰冧環鍊肩殑鏄崳鑰鍏堢敓鐨勫彟涓綃囨枃绔狅細銆婅嚦灝戝簲璇ラ槄
璇葷殑涔濇湰C++钁椾綔銆嬶紝鍙互浠庝笅闈㈢殑鍦板潃嫻忚鍒版鏂囷細
銆銆http://www.royaloo.com/articles/articles_2003/9CppBooks.htm
銆銆涓嬮潰鍑犳湰涔﹀浜庤蛋鍦–++鍒濆涔嬭礬涓婄殑璇昏呮槸鎴戜滑鏈鎰挎剰鎺ㄨ崘緇欏ぇ瀹剁殑錛?/p>
銆銆(1) 銆奀++ Primer銆?/p>
銆銆鍝︼紝涔熻浣犱細鎶辨ㄦ垜浠負浠涔堜笉鍏堜粙緇峊CPL,浣嗗浜庤蛋鍦ㄥ涔犱箣璺笂鐨勫叆闂ㄨ咃紝
鏈功鍐呭鏇翠負鍏ㄩ潰錛屾洿涓鴻緇嗘槗鎳傦紝鎴戜滑縐板畠涓衡淐++鐨勮秴綰у疂鍏糕濆茍涓嶈繃鍒嗐傞厤鏈?br />涓鏈笉閿欑殑涔犻瑙g瓟銆奀++ Primer Answer Book銆嬪彲浠ヨ緟鍔╀綘鐨勫涔犱箣璺?/p>
銆銆(2) 銆奅ssential C++銆?/p>
銆銆濡傛灉璇淬奀++ Primer銆嬫槸C++棰嗗煙鐨勮秴綰у疂鍏革紝閭d箞姝や功浣滀負鎺屾彙C++鐨勫ぇ灞瑙?br />褰撲箣鏃犳劎銆傛濡傘?NET澶у眬瑙傘嬩竴涔﹁兘澶熻璇昏呭叏鎻?NET錛屾湰涔﹁榪頒簡C++涓渶鏍稿績
鐨勫叏閮ㄤ富棰樸備功铏戒笉鍘氾紝鍐呭綺劇偧錛屼笉澶變負銆奀++ Primer銆嬭鑰呰尪浣欓キ鍚庣殑涓婚鍥?br />欏句箣浣溿?/p>
銆銆(3) 銆奣he C++ Programming Language銆?/p>
銆銆Bjarne涓轟綘甯︽潵鐨凜++鏁欑▼錛岀湡姝h兘澶熷憡璇変綘鎬庝箞鐢ㄦ墠鍙湡姝g殑C++鐨勫敮涓涓鏈?br />涔︺傝櫧鐒跺鍚屸滄煇鏌愮▼搴忚璁¤璦鈥濊繖鏍風殑涔︾睄浼氱粰澶у涓涓唴瀹瑰叏鎻斤紝鍏ラ棬鍒扮簿
閫氱殑鎰熻錛屼絾鏈功紜疄涓嶅お閫傚悎鍒濆鑰呴槄璇匯傚鏋滀綘鑷涓烘槸涓鍚嶅緢鏈夌粡楠岀殑C++紼?br />搴忓憳錛岄偅鑷沖皯涔熻鍙嶅鍜鍤糂jarne鍏堢敓鎵寮鴻皟鐨勮嫢騫插唴瀹廣?/p>
銆銆(4) 銆奅ffective C++銆嬶紝銆奙ore Effective C++銆?/p>
銆銆鏄殑錛屾濡備竴浜汣++鐖卞ソ鑰呯粡甯鎬互璇昏繃涓庢病鏈夎榪囦笂榪頒袱鏈綔鍝佹潵鍖哄垎浣犳槸鍚︽槸
C++楂樻墜銆傛垜浠篃鏋佸姏鎺ㄥ磭榪欎袱鏈憲浣溿傚湪鍚勭浠嬬粛C++涓撳緇忛獙鐨勪功綾嶉噷闈紝榪欎袱
鏈槸鏈璐磋繎璇█鏈川錛岀湅鍚庢渶鑳藉鏈夎劚鑳庢崲楠ㄦ劅瑙夌殑涔︼紝璇繪涔︿綘闇姣忔棩涓夌渷姹濊韓
銆?/p>
銆銆鎶鏈功綾嶄粊鑰呰浠侊紝榪囧鐨勮瘎璁哄弽鏃犲お澶氭剰涔夛紝鐢辮鑰呭枩濂介夋嫨鏈閫傚悎鑷繁鐨?br />涔︽柟涓轟笂絳栥?/p>
------------------------------------------------------------------------
--------
銆銆7錛岃祫婧愮綉绔?/p>
銆銆姝e鎴戜滑鍙互閫氳繃璁$畻鏈哄巻鍙蹭笂鐨勯噸瑕佷漢鐗╀簡瑙h綆楁満鍙茬殑鍙戝睍錛孋++鐩稿叧浜虹墿
鐨勭綉绔欎篃鍙互浣挎垜浠緱鍒版渶鏈変環鍊肩殑鍙傝冧笌鍊熼壌錛屼笅闈㈢殑浜虹墿鎴戜滑璁や負娌℃湁浠嬬粛鐨?br />蹇呰錛屽彧鍥犱笅闈㈢殑浜虹墿鍦–++棰嗗煙鐨勫湴浣嶄紬鎵鍛ㄧ煡錛屾垜浠彧灝嗙浉鍏崇殑璧勬簮榪涜緗楀垪浠?br />渚涜鑰呭涔狅紝浠栦滑鏈夌殑宸ヤ綔浜庤礉灝斿疄楠屽錛屾湁鐨勫伐浣滀簬鐭ュ悕緙栬瘧鍣ㄥ巶鍟嗭紝鏈夌殑鍦ㄤ笉
鏂帹榪涜璦鐨勬爣鍑嗗寲錛屾湁鐨勪負璇昏呮挵鍐欎簡澶氶儴鍗冨彜濂囦綔鈥︹?br />銆銆(1) Bjarne Stroustrup
銆銆http://www.research.att.com/~bs/
銆銆(2) Stanley B. Lippman
銆銆http://blogs.msdn.com/slippman/
銆銆涓枃鐗?http://www.zengyihome.net/slippman/index.htm
銆銆(3) Scott Meyers
銆銆http://www.aristeia.com/
銆銆(4) David Musser
銆銆http://www.cs.rpi.edu/~musser/
銆銆(5) Bruce Eckel
銆銆http://www.bruceeckel.com
銆銆(6) Nicolai M. Josuttis
銆銆http://www.josuttis.com/
銆銆(7) Herb Sutter
銆銆http://www.gotw.ca/
銆銆(8) Andrei Alexandrescu
銆銆http://www.coderncppdesign.com/
銆銆(9) 渚嵎鍏堢敓
銆銆http://www.jjhou.com
銆銆(10) 瀛熷博鍏堢敓
銆銆鍏堢敓綣佸繖浜庡伐浣滐紝鐥磋糠浜庢妧鏈紝鏆傛棤涓漢涓婚〉錛屽叧浜庡厛鐢熺殑浣滃搧鍙互閫氳繃CSDN
鐨勪笓鏍忓拰渚厛鐢熺殑涓婚〉璁塊棶鍒般?/p>
銆銆(11) 鑽h鍏堢敓
銆銆http://www.royaloo.com/
銆銆(12) 娼樼埍姘戝厛鐢?br />銆銆http://www.icst.pku.edu.cn/panaimin/pam_homepage.htm
銆銆闄や簡涓婅堪澶у笀鐨勪富欏靛錛屼互涓嬬殑緇煎悎綾籆++瀛︿範鍙傝冪珯鐐規槸鎴戜滑闈炲父鎰挎剰鍚戝ぇ瀹?br />鎺ㄨ崘鐨勶細
銆銆(1) CodeProject
銆銆http://www.codeproject.com
銆銆(2) CodeGuru
銆銆http://www.codeguru.com
銆銆(3) Dr. Dobb's Journal
銆銆http://www.ddj.com
銆銆(4) C/C++ Users Journal
銆銆http://www.cuj.com
銆銆(5) C緇磋鐐?br />銆銆http://www.c-view.org
銆銆(6) allaboutprogram
銆銆http://www.allaboutprogram.com
銆銆鍏朵粬璧勬枡
銆銆(1) ISO IEC JTC1/SC22/WG21 - C++錛氭爣鍑咰++鐨勬潈濞佸弬鑰?br />銆銆http://anubis.dkuug.dk/jtc1/sc22/wg21/
銆銆(2) C++ FAQ LITE 鈥?Frequently Asked Questions: 鏈涓哄叏闈㈢殑C++FAQ
銆銆http://www.sunistudio.com/cppfaq/index.html
銆銆C/C++ 鏂伴椈緇勶細
銆銆浣犱笉濡ㄥ皾璇曚粠榪欓噷鎻愰棶鍜屽洖絳旈棶棰橈紝寰堝涓嶉敊鐨凲&A璧勬簮......
銆銆(1) .alt.comp.lang.learn.c-c++
銆銆榪欎釜綆鍗曚簺錛屽鏋滀綘鍜屾垜涓鏍鋒槸涓彍楦?/p>
銆銆(2) .comp.lang.c++.moderated
聽聽聽 鍡紝榪欎釜鏄劇劧姘村鉤楂樹竴浜?/p>
銆銆(3) .comp.std.c++
銆銆濡傛灉浣犻渶瑕佽璁烘爣鍑咰++鐩稿叧璇濋鐨勮瘽
------------------------------------------------------------------------
--------
銆銆8錛屼笉寰椾笉鍐欑殑緇撴潫璇?/p>
銆銆緇撴潫鐨勬椂鍊欎篃鏄葷粨鐜扮姸錛屽睍鏈涙湭鏉ョ殑鏃跺欍傝櫧鐒禖++浠庤劚鑳庝簬C寮濮嬶紝涓璺壈
闅懼潕鍧風殑璧拌繃鏉ワ紝浣嗘槸鏃犺濡備綍C++宸茬粡鍙栧緱浜嗗伐涓氬熀紜鐨勫湴浣嶃傛枃绔犲垪涓劇殑澶ч噺鐩稿叧
璧勬簮灝辨槸鏈濂界殑璇佹槑錛岃屼笟鐣岀殑澶ч噺鐢–++鍐欐垚鐨勪駭鍝佷唬鐮佷互鍙婂ぇ閲忕殑C++鑱屼笟宸ョ▼
甯堝垯鏄渶鐩存帴鐨勮瘉鏄庛傚悓鏃訛紝鎴戜滑鍙互鐪嬪埌鍚勪釜楂樻牎鐨勮綆楁満涓撲笟閮藉紑璁炬湁C++榪欓棬
璇劇▼錛岀綉緇滀笂瀵逛簬C++鐨勫涔犺璁轟篃浠庢潵閮芥病鏈夊仠榪囥備絾鏄紝鍦↗ava鍜?NET涓ゅぇ浼佷笟
寮鍙戝鉤鍙扮殑鍥存敾涓嬶紝緇欎漢鐨勬劅瑙夋槸C++瓚婃潵瓚娾滀笉琛屸濅簡銆?/p>
銆銆C++鍦ㄩ潰鍚戜紒涓氱殑杞歡寮鍙戜腑錛屽湪寮鍙戜究鎹鋒х瓑鏂歸潰鐨勭‘瑕佹瘮Java鍜孋#宸緢澶氾紝
鍏朵腑涓涓棶棰樻槸C++璇█鏈韓姣旇緝澶嶆潅錛屽涔犳洸綰挎瘮杈冮櫋宄紝鍙﹀涓涓棶棰樻槸C++鏍?br />鍑嗗寲鐨勬椂闂村お闀匡紝涓уけ浜嗗緢澶氱殑澹ぇ鏈轟細錛岃楄垂浜嗗緢澶氱簿鍔涘湪鍘傚晢鐨勪箣闂寸殑鏂椾簤涓?br />錛岃孋++鐨勬爣鍑嗗簱紱諱竴涓畬鍠勭殑紼嬪簭寮鍙戞鏋惰繕緙哄皯澶澶鐨勫唴瀹癸紝鍚勪釜絎笁鏂圭殑
綾誨簱鍜屾鏋跺張鍦ㄤ竴鑷存у拰瀹屾暣鎬т笂娌℃硶鍜岄殢騫沖彴鎻愪緵鐨勬鏋剁浉鎻愬茍璁恒傞毦閬揅++鐪熺殑
瑕侀鍑哄巻鍙茶垶鍙頒簡錛?/p>
銆銆浠嶤++鐩墠鐨勬椿璺冪▼搴︼紝浠ュ強搴旂敤鐜扮姸鏉ヨ鏄畬鍏ㄨ兘澶熻偗瀹欳++浠嶇劧鏄蔣浠跺伐涓?br />鐨勫熀紜錛屼篃涓嶄細閫鍑哄巻鍙茶垶鍙扮殑銆傚彟澶栦粠Boost錛孡oki榪欎簺搴撲腑鎴戜滑涔熻兘澶熺湅鍒癈++
鐨勫彂灞曢潪甯告椿璺冿紝瀵逛簬鏂版妧鏈柊鎬濈淮闈炲父嬋榪涳紝C++浠嶇劧騫挎硾鍙楀埌鍏蟲敞銆備粠ACE鍦ㄩ珮
鎬ц兘閫氫俊棰嗗煙鐨勫簲鐢紝浠ュ強MTL榪欐牱鐨勫簱鍦ㄦ暟鍊艱綆楅鍩熺殑鍑鴻壊琛ㄧ幇錛屾垜浠彲浠ョ湅鍒?br />C++鍦ㄩ珮鎬ц兘搴旂敤鍦哄悎涓嬬殑涓嶅彲鏇夸唬鐨勪綔鐢紝鑰屽祵鍏ュ紡緋葷粺榪欐牱鐨勫唴瀛樺彈闄愬紑鍙戝鉤鍙?br />錛屾瘮濡係ymbian OS涓婏紝C++宸茬粡鍙戞尌鐫騫朵笖灝嗗彂鎸ユ洿澶х殑浣滅敤銆傚彲浠ラ瑙佺殑鏄互鍚庣殑
杞歡鏃犺涓婂眰鐨勫簲鐢ㄦ庝箞鍙橈紝瀹冪殑搴曞眰鏍稿績閮戒細鏄敱C/C++榪欐牱鐨勭郴緇熺駭杞歡緙栧啓鐨?br />錛屾瘮濡侸ava铏氭嫙鏈猴紝.NET Framwork銆傚洜涓哄彧鏈夎繖鏍風殑緋葷粺綰ц蔣浠舵墠鑳藉畬鍏ㄥ交搴曠殑鍙?br />鎸ユ満鍣ㄧ殑鍔熻兘銆?/p>
銆銆闇瑕佺湅鍒扮殑鏄袱涓秼鍔匡紝涓涓秼鍔挎槸C++鍙樺緱鏇村姞澶嶆潅錛屾洿鍔犲闄㈡淳錛岄氳繃妯℃澘
絳夋湁娼滃姏鐨勮娉曞洜绱犳瀯閫犺秺鏉ヨ秺綺懼閥鐨勫簱鎴愪負浜嗙幇浠++鐨勭儹鐐癸紝铏界劧鍦ㄥ埄鐢ㄥ簱瀹炵幇
鏂扮殑緙栫▼鑼冨紡錛屼箖鑷寵璁℃ā寮忕瓑鏂歸潰寰堟湁寮鍒涙剰涔夛紝涔熺‘瀹炰駭鐢熶簡涓浜涜兘澶熶究鎹峰紑
鍙戠殑宸ュ叿錛屼絾鏄洿澶氱殑鏄妸C++鍙樺緱鏇村姞寮哄ぇ錛屾洿鍔犲鏉傦紝涔熸洿鍔犻毦鎳傦紝浼間箮涔熸洿鍔?br />瀛﹂櫌媧撅紝涓嶅緱涓嶈瀹冩鍦ㄥ悜杈圭紭鍖栭亾璺彂灞曘傚彟涓涓秼鍔挎槸C++鍦ㄤ富嫻佺殑浼佷笟搴旂敤寮
鍙戜腑宸茬粡閫愭笎閫鍑轟簡錛孍RP榪欐牱鐨勪紒涓氳蔣浠跺紑鍙戜腑鍩烘湰涓婁笉浼氳冭檻C++錛岄櫎闈為渶瑕佽?br />铏戞ц兘鎴栬呭拰閬楃暀浠g爜鐨勯泦鎴愯繖浜涘洜绱犮侰++閫瀹堝埌緋葷粺綰у埆璇█錛屾垚涓鴻蔣浠跺伐涓氱殑
鍩虹鏄ぇ鍔挎墍瓚嬨傜劧鑰屽弽鎬濅竴涓嬶紝鐪熺殑鏄瀹堜箞錛熻嚜浠嶴TL鍑虹幇錛屾棤鏁扮殑浜洪璧蜂簯娑?br />鐨勫紑濮嬫敮鎸丆++,浠栦滑鐙傚懠鈥滄垜鐪嬪埌娣卞娑堝け浜嗭紝鐩爣杞歡宸ョ▼鐨勫嚭鐜般傛垜鐪嬪埌浜嗗彲
緇存姢鐨勪唬鐮併傗濇槸鐨勶紝STL鍦ㄥ彲緇存姢鎬т笅鍋氬緱濡傛鍑鴻壊銆備絾鏄張鎬庢牱鍛紵STL涓篊++閾?br />騫充簡鐜頒唬杞歡宸ョ▼鐨勯亾璺紝鑰屽湪涓婂眰搴旂敤紼嬪簭杞歡寮鍙戦鍩熻繖鍧楀満鍦版棭涓嶅崟鐙睘浜?br />C++,寰堝紼嬪簭璁捐璇█閮藉仛寰楀緢鍑鴻壊錛岀柉鐙傜殑鏀寔鑰呬細姣笉鐘硅鮑鍦拌鎴戜滑搴斿綋鏀寔
C++,鍥犱負瀹冩槸涓栫晫涓婃渶媯掔殑璇█銆傝屽潶鐜囧湴璇達紝浣犵殑鑵版潌鐪熺殑閭d箞紜箞錛熶篃璁稿彧鏄?br />鍦ㄩ冮伩涓浜涗簨瀹炪侰++鏄紭縐鐨勶紝榪欎笉鍙惁璁わ紝STL鐨勫嚭鐜拌C++涓搴﹁蛋涓婁簡鏈杈夌厡鐨?br />鏃跺埢錛岀劧鑰岀幇鍦ㄧ湅鏉モ︹︽垜鐨勪竴浣嶆仼甯堟浘璦錛氱湡姝h兘澶熷皢STL搴旂敤寰楁穻婕撳敖鑷寸殑浜哄緢
淇濆畧鍦拌鍥藉唴涔熶笉瓚呰繃200浜猴紝鎴栬涓嶅姞鍏TL鑳藉浣緾++鍚戠潃瀹冨簲褰撳彂灞曠殑鏂瑰悜鍙戝睍
鐨勬洿濂斤紝鑰岀幇鍦ㄧ湅鏉ワ紝C++涔熷簲褰撳洖棣栧埌鐪熸灞炰簬浠栫殑閭d竴鐗囧湥鍦頒笂鈥︹?/p>