锘??xml version="1.0" encoding="utf-8" standalone="yes"?>1024成人,亚洲日本电影在线,国产亚洲精品久久久久久http://m.shnenglu.com/Lee/category/7130.htmlBeyond C++zh-cnSun, 03 May 2009 15:17:31 GMTSun, 03 May 2009 15:17:31 GMT60C++ 娉ㄥ唽琛ㄦ搷浣滄葷粨http://m.shnenglu.com/Lee/archive/2009/05/03/81775.htmlDavid LeeDavid LeeSun, 03 May 2009 09:30:00 GMThttp://m.shnenglu.com/Lee/archive/2009/05/03/81775.htmlhttp://m.shnenglu.com/Lee/comments/81775.htmlhttp://m.shnenglu.com/Lee/archive/2009/05/03/81775.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/81775.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/81775.html
1銆丷egCloseKey()
銆銆鍘熷瀷錛歊egCloseKey(HKEY hKey)

銆銆瑙i噴錛氬叧闂寚瀹氱殑娉ㄥ唽琛ㄩ敭錛岄噴鏀懼彞鏌勩傚綋瀵逛竴涓垨澶氫釜閿垨鍊兼搷浣滃畬鎴愪互鍚庯紝闇瑕佸叧闂叾閿潵榪涜淇濆瓨鎿嶄綔緇撴灉錛屽叧闂竴涓敭鍚庯紝鍙ユ焺鍙樹負闈炴硶錛屾鏃跺簲閲婃斁鍙ユ焺銆?/div>
2銆丷egCreateKeyEx()
銆銆鍘熷瀷錛歀ONG RegCreateKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD Reserved,
LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes,
PHKEY phkResult, LPDWORD lpdwDisposition );

銆銆瑙i噴錛氭墦寮鎸囧畾鐨勯敭鎴栧瓙閿傚鏋滆鎵撳紑鐨勯敭涓嶅瓨鍦ㄧ殑璇濓紝鏈嚱鏁頒細璇曞浘寤虹珛瀹冦傛彁渚涜鍑芥暟鏄負浜嗗悜鍚庡吋瀹廣傛墍鏈夌殑WIN32搴旂敤紼嬪簭搴斾嬌鐢ㄥ嚱鏁癛egCreateKeyEx錛堬級銆傘鍚勫弬鏁板強榪斿洖鍊肩殑鍚箟濡備笅錛?/div>

路hKey涓轟富閿鹼紝鍙互鍙栦笅闈㈢殑涓浜涙暟鍊鹼細HKEY_CLASSES_ROOT銆丠KEY_CURRENT_CONFIG銆併銆HKEY_CURRENT_USER銆丠KEY_LOCAL_MACHINE銆丠KEY_USER銆丠KEY_PERFORMANCE_DATA(WINNT鎿嶄綔緋葷粺)銆丠KEY_DYN_DATA錛圵IN9X鎿嶄綔緋葷粺錛夛紱
路鍙傛暟lpSubKey涓轟竴涓寚鍚戜互闆剁粨灝劇殑瀛楃涓茬殑鎸囬拡錛屽叾涓寘鍚皢瑕佸垱寤烘垨鎵撳紑鐨勫瓙閿殑鍚嶇О銆傚瓙閿笉鍙互鐢ㄥ弽鏂滅嚎錛圽錛夊紑濮嬨傝鍙傛暟鍙互涓篘ULL錛?br />
路鍙傛暟Reserved涓轟繚鐣欏鹼紝蹇呴』璁劇疆涓?錛?br />
路鍙傛暟lpClass涓轟竴涓寚鍚戝寘鍚敭綾誨瀷鐨勫瓧絎︿覆銆傚鏋滆閿凡緇忓瓨鍦紝鍒欏拷鐣ヨ鍙傛暟錛?br />
路鍙傛暟dwOptions涓烘柊鍒涘緩鐨勯敭璁劇疆涓瀹氱殑灞炴с傚彲浠ュ彇涓嬮潰鐨勪竴浜涙暟鍊鹼細銆銆REG_OPTION_NON_VOLATILE 錛岃〃紺烘柊鍒涘緩鐨勯敭涓轟竴涓潪鐭殏鎬х殑閿紙鏁版嵁淇℃伅淇濆瓨鍦ㄦ枃浠朵腑錛屽綋緋葷粺閲嶆柊鍚姩鏃訛紝鏁版嵁淇℃伅鎭㈠錛夛紱REG_OPTION_VOLATILE錛岃〃紺烘柊鍒涘緩鐨勯敭涓轟竴涓煭鏆傛х殑閿紙鏁版嵁淇℃伅淇濆瓨鍦ㄥ唴瀛樹腑錛夛紝Windows95蹇界暐璇ユ暟鍊鹼紱REG_OPTION_BACKUP_RESTORE 浠呭湪WINNT涓敮鎸侊紝鍙互鎻愪緵浼樺厛綰ф敮鎸侊紱

銆銆路鍙傛暟samDesired鐢ㄦ潵璁劇疆瀵歸敭璁塊棶鐨勬潈闄愶紝鍙互鍙栦笅闈㈢殑涓浜涙暟鍊鹼細KEY_CREATE_LINK錛岃〃紺哄噯璁哥敓鎴愮鍙烽敭錛汯EY_CREATE_SUB_KEY 琛ㄧず鍑嗚鐢熸垚瀛愰敭錛汯EY_ENUMERATE_SUB_KEYS 琛ㄧず鍑嗚鐢熸垚鏋氫婦瀛愰敭錛汯EY_EXECUTE 琛ㄧず鍑嗚榪涜璇繪搷浣滐紱KEY_NOTIFY琛ㄧず鍑嗚鏇存崲閫氬憡錛涖銆KEY_QUERY_VALUE 琛ㄧず鍑嗚鏌ヨ瀛愰敭錛汯EY_ALL_ACCESS 鎻愪緵瀹屽叏璁塊棶錛屾槸涓婇潰鏁板肩殑緇勫悎錛?br />
銆銆KEY_READ 鏄笅闈㈡暟鍊肩殑緇勫悎錛欿EY_QUERY_VALUE銆並EY_ENUMERATE_SUB_KEYS銆並EY_NOTIFY錛涖銆KEY_SET_VALUE 琛ㄧず鍑嗚璁劇疆瀛愰敭鐨勬暟鍊鹼紱KEY_WRITE 鏄笅闈㈡暟鍊肩殑緇勫悎錛欿EY_SET_VALUE銆並EY_CREATE_SUB_KEY錛?br />路鍙傛暟lpSecurityAttributes涓轟竴涓寚鍚慡ECURITY_ATTRIBUTES緇撴瀯鐨勬寚閽堬紝紜畾榪斿洖鐨勫彞鏌勬槸鍚﹁瀛愬鐞嗚繃紼嬬戶鎵褲傚鏋滆鍙傛暟涓篘ULL錛屽垯鍙ユ焺涓嶅彲浠ヨ緇ф壙銆傚湪WINNT涓紝璇ュ弬鏁板彲浠ヤ負鏂板垱寤虹殑閿鍔犲畨鍏ㄧ殑鎻忚堪錛?br />
銆銆路鍙傛暟phkResult涓轟竴涓寚鍚戞柊鍒涘緩鎴栨墦寮鐨勯敭鐨勫彞鏌勭殑鎸囬拡錛?br />
銆銆路鍙傛暟lpdwDispition鎸囨槑閿槸琚垱寤鴻繕鏄鎵撳紑鐨勶紝鍙互鏄笅闈㈢殑涓浜涙暟鍊鹼細銆銆REG_CREATE_NEW_KEY 琛ㄧず閿厛鍓嶄笉瀛樺湪錛岀幇鍦ㄨ鍒涘緩錛汻EG_OPENED_EXISTING_KEY 琛ㄧず閿厛鍓嶅凡瀛樺湪錛岀幇鍦ㄨ鎵撳紑銆?br />
銆銆濡傛灉璇ュ嚱鏁拌皟鐢ㄦ垚鍔燂紝鍒欒繑鍥濫RROR_SUCCESS銆傚惁鍒欙紝榪斿洖鍊間負鏂囦歡WINERROR.h涓畾涔夌殑涓涓潪闆剁殑閿欒浠g爜錛屽彲浠ラ氳繃璁劇疆FORMAT_MESSAGE_FROM_SYSTEM鏍囪瘑璋冪敤FormatMessage錛堬級鍑芥暟鏉ヨ幏鍙栦竴涓閿欒鐨勬諱綋鎻忚堪銆?/div>
3銆丷egOpenKeyEx錛堬級
銆銆鍘熷瀷錛歀ONG RegOpenKeyEx(HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions,
REGSAM samDesired, PHKEY phkResult );

銆銆瑙i噴錛氭墦寮涓涓寚瀹氱殑閿紝騫惰繑鍥炴墦寮閿殑鍙ユ焺銆?br />
鍚勫弬鏁板強榪斿洖鍊肩殑鍚箟濡備笅錛?br />路鍙傛暟hKey鐨勫惈涔夊悓RegCreateKeyEx鍑芥暟涓殑hKey鍙傛暟錛?br />
路鍙傛暟lpSubKey涓轟竴涓寚鍚戜互闆剁粨灝劇殑瀛楃涓茬殑鎸囬拡錛屽叾涓寘鍚瓙閿殑鍚嶇О錛屽彲浠ュ埄鐢ㄥ弽鏂滅嚎錛圽錛夊垎闅斾笉鍚岀殑瀛愰敭鍚嶃傚鏋滃瓧絎︿覆涓虹┖錛屽垯鏍規嵁hKey鍙傛暟鍒涘緩涓涓柊鐨勫彞鏌勩傚湪榪欑鎯呭喌涓嬶紝騫朵笉鍏抽棴鍏堝墠鎵撳紑鐨勫彞鏌勶紱
路鍙傛暟ulOption淇濈暀錛岄氬父蹇呴』璁劇疆涓?錛?br />
路鍙傛暟samDesired鐨勫惈涔夊悓RegCreateKeyEx鍑芥暟涓殑samDesired鍙傛暟錛?br />
路鍙傛暟phkResult涓轟竴涓寚閽堬紝鐢ㄦ潵鎸囧悜鎵撳紑鐨勯敭鐨勫彞鏌勩傚彲浠ラ氳繃RegCloseKey鍑芥暟鍏抽棴榪欎釜鍙ユ焺錛?br />
路鍑芥暟鐨勮繑鍥炲煎悓RegCreateKeyEx鍑芥暟鐨勮繑鍥炲箋?/div>
4銆佹煡璇㈡煇涓涓敭鍊鹼細RegQueryValueEx錛堬級

銆銆鍘熷瀷錛歀ONG RegQueryValueEx(HKEY hKey, LPCTSTR lpValueName, LPDWORD pReserved, LPDWORD lpType,
LPBYTE lpData, LPDWORD lpcbData );

銆銆瑙i噴錛氭牴鎹鏌ヨ鐨勯敭鐨勫彞鏌勶紝瑕佽繑鍥炵殑鏌ヨ鐨勬暟鎹?br />
銆銆鍚勪釜鍙傛暟鍙婅繑鍥炲肩殑鍚箟濡備笅錛?br />
銆銆路鍙傛暟hKey涓哄綋鍓嶇殑涓涓墦寮鐨勯敭鐨勫彞鏌勶紝鍏蜂綋鏁板煎悓RegCreateKeyEx鍑芥暟鐨刪Key鍙傛暟錛?br />
銆銆路鍙傛暟lpVauleName涓轟竴涓寚鍚戦潪絀虹殑鍖呭惈鏌ヨ鍊肩殑鍚嶇О鐨勫瓧絎︿覆鎸囬拡錛?br />
銆銆路鍙傛暟lpReserved淇濈暀錛屽繀欏諱負NULL錛?br />
銆銆路鍙傛暟lpType涓轟竴涓寚鍚戞暟鎹被鍨嬬殑鎸囬拡錛屾暟鎹被鍨嬩負涓嬪垪綾誨瀷涔嬩竴錛歊EG_BINARY 浜岃繘鍒舵暟鎹丷EG_DWORD 32浣嶆暣鏁般丷EG_DWORD_LITTLE_ENDIAN little錛峞ndian鏍煎紡鐨勬暟鎹紝渚嬪0X12345678浠ワ紙0X78 0X56 0X34 0X12錛夋柟寮忎繚瀛樸丷EG_DWORD_BIG_ENDIAN big錛峞ndian鏍煎紡鐨勬暟鎹紝渚嬪0X12345678浠ワ紙0X12 0X34 0X56 0X78錛夋柟寮忎繚瀛樸丷EG_EXPAND_SZ 涓涓寘鍚湭鎵╁睍鐜鍙橀噺鐨勫瓧絎︿覆銆丷EG_LINK 涓涓猆nicode綾誨瀷鐨勯摼鎺ャ丷EG_MULIT_SZ 浠ヤ袱涓浂緇撳熬鐨勫瓧絎︿覆銆丷EG_NONE 鏃犵被鍨嬫暟鍊箋丷EG_RESOURCE_LIST 璁懼椹卞姩璧勬簮鍒楄〃銆丷EG_SZ 涓涓互闆剁粨灝劇殑瀛楃涓叉牴鎹嚱鏁頒嬌鐢ㄧ殑瀛楃闆嗙被鍨嬬殑涓嶅悓鑰岃緗負Unicode鎴朅NSI綾誨瀷鐨勫瓧絎︿覆錛?br />
銆銆路鍙傛暟lpData涓轟竴涓寚鍚戜繚瀛樿繑鍥炲肩殑鍙橀噺鐨勬寚閽堛傚鏋滀笉闇瑕佽繑鍥炲鹼紝璇ュ弬鏁板彲浠ヤ負NULL錛?br />
銆銆路鍙傛暟lpcbData涓轟竴涓寚鍚戜繚瀛樿繑鍥炲奸暱搴︾殑鍙橀噺鐨勬寚閽堛傚叾涓暱搴︿互瀛楄妭涓哄崟浣嶃傚鏋滄暟鎹被鍨嬩負REG_SZ銆丷EG_MULTI_SZ鎴朢EG_EXPAND_SZ錛岄偅涔堥暱搴︿篃鍖呮嫭緇撳熬鐨勯浂瀛楃錛屽彧鏈夊湪鍙傛暟lpData涓篘ULL鏃訛紝鍙傛暟lpcbData鎵嶅彲浠ヤ負NULL錛涜繑鍥炲煎悓RegCreateKeyEx鍑芥暟鐨勮繑鍥炲鹼紱
銆5銆丷egSetValueEx錛堬級

銆銆鍘熷瀷錛歀ONG RegSetValueEx(HKEY hKey, LPCTSTR lpValueName, LPDWORD lpReserved, DWORD dwType,
const BYTE *lpData, DWORD cbData);

銆銆瑙i噴錛氳緗敞鍐岃〃涓殑涓涓敭鍊箋?br />
銆銆鍚勪釜鍙傛暟鍙婅繑鍥炲肩殑鍚箟濡備笅錛?br />
銆銆路鍙傛暟hKey鐨勫惈涔夊悓RegCreateKeyEx鍑芥暟涓殑hKey鍙傛暟錛?br />
銆銆路鍙傛暟lpValueName涓轟竴涓寚鍚戝寘鍚煎悕鐨勫瓧絎︿覆鎸囬拡錛汻eserved淇濈暀錛岄氬父蹇呴』璁劇疆涓?錛?br />
銆銆路鍙傛暟dwType紜畾浜嗚緗殑鍊肩殑綾誨瀷鍚孯egQueryValueKeyEx鐨刲yType鍙傛暟錛?br />
銆銆路鍙傛暟lpData涓轟竴涓寚鍚戝寘鍚暟鎹殑緙撳啿鍖虹殑鎸囬拡錛?br />
銆銆路鍙傛暟cbData浠ュ瓧鑺備負鍗曚綅錛屾寚瀹氭暟鎹殑闀垮害錛?br />
銆銆榪斿洖鍊煎悓RegCreateKeyEx鍑芥暟鐨勮繑鍥炲箋?/div>
6銆丷egDeketeKey錛堬級

銆銆鍘熷瀷錛歀ONG RegDeleteKey錛圚KEY hKey錛孡PCTSTR lpSubKEY錛夛紱

銆銆瑙i噴錛氬嚱鏁癛egDeketeKey鍒犻櫎涓涓敭鍙婃墍鏈夌殑瀛愰敭銆?br />
銆銆鍚勪釜鍙傛暟鍙婅繑鍥炲肩殑鍚箟濡備笅錛?br />
銆銆路鍙傛暟hKey鐨勫惈涔夊悓RegCreateKeyEx鍑芥暟涓殑hKey鍙傛暟錛?br />
銆銆路鍙傛暟lpSubKey鐨勫惈涔夊悓RegCreateKeyEx鍑芥暟涓殑lpSubKey鍙傛暟銆?/div>


David Lee 2009-05-03 17:30 鍙戣〃璇勮
]]>灞閮ㄥ彉閲忋佸叏灞鍙橀噺銆侀潤鎬佸彉閲?/title><link>http://m.shnenglu.com/Lee/archive/2009/03/19/77103.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Wed, 18 Mar 2009 23:28:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2009/03/19/77103.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/77103.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2009/03/19/77103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/77103.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/77103.html</trackback:ping><description><![CDATA[ <p>闈欐佸彉閲忕殑綾誨瀷璇存槑絎︽槸static銆?闈欐佸彉閲忓綋鐒舵槸灞炰簬闈欐佸瓨鍌ㄦ柟寮忥紝浣嗘槸灞炰簬闈欐佸瓨鍌ㄦ柟寮忕殑閲忎笉涓瀹氬氨鏄潤鎬佸彉閲忥紝渚嬪澶栭儴鍙橀噺铏藉睘浜庨潤鎬佸瓨鍌ㄦ柟寮忥紝浣嗕笉涓瀹氭槸闈欐佸彉閲忥紝蹇呴』鐢?static鍔犱互瀹氫箟鍚庢墠鑳芥垚涓洪潤鎬佸閮ㄥ彉閲忥紝鎴栫О闈欐佸叏灞鍙橀噺銆傚浜庤嚜鍔ㄥ彉閲忥紝瀹冨睘浜庡姩鎬佸瓨鍌ㄦ柟寮忋?浣嗘槸涔熷彲浠ョ敤static瀹氫箟瀹冧負闈欐佽嚜鍔ㄥ彉閲忥紝鎴栫О闈欐佸眬閮ㄥ彉閲忥紝浠庤屾垚涓洪潤鎬佸瓨鍌ㄦ柟寮忋?/p> <p>銆銆鐢辨鐪嬫潵錛?涓涓彉閲忓彲鐢眘tatic榪涜鍐嶈鏄庯紝騫舵敼鍙樺叾鍘熸湁鐨勫瓨鍌ㄦ柟寮忋?/p> <p>銆銆1. 闈欐佸眬閮ㄥ彉閲?/p> <p>銆銆鍦ㄥ眬閮ㄥ彉閲忕殑璇存槑鍓嶅啀鍔犱笂static璇存槑絎﹀氨鏋勬垚闈欐佸眬閮ㄥ彉閲忋?/p> <p>銆銆渚嬪錛?/p> <p>銆銆static int a,b;</p> <p>銆銆static float array[5]={1,2,3,4,5}錛?</p> <p>銆銆闈欐佸眬閮ㄥ彉閲忓睘浜庨潤鎬佸瓨鍌ㄦ柟寮忥紝瀹冨叿鏈変互涓嬬壒鐐癸細</p> <p>銆銆(1)闈欐佸眬閮ㄥ彉閲忓湪鍑芥暟鍐呭畾涔夛紝浣嗕笉璞¤嚜鍔ㄥ彉閲忛偅鏍鳳紝褰撹皟鐢ㄦ椂灝卞瓨鍦紝閫鍑哄嚱鏁版椂灝辨秷澶便傞潤鎬佸眬閮ㄥ彉閲忓緇堝瓨鍦ㄧ潃錛屼篃灝辨槸璇村畠鐨勭敓瀛樻湡涓烘暣涓簮紼嬪簭銆?/p> <p>銆銆(2)闈欐佸眬閮ㄥ彉閲忕殑鐢熷瓨鏈熻櫧鐒朵負鏁翠釜婧愮▼搴忥紝浣嗘槸鍏朵綔鐢ㄥ煙浠嶄笌鑷姩鍙橀噺鐩稿悓錛屽嵆鍙兘鍦ㄥ畾涔夎鍙橀噺鐨勫嚱鏁板唴浣跨敤璇ュ彉閲忋傞鍑鴻鍑芥暟鍚庯紝灝界璇ュ彉閲忚繕緇х畫瀛樺湪錛屼絾涓嶈兘浣跨敤瀹冦?/p> <p>銆銆(3)鍏佽瀵規瀯閫犵被闈欐佸眬閮ㄩ噺璧嬪垵鍊箋傝嫢鏈祴浠ュ垵鍊鹼紝鍒欑敱緋葷粺鑷姩璧嬩互0鍊箋?/p> <p>銆銆(4)瀵瑰熀鏈被鍨嬬殑闈欐佸眬閮ㄥ彉閲忚嫢鍦ㄨ鏄庢椂鏈祴浠ュ垵鍊鹼紝鍒欑郴緇熻嚜鍔ㄨ祴浜?鍊箋傝屽鑷姩鍙橀噺涓嶈祴鍒濆鹼紝鍒欏叾鍊兼槸涓嶅畾鐨勩?鏍規嵁闈欐佸眬閮ㄥ彉閲忕殑鐗圭偣錛?鍙互鐪嬪嚭瀹冩槸涓縐嶇敓瀛樻湡涓烘暣涓簮紼嬪簭鐨勯噺銆傝櫧鐒剁寮瀹氫箟瀹冪殑鍑芥暟鍚庝笉鑳戒嬌鐢紝浣嗗鍐嶆璋冪敤瀹氫箟瀹冪殑鍑芥暟鏃訛紝瀹冨張鍙戶緇嬌鐢紝鑰屼笖淇濆瓨浜嗗墠嬈¤璋冪敤鍚庣暀涓嬬殑鍊箋?鍥犳錛屽綋澶氭璋冪敤涓涓嚱鏁頒笖瑕佹眰鍦ㄨ皟鐢ㄤ箣闂翠繚鐣欐煇浜涘彉閲忕殑鍊兼椂錛屽彲鑰冭檻閲囩敤闈欐佸眬閮ㄥ彉閲忋傝櫧鐒剁敤鍏ㄥ眬鍙橀噺涔熷彲浠ヨ揪鍒頒笂榪扮洰鐨勶紝浣嗗叏灞鍙橀噺鏈夋椂浼氶犳垚鎰忓鐨勫壇浣滅敤錛屽洜姝や粛浠ラ噰鐢ㄥ眬閮ㄩ潤鎬佸彉閲忎負瀹?/p> <p>銆銆2.闈欐佸叏灞鍙橀噺</p> <p>銆銆鍏ㄥ眬鍙橀噺(澶栭儴鍙橀噺)鐨勮鏄庝箣鍓嶅啀鍐犱互static 灝辨瀯鎴愪簡闈欐佺殑鍏ㄥ眬鍙橀噺銆傚叏灞鍙橀噺鏈韓灝辨槸闈欐佸瓨鍌ㄦ柟寮忥紝 闈欐佸叏灞鍙橀噺褰撶劧涔熸槸闈欐佸瓨鍌ㄦ柟寮忋?榪欎袱鑰呭湪瀛樺偍鏂瑰紡涓婂茍鏃犱笉鍚屻傝繖涓よ呯殑鍖哄埆铏藉湪浜庨潪闈欐佸叏灞鍙橀噺鐨勪綔鐢ㄥ煙鏄暣涓簮紼嬪簭錛屽綋涓涓簮紼嬪簭鐢卞涓簮鏂囦歡緇勬垚鏃訛紝闈為潤鎬佺殑鍏ㄥ眬鍙橀噺鍦ㄥ悇涓簮鏂囦歡涓兘鏄湁鏁堢殑銆?鑰岄潤鎬佸叏灞鍙橀噺鍒欓檺鍒朵簡鍏朵綔鐢ㄥ煙錛?鍗沖彧鍦ㄥ畾涔夎鍙橀噺鐨勬簮鏂囦歡鍐呮湁鏁堬紝 鍦ㄥ悓涓婧愮▼搴忕殑鍏跺畠婧愭枃浠朵腑涓嶈兘浣跨敤瀹冦傜敱浜庨潤鎬佸叏灞鍙橀噺鐨勪綔鐢ㄥ煙灞闄愪簬涓涓簮鏂囦歡鍐咃紝鍙兘涓鴻婧愭枃浠跺唴鐨勫嚱鏁板叕鐢紝鍥犳鍙互閬垮厤鍦ㄥ叾瀹冩簮鏂囦歡涓紩璧烽敊璇備粠浠ヤ笂鍒嗘瀽鍙互鐪嬪嚭錛?鎶婂眬閮ㄥ彉閲忔敼鍙樹負闈欐佸彉閲忓悗鏄敼鍙樹簡瀹冪殑瀛樺偍鏂瑰紡鍗蟲敼鍙樹簡瀹冪殑鐢熷瓨鏈熴傛妸鍏ㄥ眬鍙橀噺鏀瑰彉涓洪潤鎬佸彉閲忓悗鏄敼鍙樹簡瀹冪殑浣滅敤鍩燂紝闄愬埗浜嗗畠鐨勪嬌鐢ㄨ寖鍥淬傚洜姝tatic 榪欎釜璇存槑絎﹀湪涓嶅悓鐨勫湴鏂規墍璧風殑浣滅敤鏄笉鍚岀殑銆傚簲浜堜互娉ㄦ剰銆?/p> <p>銆銆闈欐佸彉閲?/p> <p>銆銆闄よ寖鍥翠箣澶栵紝鍙橀噺榪樻湁瀛樻椿鏈燂紝鍦ㄨ繖涓鏈熼棿鍙橀噺鑳藉淇濇寔瀹冧滑鐨勫箋傚湪搴旂敤紼嬪簭鐨勫瓨媧繪湡鍐呬竴鐩翠繚鎸佹ā鍧楃駭鍙橀噺鍜屽叕鐢ㄥ彉閲忕殑鍊箋備絾鏄紝瀵逛簬 Dim 澹版槑鐨勫眬閮ㄥ彉閲忎互鍙婂0鏄庡眬閮ㄥ彉閲忕殑榪囩▼錛屼粎褰撹繃紼嬪湪鎵ц鏃惰繖浜涘眬閮ㄥ彉閲忔墠瀛樺湪銆傞氬父錛屽綋涓涓繃紼嬫墽琛屽畬姣曪紝瀹冪殑灞閮ㄥ彉閲忕殑鍊煎氨宸茬粡涓嶅瓨鍦紝鑰屼笖鍙橀噺鎵鍗犳嵁鐨勫唴瀛樹篃琚噴鏀俱傚綋涓嬩竴嬈℃墽琛岃榪囩▼鏃訛紝瀹冪殑鎵鏈夊眬閮ㄥ彉閲忓皢閲嶆柊鍒濆鍖栥?/p> <p>銆銆浣嗗彲灝嗗眬閮ㄥ彉閲忓畾涔夋垚闈欐佺殑錛屼粠鑰屼繚鐣欏彉閲忕殑鍊箋傚湪榪囩▼鍐呴儴鐢?Static 鍏抽敭瀛楀0鏄庝竴涓垨澶氫釜鍙橀噺錛屽叾鐢ㄦ硶鍜?Dim 璇彞瀹屽叏涓鏍鳳細</p> <p>銆銆Static Depth</p> <p>銆銆渚嬪錛屼笅闈㈢殑鍑芥暟灝嗗瓨鍌ㄥ湪闈欐佸彉閲?Accumulate 涓殑浠ュ墠鐨勮繍钀ユ誨間笌涓涓柊鍊肩浉鍔狅紝浠ヨ綆楄繍钀ユ誨箋?/p> <p>銆銆Function RunningTotal (num)</p> <p>銆銆Static ApplesSold</p> <p>銆銆ApplesSold = ApplesSold + num</p> <p>銆銆RunningTotal = ApplesSold</p> <p>銆銆End Function</p> <p>銆銆濡傛灉鐢?Dim 鑰屼笉鐢?Static 澹版槑 ApplesSold錛屽垯浠ュ墠鐨勭瘡璁″間笉浼氶氳繃璋冪敤鍑芥暟淇濈暀涓嬫潵錛屽嚱鏁板彧浼氱畝鍗曞湴榪斿洖璋冪敤瀹冪殑閭d釜鐩稿悓鍊箋?/p> <p>銆銆鍦ㄦā鍧楃殑澹版槑孌靛0鏄?ApplesSold錛屽茍浣垮畠鎴愪負妯″潡綰у彉閲忥紝鐢辨涔熶細鏀跺埌鍚屾牱鏁堟灉銆備絾鏄紝榪欑鏂規硶涓鏃︽敼鍙樺彉閲忕殑鑼冨洿錛岃繃紼嬪氨涓嶅啀瀵瑰彉閲忔帓浠栨у瓨鍙栥傜敱浜庡叾瀹冭繃紼嬩篃鍙互璁塊棶鍜屾敼鍙樺彉閲忕殑鍊鹼紝鎵浠ヨ繍钀ユ誨間篃璁鎬笉鍙潬錛屼唬鐮佸皢鏇撮毦浜庣淮鎶ゃ?/p> <p>銆銆澹版槑鎵鏈夌殑灞閮ㄥ彉閲忎負闈欐佸彉閲?/p> <p>銆銆涓轟簡浣胯繃紼嬩腑鎵鏈夌殑灞閮ㄥ彉閲忎負闈欐佸彉閲忥紝鍙湪榪囩▼澶寸殑璧峰澶勫姞涓?Static 鍏抽敭瀛椼備緥濡傦細</p> <p>銆銆Static Function RunningTotal (num)</p> <p>銆銆榪欏氨浣胯繃紼嬩腑鐨勬墍鏈夊眬閮ㄥ彉閲忛兘鍙樹負闈欐侊紝鏃犺瀹冧滑鏄敤 Static銆丏im 鎴?Private 澹版槑鐨勮繕鏄殣寮忓0鏄庣殑銆傚彲浠ュ皢 Static 鏀懼湪浠諱綍 Sub 鎴?Funtion 榪囩▼澶寸殑鍓嶉潰錛屽寘鎷簨浠惰繃紼嬪拰澹版槑涓?Private 鐨勮繃紼嬨?/p> <p> <br />鏂囩珷鍑哄錛欴IY閮ㄨ惤(<a >http://www.diybl.com/course/3_program/vc/vc_js/20090215/155523.html</a>)</p> <img src ="http://m.shnenglu.com/Lee/aggbug/77103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2009-03-19 07:28 <a href="http://m.shnenglu.com/Lee/archive/2009/03/19/77103.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>c++涓璼tatic鐨勪綔鐢?/title><link>http://m.shnenglu.com/Lee/archive/2009/03/19/77101.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Wed, 18 Mar 2009 22:36:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2009/03/19/77101.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/77101.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2009/03/19/77101.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/77101.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/77101.html</trackback:ping><description><![CDATA[ <p>聽聽 1銆佷粈涔堟槸static?<br />聽聽聽聽聽聽 static 鏄疌++涓緢甯哥敤鐨勪慨楗扮錛屽畠琚敤鏉ユ帶鍒跺彉閲忕殑瀛樺偍鏂瑰紡鍜屽彲瑙佹с?/p> <p>聽聽聽 2銆佷負浠涔堣寮曞叆static?<br />聽聽聽聽聽聽 鍑芥暟鍐呴儴瀹氫箟鐨勫彉閲忥紝鍦ㄧ▼搴忔墽琛屽埌瀹冪殑瀹氫箟澶勬椂錛岀紪璇戝櫒涓哄畠鍦ㄦ爤涓婂垎閰嶇┖闂達紝澶у鐭ラ亾錛屽嚱鏁板湪鏍堜笂鍒嗛厤鐨勭┖闂村湪姝ゅ嚱鏁版墽琛岀粨鏉熸椂浼氶噴鏀炬帀錛岃繖鏍峰氨浜х敓浜嗕竴 涓棶棰? 濡傛灉鎯沖皢鍑芥暟涓鍙橀噺鐨勫間繚瀛樿嚦涓嬩竴嬈¤皟鐢ㄦ椂錛屽浣曞疄鐜幫紵 鏈瀹規槗鎯沖埌鐨勬柟娉曟槸瀹氫箟涓涓叏灞鐨勫彉閲忥紝浣嗗畾涔変負涓涓叏灞鍙橀噺鏈夎澶氱己鐐癸紝鏈鏄庢樉鐨勭己鐐規槸鐮村潖浜嗘鍙橀噺鐨勮闂寖鍥達紙浣垮緱鍦ㄦ鍑芥暟涓畾涔夌殑鍙橀噺錛屼笉浠呬粎鍙楁 鍑芥暟鎺у埗錛夈?/p> <p>聽聽聽 3銆佷粈涔堟椂鍊欑敤static?<br />聽聽聽聽聽聽 闇瑕佷竴涓暟鎹璞′負鏁翠釜綾昏岄潪鏌愪釜瀵硅薄鏈嶅姟,鍚屾椂鍙堝姏姹備笉鐮村潖綾葷殑灝佽鎬?鍗寵姹傛鎴愬憳闅愯棌鍦ㄧ被鐨勫唴閮紝瀵瑰涓嶅彲瑙併?/p> <p>聽聽聽 4銆乻tatic鐨勫唴閮ㄦ満鍒訛細<br />聽聽聽聽聽聽 闈欐佹暟鎹垚鍛樿鍦ㄧ▼搴忎竴寮濮嬭繍琛屾椂灝卞繀欏誨瓨鍦ㄣ傚洜涓哄嚱鏁板湪紼嬪簭榪愯涓璋冪敤錛屾墍浠ラ潤鎬佹暟鎹垚鍛樹笉鑳藉湪浠諱綍鍑芥暟鍐呭垎閰嶇┖闂村拰鍒濆鍖栥?br />聽聽聽聽聽聽 榪欐牱錛屽畠鐨勭┖闂村垎閰嶆湁涓変釜鍙兘鐨勫湴鏂癸紝涓鏄綔涓虹被鐨勫閮ㄦ帴鍙g殑澶存枃浠訛紝閭i噷鏈夌被澹版槑錛涗簩鏄被瀹氫箟鐨勫唴閮ㄥ疄鐜幫紝閭i噷鏈夌被鐨勬垚鍛樺嚱鏁板畾涔夛紱涓夋槸搴旂敤紼嬪簭鐨刴ain錛堬級鍑芥暟鍓嶇殑鍏ㄥ眬鏁版嵁澹版槑鍜屽畾涔夊銆?br />聽聽聽聽聽 闈欐佹暟鎹垚鍛樿瀹為檯鍦板垎閰嶇┖闂達紝鏁呬笉鑳藉湪綾葷殑澹版槑涓畾涔夛紙鍙兘澹版槑鏁版嵁鎴愬憳錛夈傜被澹版槑鍙0鏄庝竴涓被鐨勨滃昂瀵稿拰瑙勬牸鈥濓紝騫朵笉榪涜瀹為檯鐨勫唴瀛樺垎閰嶏紝鎵浠ュ湪綾誨0 鏄庝腑鍐欐垚瀹氫箟鏄敊璇殑銆傚畠涔熶笉鑳藉湪澶存枃浠朵腑綾誨0鏄庣殑澶栭儴瀹氫箟錛屽洜涓洪偅浼氶犳垚鍦ㄥ涓嬌鐢ㄨ綾葷殑婧愭枃浠朵腑錛屽鍏墮噸澶嶅畾涔夈?br />聽聽聽聽聽 static琚紩鍏ヤ互鍛婄煡緙栬瘧鍣紝灝嗗彉閲忓瓨鍌ㄥ湪紼嬪簭鐨勯潤鎬佸瓨鍌ㄥ尯鑰岄潪鏍堜笂絀洪棿錛岄潤鎬?br />鏁版嵁鎴愬憳鎸夊畾涔夊嚭鐜扮殑鍏堝悗欏哄簭渚濇鍒濆鍖栵紝娉ㄦ剰闈欐佹垚鍛樺祵濂楁椂錛岃淇濊瘉鎵宓屽鐨勬垚鍛樺凡緇忓垵濮嬪寲浜嗐傛秷闄ゆ椂鐨勯『搴忔槸鍒濆鍖栫殑鍙嶉『搴忋?/p> <p>聽聽聽 5銆乻tatic鐨勪紭鍔匡細<br />聽聽聽聽聽聽 鍙互鑺傜渷鍐呭瓨錛屽洜涓哄畠鏄墍鏈夊璞℃墍鍏湁鐨勶紝鍥犳錛屽澶氫釜瀵硅薄鏉ヨ錛岄潤鎬佹暟鎹垚鍛樺彧瀛樺偍涓澶勶紝渚涙墍鏈夊璞″叡鐢ㄣ傞潤鎬佹暟鎹垚鍛樼殑鍊煎姣忎釜瀵硅薄閮芥槸涓鏍鳳紝浣嗗畠鐨?鍊兼槸鍙互鏇存柊鐨勩傚彧瑕佸闈欐佹暟鎹垚鍛樼殑鍊兼洿鏂頒竴嬈★紝淇濊瘉鎵鏈夊璞″瓨鍙栨洿鏂板悗鐨勭浉鍚岀殑鍊鹼紝榪欐牱鍙互鎻愰珮鏃墮棿鏁堢巼銆?/p> <p>聽聽聽 6銆佸紩鐢ㄩ潤鎬佹暟鎹垚鍛樻椂錛岄噰鐢ㄥ涓嬫牸寮忥細<br />聽聽聽聽聽聽聽聽 <綾誨悕>::<闈欐佹垚鍛樺悕><br />聽聽聽 濡傛灉闈欐佹暟鎹垚鍛樼殑璁塊棶鏉冮檺鍏佽鐨勮瘽(鍗硃ublic鐨勬垚鍛?錛屽彲鍦ㄧ▼搴忎腑錛屾寜涓婅堪鏍煎紡<br />鏉ュ紩鐢ㄩ潤鎬佹暟鎹垚鍛樸?/p> <p>聽聽聽 7銆佹敞鎰忎簨欏癸細<br />聽聽聽聽聽 (1)綾葷殑闈欐佹垚鍛樺嚱鏁版槸灞炰簬鏁翠釜綾昏岄潪綾葷殑瀵硅薄錛屾墍浠ュ畠娌℃湁this鎸囬拡錛岃繖灝卞鑷?br />浜嗗畠浠呰兘璁塊棶綾葷殑闈欐佹暟鎹拰闈欐佹垚鍛樺嚱鏁般?br />聽聽聽聽聽 (2)涓嶈兘灝嗛潤鎬佹垚鍛樺嚱鏁板畾涔変負铏氬嚱鏁般?br />聽聽聽聽聽 (3)鐢變簬闈欐佹垚鍛樺0鏄庝簬綾諱腑錛屾搷浣滀簬鍏跺錛屾墍浠ュ鍏跺彇鍦板潃鎿嶄綔錛屽氨澶氬皯鏈変簺鐗規畩<br />錛屽彉閲忓湴鍧鏄寚鍚戝叾鏁版嵁綾誨瀷鐨勬寚閽?錛屽嚱鏁板湴鍧綾誨瀷鏄竴涓渘onmember鍑芥暟鎸囬拡鈥濄?/p> <p>聽聽聽聽聽 (4)鐢變簬闈欐佹垚鍛樺嚱鏁版病鏈塼his鎸囬拡錛屾墍浠ュ氨宸笉澶氱瓑鍚屼簬nonmember鍑芥暟錛岀粨鏋滃氨<br />浜х敓浜嗕竴涓剰鎯充笉鍒扮殑濂藉錛氭垚涓轟竴涓猚allback鍑芥暟錛屼嬌寰楁垜浠緱浠ュ皢C++鍜孋-based X W<br />indow緋葷粺緇撳悎錛屽悓鏃朵篃鎴愬姛鐨勫簲鐢ㄤ簬綰跨▼鍑芥暟韜笂銆?br />聽聽聽聽聽 (5)static騫舵病鏈夊鍔犵▼搴忕殑鏃剁┖寮閿錛岀浉鍙嶅ス榪樼緝鐭簡瀛愮被瀵圭埗綾婚潤鎬佹垚鍛樼殑璁塊棶<br />鏃墮棿錛岃妭鐪佷簡瀛愮被鐨勫唴瀛樼┖闂淬?br />聽聽聽聽聽 (6)闈欐佹暟鎹垚鍛樺湪<瀹氫箟鎴栬鏄?gt;鏃跺墠闈㈠姞鍏抽敭瀛梥tatic銆?br />聽聽聽聽聽 (7)闈欐佹暟鎹垚鍛樻槸闈欐佸瓨鍌ㄧ殑錛屾墍浠ュ繀欏誨瀹冭繘琛屽垵濮嬪寲銆?br />聽聽聽聽聽 (8)闈欐佹垚鍛樺垵濮嬪寲涓庝竴鑸暟鎹垚鍛樺垵濮嬪寲涓嶅悓:<br />聽聽聽聽聽聽 鍒濆鍖栧湪綾諱綋澶栬繘琛岋紝鑰屽墠闈笉鍔爏tatic錛屼互鍏嶄笌涓鑸潤鎬佸彉閲忔垨瀵硅薄鐩告販娣嗭紱<br />聽聽聽聽聽聽 鍒濆鍖栨椂涓嶅姞璇ユ垚鍛樼殑璁塊棶鏉冮檺鎺у埗絎rivate錛宲ublic絳夛紱<br />聽聽聽聽聽聽聽聽聽聽 鍒濆鍖栨椂浣跨敤浣滅敤鍩熻繍綆楃鏉ユ爣鏄庡畠鎵灞炵被錛?br />聽聽聽聽聽聽聽聽聽聽 鎵浠ユ垜浠緱鍑洪潤鎬佹暟鎹垚鍛樺垵濮嬪寲鐨勬牸寮忥細<br />聽聽聽聽聽聽聽聽 <鏁版嵁綾誨瀷><綾誨悕>::<闈欐佹暟鎹垚鍛樺悕>=<鍊?gt;<br />聽聽聽聽聽 (9)涓轟簡闃叉鐖剁被鐨勫獎鍝嶏紝鍙互鍦ㄥ瓙綾誨畾涔変竴涓笌鐖剁被鐩稿悓鐨勯潤鎬佸彉閲忥紝浠ュ睆钄界埗綾葷殑褰卞搷銆傝繖閲屾湁涓鐐歸渶瑕佹敞鎰忥細鎴戜滑璇撮潤鎬佹垚鍛樹負鐖剁被鍜屽瓙綾誨叡浜紝浣嗘垜浠湁 閲嶅瀹氫箟浜嗛潤鎬佹垚鍛橈紝榪欎細涓嶄細寮曡搗閿欒鍛紵涓嶄細錛屾垜浠殑緙栬瘧鍣ㄩ噰鐢ㄤ簡涓縐嶇粷濡欑殑鎵嬫硶錛歯ame-mangling 鐢ㄤ互鐢熸垚鍞竴鐨勬爣蹇椼?/p> <p> </p> <p> <strong>闈欐佹暟鎹垚鍛?br /><br /></strong>銆銆鍦ㄧ被涓紝闈欐佹垚鍛樺彲浠ュ疄鐜板涓璞′箣闂寸殑鏁版嵁鍏變韓錛屽茍涓斾嬌鐢ㄩ潤鎬佹暟鎹垚鍛樿繕涓嶄細鐮村潖闅愯棌鐨勫師鍒欙紝鍗充繚璇佷簡瀹夊叏鎬с傚洜姝わ紝闈欐佹垚鍛樻槸綾葷殑鎵鏈夊璞′腑鍏變韓鐨勬垚鍛橈紝鑰屼笉鏄煇涓璞$殑鎴愬憳銆?br /><br />浣跨敤闈欐佹暟鎹垚鍛樺彲浠ヨ妭鐪佸唴瀛橈紝鍥犱負瀹冩槸鎵鏈夊璞℃墍鍏湁鐨勶紝鍥犳錛屽澶氫釜瀵硅薄鏉ヨ錛岄潤鎬佹暟鎹垚鍛樺彧瀛樺偍涓澶勶紝渚涙墍鏈夊璞″叡鐢ㄣ傞潤鎬佹暟鎹垚鍛樼殑鍊煎姣忎釜 瀵硅薄閮芥槸涓鏍鳳紝浣嗗畠鐨勫兼槸鍙互鏇存柊鐨勩傚彧瑕佸闈欐佹暟鎹垚鍛樼殑鍊兼洿鏂頒竴嬈★紝淇濊瘉鎵鏈夊璞″瓨鍙栨洿鏂板悗鐨勭浉鍚岀殑鍊鹼紝榪欐牱鍙互鎻愰珮鏃墮棿鏁堢巼銆?br /><br />闈欐佹暟鎹垚鍛樼殑浣跨敤鏂規硶鍜屾敞鎰忎簨欏瑰涓嬶細<br /><br />1銆侀潤鎬佹暟鎹垚鍛樺湪瀹氫箟鎴栬鏄庢椂鍓嶉潰鍔犲叧閿瓧static銆?br /><br />2銆侀潤鎬佹垚鍛樺垵濮嬪寲涓庝竴鑸暟鎹垚鍛樺垵濮嬪寲涓嶅悓銆傞潤鎬佹暟鎹垚鍛樺垵濮嬪寲鐨勬牸寮忓涓嬶細<br /><br /><鏁版嵁綾誨瀷><綾誨悕>::<闈欐佹暟鎹垚鍛樺悕>=<鍊?gt;<br /><br />榪欒〃鏄庯細<br /><br />聽聽聽聽聽 銆銆(1) 鍒濆鍖栧湪綾諱綋澶栬繘琛岋紝鑰屽墠闈笉鍔爏tatic錛屼互鍏嶄笌涓鑸潤鎬佸彉閲忔垨瀵硅薄鐩告販娣嗐?br /><br />(2) 鍒濆鍖栨椂涓嶅姞璇ユ垚鍛樼殑璁塊棶鏉冮檺鎺у埗絎rivate錛宲ublic絳夈?br /><br />(3) 鍒濆鍖栨椂浣跨敤浣滅敤鍩熻繍綆楃鏉ユ爣鏄庡畠鎵灞炵被錛屽洜姝わ紝闈欐佹暟鎹垚鍛樻槸綾葷殑鎴愬憳錛岃屼笉鏄璞$殑鎴愬憳銆?br /><br />3銆侀潤鎬佹暟鎹垚鍛樻槸闈欐佸瓨鍌ㄧ殑錛屽畠鏄潤鎬佺敓瀛樻湡錛屽繀欏誨瀹冭繘琛屽垵濮嬪寲銆?br /><br />4銆佸紩鐢ㄩ潤鎬佹暟鎹垚鍛樻椂錛岄噰鐢ㄥ涓嬫牸寮忥細<br /><br /><綾誨悕>::<闈欐佹垚鍛樺悕><br /><br />濡傛灉闈欐佹暟鎹垚鍛樼殑璁塊棶鏉冮檺鍏佽鐨勮瘽(鍗硃ublic鐨勬垚鍛?錛屽彲鍦ㄧ▼搴忎腑錛屾寜涓婅堪鏍煎紡鏉ュ紩鐢ㄩ潤鎬佹暟鎹垚鍛樸?/p> <p> <strong>闈欐佹垚鍛樺嚱鏁?br /><br /></strong>銆銆闈欐佹垚鍛樺嚱鏁板拰闈欐佹暟鎹垚鍛樹竴鏍鳳紝瀹冧滑閮藉睘浜庣被鐨勯潤鎬佹垚鍛橈紝瀹冧滑閮戒笉鏄璞℃垚鍛樸傚洜姝わ紝瀵歸潤鎬佹垚鍛樼殑寮曠敤涓嶉渶瑕佺敤瀵硅薄鍚嶃?br /><br />鍦ㄩ潤鎬佹垚鍛樺嚱鏁扮殑瀹炵幇涓笉鑳界洿鎺ュ紩鐢ㄧ被涓鏄庣殑闈為潤鎬佹垚鍛橈紝鍙互寮曠敤綾諱腑璇存槑鐨勯潤鎬佹垚鍛樸傚鏋滈潤鎬佹垚鍛樺嚱鏁頒腑瑕佸紩鐢ㄩ潪闈欐佹垚鍛樻椂錛屽彲閫氳繃瀵硅薄鏉ュ紩鐢ㄣ?/p> <p> <br />涓嬮潰鐪嬩竴涓緥瀛愶細<br />#include <iostream.h><br />class Point<br />{<br />public:<br />void output()<br />{<br />}<br />static void init()<br />{聽聽<br />} <br />};<br />void main( void )<br />{<br />Point pt;<br />pt.init();<br />pt.output(); <br />}<br />榪欐牱緙栬瘧鏄笉浼氭湁浠諱綍閿欒鐨勩?br />涓嬮潰榪欐牱鐪?br />#include <iostream.h><br />class Point<br />{<br />public:<br />void output()<br />{聽聽<br />}<br />static void init()<br />{聽聽<br />} <br />};<br />void main( void )<br />{<br />Point::output();<br />}<br />榪欐牱緙栬瘧浼氬閿欙紝閿欒淇℃伅錛?a name="baidusnap0"></a><strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">illegal</strong><a name="baidusnap1"></a><strong style="COLOR: black; BACKGROUND-COLOR: rgb(160,255,255)">call</strong><a name="baidusnap2"></a><strong style="COLOR: black; BACKGROUND-COLOR: rgb(153,255,153)">of</strong><a name="baidusnap3"></a><strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,153,153)">non-static</strong><a name="baidusnap6"></a><strong style="COLOR: white; BACKGROUND-COLOR: rgb(0,170,0)">member</strong><a name="baidusnap7"></a><strong style="COLOR: white; BACKGROUND-COLOR: rgb(136,104,0)">function</strong>錛屼負浠涔堬紵<br />鍥犱負鍦ㄦ病鏈夊疄渚嬪寲涓涓被鐨勫叿浣撳璞℃椂錛岀被鏄病鏈夎鍒嗛厤鍐呭瓨絀洪棿鐨勩?br />濂界殑鍐嶇湅鐪嬩笅闈㈢殑渚嬪瓙:<br />#include <iostream.h><br />class Point<br />{<br />public:<br />void output()<br />{聽聽<br />}<br />static void init()<br />{聽聽<br />} <br />};<br />void main( void )<br />{<br />Point::init();<br />}<br />榪欐椂緙栬瘧灝變笉浼氭湁閿欒錛屽洜涓哄湪綾葷殑瀹氫箟鏃訛紝瀹冮潤鎬佹暟鎹拰鎴愬憳鍑芥暟灝辨湁浜嗗畠鐨勫唴瀛樺尯錛屽畠涓嶅睘浜庣被鐨勪換浣曚竴涓叿浣撳璞°?br />濂界殑鍐嶇湅鐪嬩笅闈㈢殑渚嬪瓙:<br />#include <iostream.h><br />class Point<br />{<br />public:<br />void output()<br />{聽聽<br />}<br />static void init()<br />{ <br />聽聽 x = 0;<br />聽聽 y = 0;<br />}<br />private:<br />int x;<br />int y;<br />};<br />void main( void )<br />{<br />Point::init();<br />}<br />緙栬瘧鍑洪敊錛?br /><strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">illegal</strong> reference to data <strong style="COLOR: white; BACKGROUND-COLOR: rgb(0,170,0)">member</strong> 'Point::x' in a static <strong style="COLOR: white; BACKGROUND-COLOR: rgb(0,170,0)">member</strong><strong style="COLOR: white; BACKGROUND-COLOR: rgb(136,104,0)">function</strong><br /><strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">illegal</strong> reference to data <strong style="COLOR: white; BACKGROUND-COLOR: rgb(0,170,0)">member</strong> 'Point::y' in a static <strong style="COLOR: white; BACKGROUND-COLOR: rgb(0,170,0)">member</strong><strong style="COLOR: white; BACKGROUND-COLOR: rgb(136,104,0)">function</strong><br />鍦ㄤ竴涓潤鎬佹垚鍛樺嚱鏁伴噷閿欒鐨勫紩鐢ㄤ簡鏁版嵁鎴愬憳錛?br />榪樻槸閭d釜闂錛岄潤鎬佹垚鍛橈紙鍑芥暟錛夛紝涓嶅睘浜庝換浣曚竴涓叿浣撶殑瀵硅薄錛岄偅涔堝湪綾葷殑鍏蜂綋瀵硅薄澹版槑涔嬪墠灝卞凡緇忔湁浜嗗唴瀛樺尯錛?br />鑰岀幇鍦ㄩ潪闈欐佹暟鎹垚鍛樿繕娌℃湁鍒嗛厤鍐呭瓨絀洪棿錛岄偅涔堣繖閲岃皟鐢ㄥ氨閿欒浜嗭紝灝卞ソ鍍忔病鏈夊0鏄庝竴涓彉閲忓嵈鎻愬墠浣跨敤瀹冧竴鏍楓?br />涔熷氨鏄鍦ㄩ潤鎬佹垚鍛樺嚱鏁頒腑涓嶈兘寮曠敤闈為潤鎬佺殑鎴愬憳鍙橀噺銆?br />濂界殑鍐嶇湅鐪嬩笅闈㈢殑渚嬪瓙:<br />#include <iostream.h><br />class Point<br />{<br />public:<br />void output()<br />{<br />聽聽 x = 0;<br />聽聽 y = 0;<br />聽聽 init();聽聽<br />}<br />static void init()<br />{</p> <p>}<br />private:<br />int x;<br />int y;<br />};<br />void main( void )<br />{<br />Point::init();<br />}<br />濂界殑錛岃繖鏍峰氨涓嶄細鏈変換浣曢敊璇傝繖鏈緇堣繕鏄竴涓唴瀛樻ā鍨嬬殑闂錛?br />浠諱綍鍙橀噺鍦ㄥ唴瀛樹腑鏈変簡鑷繁鐨勭┖闂村悗錛屽湪鍏朵粬鍦版柟鎵嶈兘琚皟鐢紝鍚﹀垯灝變細鍑洪敊銆?br />濂界殑鍐嶇湅鐪嬩笅闈㈢殑渚嬪瓙:<br />#include <iostream.h><br />class Point<br />{<br />public:<br />void output()<br />{ <br />}<br />static void init()<br />{ <br />聽聽 x = 0;<br />聽聽 y = 0;<br />}<br />private:<br />static int x;<br />static int y;<br />};<br />void main( void )<br />{<br />Point::init();<br />}<br />緙栬瘧錛?br />Linking...<br />test.obj : error LNK2001: unresolved external symbol "private: static int Point::y" <br />test.obj : error LNK2001: unresolved external symbol "private: static int Point::x" <br />Debug/Test.exe : fatal error LNK1120: 2 unresolved externals<br />鎵ц link.exe 鏃跺嚭閿?<br />鍙互鐪嬪埌緙栬瘧娌℃湁閿欒錛岃繛鎺ラ敊璇紝榪欏張鏄負浠涔堝憿錛?br />榪欐槸鍥犱負闈欐佺殑鎴愬憳鍙橀噺瑕佽繘琛屽垵濮嬪寲錛屽彲浠ヨ繖鏍鳳細<br />#include <iostream.h>////////////////////////(榪欐浠g爜榪樻湁鐤戦棶錛宨nit()涓殑x, y 鍜宻tatic 鐨剎 ,y 鏈夎仈緋誨悧錛?<br />class Point<br />{<br />public:<br />void output()<br />{ <br />}<br />static void init()<br />{ <br />聽聽 x = 0;<br />聽聽 y = 0;<br />}<br />private:<br />static int x;<br />static int y;<br />};<br />int Point::x = 0;<br />int Point::y = 0;<br />void main( void )<br />{<br />Point::init();<br />}<br />鍦ㄩ潤鎬佹垚鍛樻暟鎹彉閲忓垵濮嬪寲涔嬪悗灝變笉浼氬嚭鐜扮紪璇戦敊璇簡銆?br />鍐嶇湅鐪嬩笅闈㈢殑浠g爜錛?br />#include <iostream.h><br />class Point<br />{<br />public:<br />void output()<br />{ <br />}<br />static void init()<br />{ <br />聽聽 x = 0;<br />聽聽 y = 0;<br />}<br />private:<br />static int x;<br />static int y;<br />};<br />void main( void )<br />{<br />}<br />緙栬瘧娌℃湁閿欒錛屼負浠涔堬紵<br />鍗充嬌浠栦滑娌℃湁鍒濆鍖栵紝鍥犱負鎴戜滑娌℃湁璁塊棶x錛寉錛屾墍浠ョ紪璇戜笉浼氬嚭閿欍偮犅?/p> <p> </p> <p> <font size="2">C++浼氬尯鍒嗕袱縐嶇被鍨嬬殑鎴愬憳鍑芥暟錛氶潤鎬佹垚鍛樺嚱鏁板拰闈為潤鎬佹垚鍛樺嚱鏁般傝繖涓よ呬箣闂寸殑涓涓噸澶у尯鍒槸錛岄潤鎬佹垚鍛樺嚱鏁頒笉鎺ュ彈闅愬惈鐨?em>this</em>鑷彉閲忋傛墍浠ワ紝瀹冨氨鏃犳硶璁塊棶鑷繁綾葷殑闈為潤鎬佹垚鍛樸?/font> </p> <p> <font size="2">鍦ㄦ煇浜涙潯浠朵笅錛屾瘮濡傝鍦ㄤ嬌鐢ㄨ濡俻thread錛堝畠涓嶆敮鎸佺被錛夋綾葷殑澶氱嚎紼嬪簱鏃訛紝灝卞繀欏諱嬌鐢ㄩ潤鎬佺殑鎴愬憳鍑芥暟錛屽洜涓哄叾鍦板潃鍚孋璇█鍑芥暟鐨勫湴鍧鍏煎銆傝繖縐嶉摐闄愬埗灝辮揩浣跨▼搴忓憳瑕佸埄鐢ㄥ悇縐嶈В鍐沖姙娉曟墠鑳藉浠庨潤鎬佹垚鍛樺嚱鏁拌闂埌闈為潤鎬佹暟鎹垚鍛樸?/font> </p> <p> <font size="2">絎竴涓В鍐沖姙娉曟槸澹版槑綾葷殑鎵鏈夋暟鎹垚鍛橀兘鏄潤鎬佺殑銆傝繍鐢ㄨ繖縐嶆柟寮忕殑璇濓紝闈欐佺殑鎴愬憳鍑芥暟灝辮兘澶熺洿鎺ュ湴璁塊棶瀹冧滑錛屼緥濡傦細</font> </p> <p> <font size="2"> <font color="#0066ff">class Singleton<br />{<br />public:<br />聽聽 static Singleton * instance();<br />private:<br />聽聽 Singleton * p;<br />聽聽 static Lock lock;<br />};</font> <br /> <br /> </font> <font color="#0066ff" size="2">Singleton * Singleton::instance()<br />{<br />lock.getlock(); <font color="#006600">// fine, lock is static</font><br />if (!p)<br />聽聽 p=new Singleton;<br />lock.unlock();<br />return p;<br />} </font> </p> <p> <font size="2">榪欑瑙e喅鏂規硶涓嶉傜敤浜庨渶瑕佷嬌鐢ㄩ潪闈欐佹暟鎹垚鍛樼殑綾匯?/font> </p> <p> <font size="2">璁塊棶闈為潤鎬佹暟鎹垚鍛?/font> </p> <p> <font size="2">灝嗗弬鐓т紶閫掔粰闇瑕佽冮噺鐨勫璞¤兘澶熻闈欐佺殑鎴愬憳鍑芥暟璁塊棶鍒板璞$殑闈為潤鎬佹暟鎹細</font> </p> <p> <font color="#0066ff" size="2">class A<br />{<br />public:<br />聽聽 static void func(A & obj);<br />聽聽 intgetval() const; <font color="#006600">//<strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,153,153)">non-static</strong><strong style="COLOR: white; BACKGROUND-COLOR: rgb(0,170,0)">member</strong><strong style="COLOR: white; BACKGROUND-COLOR: rgb(136,104,0)">function</strong></font><br />private:<br />intval;<br />}; </font> </p> <p> <font size="2">闈欐佹垚鍛樺嚱鏁癴unc()浼氫嬌鐢ㄥ弬鐓?em>obj</em>鏉ヨ闂潪闈欐佹垚鍛?em>val</em>銆?/font> </p> <p> <font color="#0066ff" size="2">voidA::func(A & obj)<br />{<br />聽聽 int n = obj.getval();<br />} </font> </p> <p> <font size="2">灝嗕竴涓弬鐓ф垨鑰呮寚閽堜綔涓洪潤鎬佹垚鍛樺嚱鏁扮殑鑷彉閲忎紶閫掞紝灝辨槸鍦ㄦā浠胯嚜鍔ㄤ紶閫掗潪闈欐佹垚鍛樺嚱鏁伴噷<em>this</em>鑷彉閲忚繖涓琛屼負銆?/font> </p> <img src ="http://m.shnenglu.com/Lee/aggbug/77101.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2009-03-19 06:36 <a href="http://m.shnenglu.com/Lee/archive/2009/03/19/77101.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>榛樿鐢熸垚鐨勫嚱鏁板拰灞忚斀瀹冧滑鐨勬柟娉?/title><link>http://m.shnenglu.com/Lee/archive/2009/03/19/77100.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Wed, 18 Mar 2009 21:17:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2009/03/19/77100.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/77100.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2009/03/19/77100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/77100.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/77100.html</trackback:ping><description><![CDATA[濡傛灉浣犲彧鏄0鏄庝竴涓┖綾伙紝涓嶅仛浠諱綍浜嬫儏鐨勮瘽錛岀紪璇戝櫒浼氳嚜鍔ㄤ負浣犵敓鎴愪竴涓粯璁ゆ瀯閫犲嚱鏁般佷竴涓嫹璐濋粯璁ゆ瀯閫犲嚱鏁般佷竴涓粯璁ゆ嫹璐濊祴鍊兼搷浣滅鍜屼竴涓粯璁ゆ瀽鏋勫嚱鏁般?font color="#008080"><strong>榪欎簺鍑芥暟鍙湁鍦ㄧ涓嬈¤璋冪敤鏃訛紝鎵嶄細鍒紪璇戝櫒鍒涘緩銆傛墍鏈夎繖浜涘嚱鏁伴兘鏄痠nline鍜宲ublic鐨勩?/strong></font><br /><br /><font color="#008080"><strong>榛樿鐨勬瀽鏋勫嚱鏁版槸闈炶櫄鍑芥暟</strong></font>錛堥櫎闈炲熀綾繪湁鑷繁澹版槑鐨勮櫄鏋愭瀯鍑芥暟錛夈?font color="#008080"><strong>鑰屾嫹璐濋粯璁ゆ瀯閫犲嚱鏁板拰榛樿鎷瘋礉璧嬪兼搷浣滅鐭ヨ瘑鏄崟綰皢鏉ユ簮瀵硅薄鐨勬瘡涓涓潪闈欐佹垚鍛樻嫹璐濆埌瀵硅薄鐩爣涓紙bitwise copy錛夈?/strong></font><br /><br />鍏朵腑鐨勯粯璁ゆ嫹璐濊祴鍊兼搷浣滅鍙湁鍦ㄧ敓鎴愮殑浠g爜鍚堟硶騫朵笖鏈夋満浼氳瘉鏄庡畠鏈夋剰涔夊瓨鍦ㄦ椂鎵嶄細鐢熸垚銆傝繖灝辮鏄庯紝<font color="#008080"><strong>濡傛灉浣犳墦綆楀湪涓涓滃唴鍚紩鐢ㄦ垚鍛樷濇垨鑰呪滃唴鍚玞onst鎴愬憳鈥濈殑綾誨唴鏀寔璧嬪兼搷浣滐紝灝卞繀欏誨畾涔夎嚜宸辯殑榛樿鎷瘋礉璧嬪兼搷浣滅銆?/strong></font>鍥犱負C++鏈韓涓嶅厑璁稿紩鐢ㄦ敼鎸囦笉鍚岀殑瀵硅薄錛屼篃涓嶅厑璁告洿鏀筩onst鎴愬憳銆?br /><br />鏈鍚庝竴縐嶆儏鍐碉紝<font color="#008080"><strong>褰撳熀綾誨皢鑷繁鐨勯粯璁ゆ嫹璐濊祴鍊兼搷浣滅澹版槑涓簆rivate鏃訛紝瀛愮被灝變笉浼氫駭鐢熻嚜宸辯殑鐨勯粯璁ゆ嫹璐濊祴鍊兼搷浣滅銆?/strong></font>鍥犱負鍋囧浜х敓浜嗚繖鏍風殑榛樿鎷瘋礉璧嬪兼搷浣滅錛屽畠浼氳瘯鐫鍘昏皟鐢ㄥ熀綾葷殑榛樿鎷瘋礉璧嬪兼搷浣滅鍘誨鐞嗗熀綾葷殑閮ㄥ垎錛屼笉騫哥殑鏄紝瀹冩病鏈夋潈鍒┿?br /><br />浣犲彲浠ュ皢鎷瘋礉鏋勯犲嚱鏁版垨榛樿鎷瘋礉璧嬪兼搷浣滅澹版槑涓簆rivate銆傝繖鏍鋒槑紜0鏄庝竴涓垚鍛樺嚱鏁幫紝灝遍樆姝簡緙栬瘧鍣ㄦ殫鑷垱寤虹殑榛樿鐗堟湰錛岃岃繖浜涘嚱鏁頒負private錛屼嬌寰楀彲浠ユ垚鍔熼樆姝漢浠皟鐢ㄥ畠銆?br /><br />涓婇潰鐨勫仛娉曟湁涓涓殣鎮o紝鍥犱負綾昏嚜韜殑member鍜宖riend榪樻槸鍙互璋冪敤榪欎簺private鍑芥暟銆傛湁涓涓緢鍒侀捇鐨勬柟娉曪紝鈥?font color="#008080"><strong>灝嗘垚鍛樺嚱鏁板0鏄庝負private鑰屼笖鏁呮剰涓嶅疄鐜板畠浠?/strong></font>鈥濓紝榪欐牱鏃㈤樆姝簡榛樿鍑芥暟鐨勭敓鎴愶紝鑰屼笖濡傛灉浣犺瘯鐫璋冪敤榪欎簺鍑芥暟錛屽氨浼氬緱鍒頒竴涓摼鎺ラ敊璇傚彧澹版槑錛屼笉瀹氫箟錛岄摼鎺ュ櫒鎶ラ敊銆傜敋鑷沖湪澹版槑鐨勬椂鍊欙紝浣犺繛鍙傛暟涔熶笉鐢ㄥ啓銆?br /><br />鑰岃瘯鐫灝嗕笂榪扮殑閾炬帴鍣ㄩ敊璇彁鍓嶅埌緙栬瘧鍣ㄤ篃鏄彲浠ョ殑銆傛垜浠笓闂ㄨ璁′竴涓被Unconpyable銆?br />--------------------------------------------------------------------<br />class Uncopybale {<br />protected:<br />聽聽聽 Uncopyable() {}<br />聽聽聽 ~Uncopyable() {}<br />private:<br />聽聽聽 Ucopyable(const Uncopyable&)<br />聽聽聽 Uncopyable& operator=(const Uncopyable&)<br />};<br />--------------------------------------------------------------------<br />涓轟簡闃繪瀵硅薄琚嫹璐濓紝<font color="#008080"><strong>鎴戜滑鍞竴闇瑕佸仛鐨勫氨鏄戶鎵縐ncopyable</strong></font>銆傝繖浜涘嚱鏁扮殑榛樿鐢熸垚鐗堟湰浼氬皾璇曡皟鐢ㄥ叾鍩虹被鐨勫搴旂増鏈紝閭d簺璋冪敤浼氳緙栬瘧鍣ㄦ嫆緇濓紝鍥犱負瀹冨熀綾葷殑鎷瘋礉鍑芥暟鏄痯rivate銆?br /><br />Boost鎻愪緵鐨刵oncopyable綾諱篃鏈夌被浼肩殑鍔熻兘銆?br /><br /><font style="BACKGROUND-COLOR: rgb(0,128,128)" color="#ffffff"><strong>蹇犲憡錛?br /><br />涓轟簡椹沖洖緙栬瘧鍣ㄨ嚜鍔ㄦ彁渚涚殑鎶鑳斤紝鍙皢鐩稿簲鐨勬垚鍛樺嚱鏁板0鏄庝負private騫朵笖涓嶄簣瀹炵幇銆備嬌鐢ㄥ儚Uncopyable榪欐牱鐨勫熀綾諱篃鏄竴縐嶅仛娉曘?/strong></font><img src ="http://m.shnenglu.com/Lee/aggbug/77100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2009-03-19 05:17 <a href="http://m.shnenglu.com/Lee/archive/2009/03/19/77100.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C/C++ 鏍囧噯緙栫▼ 涔?綾誨瀷杞崲http://m.shnenglu.com/Lee/archive/2009/03/09/76028.htmlDavid LeeDavid LeeMon, 09 Mar 2009 13:34:00 GMThttp://m.shnenglu.com/Lee/archive/2009/03/09/76028.htmlhttp://m.shnenglu.com/Lee/comments/76028.htmlhttp://m.shnenglu.com/Lee/archive/2009/03/09/76028.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/76028.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/76028.html

涓銆佽嚜鍔ㄧ被鍨嬭漿鎹?/strong>

聽聽聽 涓鑸潵璇達紝鍚屼竴鍙ヨ鍙ユ垨琛ㄨ揪寮忓簲璇ヤ嬌鐢ㄥ悓涓縐嶇被鍨嬬殑鍙橀噺鍜屽父閲忋傚鏋滀嬌鐢ㄤ簡澶氱綾誨瀷鐨勫彉閲忓拰甯擱噺錛堢被鍨嬫販鐢級錛孋 浼氳嚜鍔ㄦ妸瀹冧滑杞崲鎴愬悓涓縐嶇被鍨嬨傝嚜鍔ㄧ被鍨嬭漿鎹負鎴戜滑鍐欑▼搴忔彁渚涗簡鏂逛究錛屽嵈涔熷甫鏉ヤ簡鍗辨満銆傚洜綺楀績澶ф剰鑰岄犳垚鐨勭被鍨嬫販鐢ㄤ篃璁鎬細瀵艱嚧紼嬪簭榪愯鍑洪敊銆備互涓嬫槸鑷姩綾誨瀷杞崲鐨勫熀鏈鍒欙細

聽聽聽 1. 鍦ㄨ〃杈懼紡涓紝char 鍜?short 綾誨瀷鐨勫鹼紝鏃犺鏈夌鍙瘋繕鏄棤絎﹀彿錛岄兘浼氳嚜鍔ㄨ漿鎹㈡垚 int 鎴栬?unsigned int錛堝鏋?short 鐨勫ぇ灝忓拰 int 涓鏍鳳紝unsigned short 鍙〃紺虹殑鏈澶у煎氨澶т簬 int錛屽湪榪欑鎯呭喌涓嬶紝unsigned short 琚漿鎹㈡垚 unsigned int錛夈傚洜涓哄畠浠杞崲鎴愯〃紺鴻寖鍥存洿澶х殑綾誨瀷錛屾晠鑰屾垜浠妸榪欑杞崲縐頒箣涓衡?strong>鍗囩駭錛?font color="#990000">promotion錛夆濄?/p>

聽聽聽 2. 鎸夌収浠庨珮鍒頒綆鐨勯『搴忕粰鍚勭鏁版嵁綾誨瀷鍒嗙瓑綰э紝渚濇涓猴細long double, double, float, unsigned long long, long long, unsigned long, long, unsigned int 鍜?int銆傝繖閲屾湁涓涓皬灝忕殑渚嬪錛屽鏋?long 鍜?int 澶у皬鐩稿悓錛屽垯 unsigned int 鐨勭瓑綰у簲浣嶄簬 long 涔嬩笂銆俢har 鍜?short 騫舵病鏈夊嚭鐜頒簬榪欎釜絳夌駭鍒楄〃錛屾槸鍥犱負瀹冧滑鍙備笌榪愮畻鏃跺氨搴旇宸茬粡琚崌綰ф垚浜?int 鎴栬?unsigned int銆?/p>

聽聽聽 3. 鍦ㄤ換浣曟秹鍙婁袱縐嶆暟鎹被鍨嬬殑鎿嶄綔涓紝瀹冧滑涔嬮棿絳夌駭杈冧綆鐨勭被鍨嬩細琚漿鎹㈡垚絳夌駭杈冮珮鐨勭被鍨嬨?/p>

聽聽聽 4. 鍦ㄨ祴鍊艱鍙ヤ腑錛? 鍙寵竟鐨勫煎湪璧嬩簣 = 宸﹁竟鐨勫彉閲忎箣鍓嶏紝棣栧厛瑕佸皢鍙寵竟鐨勫肩殑鏁版嵁綾誨瀷杞崲鎴愬乏杈瑰彉閲忕殑綾誨瀷銆備篃灝辨槸璇達紝宸﹁竟鍙橀噺鏄粈涔堟暟鎹被鍨嬶紝鍙寵竟鐨勫煎氨瑕佽漿鎹㈡垚浠涔堟暟鎹被鍨嬬殑鍊箋傝繖涓繃紼嬪彲鑳藉鑷村彸杈圭殑鍊肩殑綾誨瀷鍗囩駭錛屼篃鍙兘瀵艱嚧鍏剁被鍨?strong>闄嶇駭錛?font color="#990000">demotion錛夈傛墍璋撯滈檷綰р濓紝鏄寚絳夌駭杈冮珮鐨勭被鍨嬭杞崲鎴愮瓑綰ц緝浣庣殑綾誨瀷銆?/p>

聽聽聽 5. 浣滀負鍙傛暟浼犻掔粰鍑芥暟鏃訛紝char 鍜?short 浼氳杞崲鎴?int錛宖loat 浼氳杞崲鎴?double銆備嬌鐢ㄥ嚱鏁板師鍨嬪彲浠ラ伩鍏嶈繖縐嶈嚜鍔ㄥ崌綰с傝繖鐐規垜浠ュ悗浼氳緇嗚瑙c?/p>

聽聽聽 綾誨瀷鍗囩駭閫氬父涓嶄細鏈変粈涔堥棶棰橈紝浣嗘槸綾誨瀷闄嶇駭鍗翠細甯︽潵涓嶅皯闂銆備緥濡傦細

聽聽聽聽聽聽聽 char ch = 1222;

1222 闄嶇駭涓?char錛屼絾 char 鏃犳硶琛ㄧず 1222銆傚啀濡傦細

聽聽聽聽聽聽聽 int j = 22.2;

22.2 闄嶇駭涓?int錛屽皬鏁伴儴鍒嗚鎴柇銆?/p>


浜屻佺被鍨嬭漿鎹㈣繍綆楃

聽聽聽 浣跨敤綾誨瀷杞崲榪愮畻絎﹀彲浠ユ寚瀹氭垜浠兂瑕佽繘琛岀殑綾誨瀷杞崲銆傜被鍨嬭漿鎹㈣繍綆楃鐢辨嫭鍙峰拰綾誨瀷鍚嶇粍鎴愶細

聽聽聽聽聽聽聽 (type)

鍏朵腑錛屾垜浠簲璇ョ敤鎴戜滑鎯寵漿鎹㈡垚鐨勭被鍨嬫浛鎹㈡帀 type錛屼緥濡傦細(long), (unsigned long)銆?/p>

聽聽聽 綾誨瀷杞崲榪愮畻絎﹀簲璇ユ斁鍦ㄥ肩殑鍓嶉潰錛?/p>

聽聽聽聽聽聽聽 int i = (int)1.1 + (int)2.2;

1.1 鍦ㄥ姞娉曡繍綆楀墠灝卞洜涓虹被鍨嬭漿鎹㈣繍綆楃鑰岄檷綰т負 int錛屽叾鍊煎彉涓?1銆傜被浼煎湴錛?.2 涔熼檷綰т負 int錛屽叾鍊煎彉涓?2銆傚張濡傦細

聽聽聽聽聽聽聽 int j = 20;
聽聽聽聽聽聽聽 double k = (double)j;

j 鐨勫艱杞崲鎴?double錛岀劧鍚庣敤浜庡垵濮嬪寲 k銆?/p>


涓夈佸皬渚嬪瓙

聽聽聽 #include <stdio.h>

聽聽聽 int main(void)
聽聽聽 {
聽聽聽聽聽聽聽 char ch;
聽聽聽聽聽聽聽 int i;
聽聽聽聽聽聽聽 float fl;
聽聽聽聽聽聽聽 double db;

聽聽聽聽聽聽聽 db = fl = i = ch = 'C';聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 /* 10 */
聽聽聽聽聽聽聽 printf("ch=%c, i=%d, fl=%2.2f, db=%2.2f\n", ch, i, fl, db);

聽聽聽聽聽聽聽 ch = ch + 1;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 /* 13 */
聽聽聽聽聽聽聽 i = db + fl + 2 * ch;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 /* 14 */
聽聽聽聽聽聽聽 fl = 2.0 * ch + i;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 /* 15 */
聽聽聽聽聽聽聽 db = 22 * i + ch - fl;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 /* 16 */
聽聽聽聽聽聽聽 printf("ch=%c, i=%d, fl=%2.2f, db=%2.2f\n", ch, i, fl, db);

聽聽聽聽聽聽聽 i = 666.6 + 777.7;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 /* 19 */
聽聽聽聽聽聽聽 printf("Now i = %d\n", i);
聽聽聽聽聽聽聽 i = (int)666.6 + (int)777.7;聽聽聽聽聽聽聽聽聽聽聽 /* 21 */
聽聽聽聽聽聽聽 printf("Now i = %d\n", i);

聽聽聽聽聽聽聽 return 0;
聽聽聽 }

鎴戠殑緋葷粺涓紝char 鏄?8 浣嶇殑錛宨nt 鏄?32 浣嶇殑銆傝緭鍑轟負錛?/p>

聽聽聽 ch=C, i=67, fl=67.00, db=67.00
聽聽聽 ch=D, i=270, fl=406.00, db=5602.00
聽聽聽 Now i = 1444
聽聽聽 Now i = 1443

絎?10 琛岋紝'C' 鐨勫艱杞崲涓?char錛岀劧鍚庤祴鍊肩粰 ch銆俢h 鐨勫艱杞崲鎴?int錛岀劧鍚庤祴鍊肩粰 i銆備互姝ょ被鎺ㄣ?/p>

絎?13 琛岋紝= 鍙寵竟鐨?ch 鐨勫煎厛琚漿鎹㈡垚 int錛岀劧鍚庡拰 1 鐩稿姞錛屽緱鍒?32 浣嶇殑 int 綾誨瀷鏁存暟 68銆傛渶鍚庯紝68 闄嶇駭涓?char錛岀劧鍚庤祴鍊肩粰 ch銆傚湪 ASCII 涓紝D 鐨勭紪鐮佹槸 68銆?/p>

絎?14 琛岋紝ch 鐨勫艱杞崲鎴?int錛岀劧鍚庡拰 2 鐩鎬箻寰?136銆俧l 鐨勫艱杞崲鎴?double錛岀劧鍚庡拰 db 鐩稿姞錛屽叾鍜屽啀涓庤漿鎹㈡垚 double 鐨?136 鐩稿姞寰?270.0 銆傛渶鍚庯紝270.0 琚漿鎹㈡垚 int錛岀劧鍚庤祴鍊肩粰 i銆?/p>

絎?15 琛岋紝ch 鐨勫艱杞崲鎴?double錛岀劧鍚庡拰 2.0 鐩鎬箻錛宨 鐨勫艱杞崲鎴?double錛岀劧鍚庡拰鍓嶉潰寰楀埌鐨勪箻縐浉鍔狅紝鐩稿姞鐨勫緱鏁拌杞崲鎴?float錛岀劧鍚庤祴鍊肩粰 fl銆?/p>

絎?16 琛岋紝22 鍜?i 鐩鎬箻寰?5940錛宑h 鐨勫艱杞崲鎴?int錛岀劧鍚庡拰 5940 鐩稿姞寰?6008錛岀劧鍚庯紝6008 琚漿鎹㈡垚 float錛屽啀鍜?fl 鐩稿噺寰?5602.0f錛屾渶鍚?5602.0f 琚漿鎹㈡垚 double錛屽啀璧嬪肩粰 db銆?/p>

絎?19 琛岋紝666.6 鍜?777.7 鐩稿姞寰?1444.3錛岀劧鍚?1444.3 琚檷綰ф垚 int錛屽啀璧嬪肩粰 i銆?/p>

絎?21 琛岋紝綾誨瀷杞崲榪愮畻絎︽妸 666.6 鍜?777.7 杞崲涓?int錛屽緱 666 鍜?777錛屽畠浠浉鍔犲緱 1443錛屾渶鍚庯紝1443 琚祴鍊肩粰 i銆?/p>

娉ㄦ剰錛?font color="#ff0000">綾誨瀷杞崲鏀瑰彉鐨勬槸鍊肩殑綾誨瀷錛岃屼笉鏄璞$殑綾誨瀷錛屽璞$殑綾誨瀷鑷鑷崇粓閮芥槸涓嶅彉鐨?/font>銆備緥濡傦細

聽聽聽 i = fl + ch;

ch 鐨勫艱杞崲鎴?float錛岃?ch 鏈韓浠嶇劧鏄?char 綾誨瀷鐨勫彉閲忋?/p>

鍙傝冭祫鏂?/strong>錛欳 Primer 5th Edition
聽聽聽聽聽聽聽聽聽聽The C Programming Language 2nd Edition
聽聽聽聽聽聽聽聽聽 C99 鏍囧噯



David Lee 2009-03-09 21:34 鍙戣〃璇勮
]]>
new/delete 鍜宮alloc/free 鐨勫尯鍒紙緇煎悎杞笘錛?/title><link>http://m.shnenglu.com/Lee/archive/2009/03/09/75990.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Mon, 09 Mar 2009 08:18:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2009/03/09/75990.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/75990.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2009/03/09/75990.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/75990.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/75990.html</trackback:ping><description><![CDATA[ <p> <strong>鐩稿悓鐐?/strong>錛氶兘鍙敤浜庣敵璇峰姩鎬佸唴瀛樺拰閲婃斁鍐呭瓨</p> <p> <strong>涓嶅悓鐐?/strong>錛?br />(<strong>1)鎿嶄綔瀵硅薄鏈夋墍涓嶅悓</strong>銆?br />malloc涓巉ree鏄疌++/C 璇█鐨勬爣鍑嗗簱鍑芥暟錛宯ew/delete 鏄疌++鐨勮繍綆楃銆傚浜庨潪鍐呴儴鏁版嵁綾葷殑瀵硅薄鑰岃█錛屽厜鐢╩aloc/free 鏃犳硶婊¤凍鍔ㄦ佸璞$殑瑕佹眰銆傚璞″湪鍒涘緩鐨勫悓鏃惰鑷姩鎵ц鏋勯犲嚱鏁幫紝 瀵硅薄娑堜骸涔嬪墠瑕佽嚜鍔ㄦ墽琛屾瀽鏋勫嚱鏁般傜敱浜巑alloc/free 鏄簱鍑芥暟鑰屼笉鏄繍綆楃錛屼笉鍦ㄧ紪璇戝櫒鎺у埗鏉冮檺涔嬪唴錛屼笉鑳藉鎶婃墽琛屾瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟鐨勪換鍔″己鍔爉alloc/free銆?/p> <p> <strong>(2)鍦ㄧ敤娉曚笂涔熸湁鎵涓嶅悓</strong>銆?br />鍑芥暟malloc 鐨勫師鍨嬪涓嬶細<br /><strong>void * malloc(size_t size);</strong><br />鐢╩alloc 鐢寵涓鍧楅暱搴︿負length 鐨勬暣鏁扮被鍨嬬殑鍐呭瓨錛岀▼搴忓涓嬶細<br />int *p = (int *) malloc(sizeof(int) * length);<br />鎴戜滑搴斿綋鎶婃敞鎰忓姏闆嗕腑鍦ㄤ袱涓绱犱笂錛氣滅被鍨嬭漿鎹⑩濆拰鈥渟izeof鈥濄?br />魛倠 malloc 榪斿洖鍊肩殑綾誨瀷鏄痸oid *錛屾墍浠ュ湪璋冪敤malloc 鏃惰鏄懼紡鍦拌繘琛岀被鍨嬭漿鎹紝灝唙oid * 杞崲鎴愭墍闇瑕佺殑鎸囬拡綾誨瀷銆?br />魛倠 malloc 鍑芥暟鏈韓騫朵笉璇嗗埆瑕佺敵璇風殑鍐呭瓨鏄粈涔堢被鍨嬶紝瀹冨彧鍏沖績鍐呭瓨鐨勬誨瓧鑺傛暟銆?/p> <p>鍑芥暟free 鐨勫師鍨嬪涓嬶細<br /><strong>void free( void * memblock );</strong><br />涓轟粈涔坒ree 鍑芥暟涓嶈薄malloc 鍑芥暟閭f牱澶嶆潅鍛紵榪欐槸鍥犱負鎸囬拡p 鐨勭被鍨嬩互鍙婂畠鎵鎸囩殑鍐呭瓨鐨勫閲忎簨鍏堥兘鏄煡閬撶殑錛岃鍙ree(p)鑳芥紜湴閲婃斁鍐呭瓨銆傚鏋減 鏄疦ULL 鎸囬拡錛岄偅涔坒ree </p> <p>瀵筽 鏃犺鎿嶄綔澶氬皯嬈¢兘涓嶄細鍑洪棶棰樸傚鏋減 涓嶆槸NULL 鎸囬拡錛岄偅涔坒ree 瀵筽榪炵畫鎿嶄綔涓ゆ灝變細瀵艱嚧紼嬪簭榪愯閿欒銆?/p> <p> <strong>new/delete 鐨勪嬌鐢ㄨ鐐?br /></strong>榪愮畻絎ew 浣跨敤璧鋒潵瑕佹瘮鍑芥暟malloc 綆鍗曞緱澶氾紝渚嬪錛?br />int *p1 = (int *)malloc(sizeof(int) * length);<br />int *p2 = new int[length];<br />榪欐槸鍥犱負new 鍐呯疆浜唖izeof銆佺被鍨嬭漿鎹㈠拰綾誨瀷瀹夊叏媯鏌ュ姛鑳姐傚浜庨潪鍐呴儴鏁版嵁綾誨瀷鐨勫璞¤岃█錛宯ew 鍦ㄥ垱寤哄姩鎬佸璞$殑鍚屾椂瀹屾垚浜嗗垵濮嬪寲宸ヤ綔銆傚鏋滃璞℃湁澶氫釜鏋勯犲嚱鏁幫紝閭d箞new 鐨勮鍙ヤ篃鍙互鏈夊縐嶅艦寮忋?/p> <p>濡傛灉鐢╪ew 鍒涘緩瀵硅薄鏁扮粍錛岄偅涔堝彧鑳戒嬌鐢ㄥ璞$殑鏃犲弬鏁版瀯閫犲嚱鏁般備緥濡?br />Obj *objects = new Obj[100]; // 鍒涘緩100 涓姩鎬佸璞?br />涓嶈兘鍐欐垚<br />Obj *objects = new Obj[100](1);// 鍒涘緩100 涓姩鎬佸璞$殑鍚屾椂璧嬪垵鍊?<br />鍦ㄧ敤delete 閲婃斁瀵硅薄鏁扮粍鏃訛紝鐣欐剰涓嶈涓簡絎﹀彿鈥榌]鈥欍備緥濡?br />delete []objects; // 姝g‘鐨勭敤娉?br />delete objects; // 閿欒鐨勭敤娉?br />鍚庤呯浉褰撲簬delete objects[0]錛屾紡鎺変簡鍙﹀99 涓璞°?br />/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br /><br /><br />顥ヮ棩1聽 new鑷姩璁$畻闇瑕佸垎閰嶇殑絀洪棿錛岃宮alloc闇瑕佹墜宸ヨ綆楀瓧鑺傛暟<br />顥ヮ棩2 聽new鏄被鍨嬪畨鍏ㄧ殑錛岃宮alloc涓嶆槸錛屾瘮濡傦細<br />顥ヮ棩int* p = new float[2]; // 緙栬瘧鏃舵寚鍑洪敊璇?br />顥ヮ棩int* p = malloc(2*sizeof(float)); // 緙栬瘧鏃舵棤娉曟寚鍑洪敊璇?br />顥ヮ棩new operator 鐢變袱姝ユ瀯鎴愶紝鍒嗗埆鏄?operator new 鍜?construct<br />顥ヮ棩3 聽operator new瀵瑰簲浜巑alloc錛屼絾operator new鍙互閲嶈澆錛屽彲浠ヨ嚜瀹氫箟鍐呭瓨鍒嗛厤絳栫暐錛岀敋鑷充笉鍋氬唴瀛樺垎閰嶏紝鐢氳嚦鍒嗛厤鍒伴潪鍐呭瓨璁懼涓娿傝宮alloc鏃犺兘涓哄姏<br />顥ヮ棩4聽 new灝嗚皟鐢╟onstructor錛岃宮alloc涓嶈兘錛沝elete灝嗚皟鐢╠estructor錛岃宖ree涓嶈兘銆?br />顥ヮ棩5 聽malloc/free瑕佸簱鏂囦歡鏀寔錛宯ew/delete鍒欎笉瑕併?<br />/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br /><br />1. 鏈川鍖哄埆<br />malloc/free鏄疌/C++璇█鐨勬爣鍑嗗簱鍑芥暟錛宯ew/delete鏄疌++鐨勮繍綆楃銆?br />瀵逛簬鐢ㄦ埛鑷畾涔夌殑瀵硅薄鑰岃█錛岀敤maloc/free鏃犳硶婊¤凍鍔ㄦ佺鐞嗗璞$殑瑕佹眰銆傚璞″湪鍒涘緩鐨勫悓鏃惰鑷姩鎵ц鏋勯犲嚱鏁幫紝瀵硅薄鍦ㄦ秷浜′箣鍓嶈鑷姩鎵ц鏋愭瀯鍑芥暟銆傜敱浜巑alloc/free鏄簱鍑芥暟鑰屼笉鏄繍綆楃錛屼笉鍦ㄧ紪璇戝櫒鎺у埗鏉冮檺涔嬪唴錛屼笉鑳藉鎶婃墽琛屾瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟鐨勪換鍔″己鍔犱簬malloc/free銆傚洜姝++闇瑕佷竴涓兘瀹屾垚鍔ㄦ佸唴瀛樺垎閰嶅拰鍒濆鍖栧伐浣滅殑榪愮畻絎ew錛屼互鍙婁竴涓兘瀹屾垚娓呯悊涓庨噴鏀懼唴瀛樺伐浣滅殑榪愮畻絎elete銆?br /><br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000">聽Obj<br />{<br /></span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽:<br />聽聽聽聽聽聽Obj(</span> <span style="COLOR: #000000">) {聽cout聽</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">聽鈥淚nitialization鈥澛?/span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">聽endl;聽}<br />聽聽聽聽聽聽</span> <span style="COLOR: #000000">~</span> <span style="COLOR: #000000">Obj(</span> <span style="COLOR: #000000">) {聽cout聽</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">聽鈥淒estroy鈥澛?/span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">聽endl;聽}<br />聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽Initialize(</span> <span style="COLOR: #000000">) {聽cout聽</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">聽鈥淚nitialization鈥澛?/span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">聽endl;聽}<br />聽聽聽聽聽 </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽Destroy(</span> <span style="COLOR: #000000">) {聽cout聽</span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">聽鈥淒estroy鈥澛?/span> <span style="COLOR: #000000"><<</span> <span style="COLOR: #000000">聽endl;聽}<br />};<br /><br /></span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽UseMallocFree(</span> <span style="COLOR: #000000">)<br />{<br />聽聽聽聽聽聽Obj聽聽</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">a聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽(obj聽</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">) malloc( </span> <span style="COLOR: #0000ff">sizeof</span> <span style="COLOR: #000000">( obj ) );聽聽聽聽 </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽allocate memory</span> <span style="COLOR: #008000"> <br /> </span> <span style="COLOR: #000000">聽聽聽聽聽聽a</span> <span style="COLOR: #000000">-></span> <span style="COLOR: #000000">Initialize();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽initialization<br />聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">鈥?/span> <span style="COLOR: #008000"> <br /> </span> <span style="COLOR: #000000">聽聽聽聽聽聽a</span> <span style="COLOR: #000000">-></span> <span style="COLOR: #000000">Destroy();聽聽聽</span> <span style="COLOR: #008000">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽deconstruction</span> <span style="COLOR: #008000"> <br /> </span> <span style="COLOR: #000000">聽聽聽聽聽聽free(a);聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<font color="#008000">// release memory<br /></font></span> <span style="COLOR: #000000">}<br /><br /></span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽UseNewDelete(</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">)<br />{<br />聽聽聽聽Obj聽聽</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">a聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽Obj;聽聽</span> <span style="COLOR: #008000">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000"> <br />聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">鈥?/span> <span style="COLOR: #008000"> <br /> </span> <span style="COLOR: #000000">聽聽聽聽delete聽a;</span> <span style="COLOR: #008000"> <br /> </span> <span style="COLOR: #000000">}</span> </div> <p> <br />綾籓bj鐨勫嚱鏁癐nitialize瀹炵幇浜嗘瀯閫犲嚱鏁扮殑鍔熻兘錛屽嚱鏁癉estroy瀹炵幇浜嗘瀽鏋勫嚱鏁扮殑鍔熻兘銆傚嚱鏁癠seMallocFree涓紝鐢變簬malloc/free涓嶈兘鎵ц鏋勯犲嚱鏁頒笌鏋愭瀯鍑芥暟錛屽繀欏昏皟鐢ㄦ垚鍛樺嚱鏁癐nitialize鍜孌estroy鏉ュ畬鎴愨滄瀯閫犫濅笌鈥滄瀽鏋勨濄傛墍浠ユ垜浠笉瑕佺敤malloc/free鏉ュ畬鎴愬姩鎬佸璞$殑鍐呭瓨綆$悊錛屽簲璇ョ敤new/delete銆傜敱浜庡唴閮ㄦ暟鎹被鍨嬬殑鈥滃璞♀濇病鏈夋瀯閫犱笌鏋愭瀯鐨勮繃紼嬶紝瀵瑰畠浠岃█malloc/free鍜宯ew/delete鏄瓑浠風殑銆?br /><br />2. 鑱旂郴<br />鏃㈢劧new/delete鐨勫姛鑳藉畬鍏ㄨ鐩栦簡malloc/free錛屼負浠涔圕++榪樹繚鐣檓alloc/free鍛紵鍥犱負C++紼嬪簭緇忓父瑕佽皟鐢–鍑芥暟錛岃孋紼嬪簭鍙兘鐢╩alloc/free綆$悊鍔ㄦ佸唴瀛樸傚鏋滅敤free閲婃斁鈥渘ew鍒涘緩鐨勫姩鎬佸璞♀濓紝閭d箞璇ュ璞″洜鏃犳硶鎵ц鏋愭瀯鍑芥暟鑰屽彲鑳藉鑷寸▼搴忓嚭閿欍傚鏋滅敤delete閲婃斁鈥渕alloc鐢寵鐨勫姩鎬佸唴瀛樷濓紝鐞嗚涓婅紼嬪簭涓嶄細鍑洪敊錛屼絾鏄紼嬪簭鐨勫彲璇繪у緢宸傛墍浠ew/delete錛宮alloc/free蹇呴』閰嶅浣跨敤銆?br />///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br /><br /><br /></p> <img src ="http://m.shnenglu.com/Lee/aggbug/75990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2009-03-09 16:18 <a href="http://m.shnenglu.com/Lee/archive/2009/03/09/75990.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞C++璧勬簮涔嬩笉瀹屽叏瀵煎紩錛堝畬鏁寸増錛?/title><link>http://m.shnenglu.com/Lee/archive/2009/02/25/74811.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Tue, 24 Feb 2009 16:26:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2009/02/25/74811.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/74811.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2009/02/25/74811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/74811.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/74811.html</trackback:ping><description><![CDATA[ <p>鏉ユ簮錛?a >www.csdn.net</a><br />鎾版枃錛氭浘姣呫侀櫠鏂?br />澹版槑錛氭湰鏂?004騫?鏈堥鍙戜簬銆奀SDN寮鍙戦珮鎵嬨嬶紝鐗堟潈褰掕鏉傚織涓庛婄▼搴忓憳銆嬫潅蹇楃ぞ<br />鎵鏈夈?br />------------------------------------------------------------------------<br />銆銆1錛屽墠璦</p> <p>銆銆鏃犳暟嬈″惉鍒扳滄垜瑕佸紑濮嬪涔燙++!鈥濈殑鍛愬枈錛屾棤鏁版鍚埌鈥淐++澶鏉備簡錛屾垜鐪熺殑<br />瀛︿笉浼氣濈殑鏃犲銆係tan Lippman鍏堢敓鏇懼湪銆奀++ Primer銆嬩竴涔︿腑鎸囧嚭鈥淐++鏄渶涓洪毦<br />瀛︾殑楂樼駭紼嬪簭璁捐璇█涔嬩竴鈥濓紝浜轟滑甯稿皢鈥滀箣涓鈥濆幓鎺変互琛ㄨ揪鑷繁瀵笴++鐨勬暚鐣忋傝瘹<br />鐒訛紝C++紼嬪簭璁捐璇█瀵逛簬瀛︿範鑰呯殑紜湁寰堝闅句互閫捐秺鐨勯縛娌燂紝浣撶郴緇撴瀯鐨勫簽澶э紝搴?br />鎺ヤ笉鏆囧茍涓嶆柇鎵╁厖鐨勭壒鎬р︹﹂櫎姝や箣澶栵紝鍙傝冭祫鏂欎箣澶氫笌鍐楁潅浣垮畠鐨勫涔犺呮湜鑰屽嵈<br />姝ワ紝嬈叉眰娣卞叆鑰呰嫤涓嶅牚璦銆傚笇鏈涜繖涓浠戒笉瀹屽叏瀵煎紩鑳藉鎴愪負鎮–++瀛︿範涔嬭礬涓婄殑寮曡礬<br />鐏?/p> <p>銆銆鎾板啓鏈枃鐨勫垵琛峰茍涓嶆墦綆楀甫棰嗗ぇ瀹朵綋楠屽彜鑰佺殑C++鍘嗗彶錛屽鏋滀綘鎯充簡瑙++鐨勫巻<br />鍙蹭笌鍏跺墠鏈熷彂灞曚腑璇稿鎶鏈殑婕斿彉錛屼綘搴斿綋鍘誨弬鑰傿jarne鐨勩奣he Design and Evo<br />lution of C++銆嬨傚綋鐒朵篃涓嶆墦綆楃粰澶у涓涓棤鎵涓嶅寘鐨勫疂鍏革紙騫墮潪涓嶆兂錛氬叾涓鏄洜<br />姘村鉤鏈夐檺錛屽叾浜屾棤濂圕++涔嬪崥澶х簿娣憋級錛屾墍緇欏嚭鐨勪粎浠呮槸涓浜涙垜浠涓哄浜庢兂瀛︿範C<br />++鐨勫箍澶ц鑰呮潵璇存渶閲嶈騫朵笖瑙︽墜鍙強鐨勫紑鍙戜笌瀛︿範璧勬簮銆?/p> <p>銆銆鏈枃浠嬬粛騫跺垎鏋愪簡涓浜涚紪璇戝櫒錛屽紑鍙戠幆澧冿紝搴擄紝灝戦噺鐨勪功綾嶄互鍙婂弬鑰冪綉绔欙紝騫?br />涓斿敖鍙兘灝濊瘯鐫緇欏嚭涓涓埄鐢ㄨ繖浜涜祫婧愮殑瀵煎紩錛屾湜瀵瑰鍚屾垜浠竴鏍風殑鍒濆鑰呰兘澶熸湁<br />鎵瑁ㄧ泭銆?/p> <p>-----------------------------------------------------------------------</p> <p>銆銆2錛岀紪璇戝櫒</p> <p>銆銆鍦–++涔嬪鐨勪換浣曡璦涓紝緙栬瘧鍣ㄩ兘浠庢潵娌℃湁鍙楀埌榪囧姝や箣閲嶈銆傚洜涓篊++鏄竴<br />闂ㄧ浉褰撳鏉傜殑璇█錛屾墍浠ョ紪璇戝櫒涔熼毦浜庢瀯寤恒傜洿鍒版渶榪戞垜浠墠寮濮嬭兘澶熶嬌鐢ㄤ笂瀹屽叏<br />絎﹀悎C++鏍囧噯鐨勭紪璇戝櫒錛堝摝錛屼綘鍙兘浼氳矗鎬偅浜涚紪璇戝櫒鍘傚晢涓嶈兘灝芥棭鐨勬彁渚涚鍚堟爣鍑?br />鐨勭紪璇戝櫒錛岃繖鍙兘鎬粬浠悇鑷淮緋葷潃鑷韓鐨勪竴濂楀埆浜轟笉鎰挎帴鍙楃殑鏍囧噯錛夈備粈涔堬紵浣?br />璇磋繖鏃犲叧绱ц錛熷摝錛屼笉錛屼綘鎵闇瑕佺殑鏄拰鏍囧噯鍖朇++楂樺害鍏煎鐨勭紪璇戠幆澧冦傞暱榪滄潵鐪?br />錛屽彧鏈夎繖鏍風殑緙栬瘧鍣ㄥC++寮鍙戜漢鍛樻潵璇存墠鏄渶鏈夋剰涔夌殑宸ュ叿錛屽挨鍏舵槸瀵逛簬紼嬪簭璁捐<br />璇█鐨勫涔犺呫備竴鑷蟲ц浠g爜鍏峰鍙Щ妞嶆э紝騫惰涓闂ㄨ璦鍙婂叾搴撶殑搴旂敤鏇翠負騫挎硾<br />銆傚棷錛屾槸鐨勶紝鎴戜滑榪欓噷鍙墦綆椾粙緇嶄竴浜涘叕璁ょ殑浼樼緙栬瘧鍣ㄣ?/p> <p>銆銆2.1 Borland C++</p> <p>銆銆榪欎釜鏄疊orland C++ Builder鍜孊orland C++ Builder X榪欎袱縐嶅紑鍙戠幆澧冪殑鍚庡彴<br />緙栬瘧鍣ㄣ傦紙鍝︼紝鎴戜箣鎵浠ュ皢涔嬪垎涓轟袱縐嶅紑鍙戠幆澧冧綘搴斿綋鑳芥槑鐧戒負浠涔堬紝姝eDelphi<br />7鍒癉elphi8鐨勮漿鍙橈紝鏄潻鍛芥х殑涓や唬銆傦級Borland C++鐢辮佺墝寮鍙戝伐鍏峰巶鍟咮orland<br />鍊懼姏鎵撻犮傝鍏徃鐨勭紪璇戝櫒绱犱互閫熷害蹇紝絀洪棿鏁堢巼楂樿憲縐幫紝Borland C++ 緋誨垪緙栬瘧<br />鍣ㄧ鎵夸簡榪欎釜浼犵粺錛屽睘浜庨潪甯鎬紭璐ㄧ殑緙栬瘧鍣ㄣ傛爣鍑嗗寲鏂歸潰鏃╁湪5.5鐗堟湰鐨勭紪璇戝櫒涓<br />鏍囧噯鍖朇++鐨勫吋瀹瑰氨杈懼埌浜?2.73%銆傜洰鍓嶆渶鏂扮増鏈槸Borland C++ Builder X涓殑6.<br />0鐗堟湰錛屽畼鏂圭О100%絎﹀悎ANSI/ISO鐨凜++鏍囧噯浠ュ強C99鏍囧噯銆傚棷鈥﹁繖姝f槸鎴戝墠闈㈡墍鎸囩殑<br />鈥滃畬鍏ㄧ鍚圕++鏍囧噯鐨勭紪璇戝櫒鈥濄?/p> <p>銆銆2.2 Visual C++</p> <p>銆銆榪欎釜姝f槸鎴戜滑鐔熺煡鐨刅isual Studio 鍜?Visual Studio.net 2002, 2003浠ュ強2<br />005 Whidbey涓甫鐨凜++緙栬瘧鍣ㄣ傜敱Microsoft鍏徃鐮斿埗銆傚湪Visual Studio 6.0涓紝<br />鍥犱負緙栬瘧鍣ㄦ湁澶鍦版柟涓嶈兘涓庡悗鏉ュ嚭鐜扮殑C++鏍囧噯鐩稿惢鍚堣岄ケ鍙楁壒璇勶紙鎯蟲兂浣犲湪浣跨敤<br />STL鐨勬椂鍊欑紪璇戞椂鎶ュ嚭鐨勯偅浜涗護浜哄帉鎭剁殑error鍜寃arning鍚э級銆俈C++6.0瀵規爣鍑嗗寲C+<br />+鐨勫吋瀹瑰彧鏈?3.43%銆備絾鏄殢鐫C++緙栬瘧鍣ㄨ璁″ぇ甯圫tanley Lippman浠ュ強璇稿C++紺?br />緹よ揪浜虹殑鍔犵洘錛屽湪Visual Studio.NET 2003涓紝Visual C++緙栬瘧鍣ㄥ凡緇忔垚涓轟竴涓潪<br />甯告垚鐔熷彲闈犵殑C++緙栬瘧鍣ㄤ簡銆侱r.Dobb's Journal鐨勮瘎嫻嬫樉紺篤isual C++7.1瀵規爣鍑咰<br />++鐨勫吋瀹規ч珮杈?8.22%錛屼竴搴︽垚涓篊BX涔嬪墠鍏煎鎬ф渶濂界殑緙栬瘧鍣ㄣ傜粨鍚堝己澶х殑Visua<br />l Studio.NET寮鍙戠幆澧冿紝鏄竴涓潪甯鎬笉閿欑殑閫夋嫨銆傝嚦浜嶹hidbey鏃朵唬鐨刅isual C++,<br />浼間箮寰蔣鎵鏈鍏蟲敞鐨勬槸C++/CLI鈥︹︽垜浠笉鎯寵瘎璁哄井杞笅涓浠g殑C++緙栬瘧鍣ㄥ鏍囧噯鍖?br />鍏煎濡備綍錛屼絾浠栫‘瀹炶秺鏉ヨ秺閫傚悎.NET (鍏跺疄浣犲拰鎴戠殑鎰熻鍙兘鏄竴鏍風殑錛屽井杞笉搴?br />褰撴妸鏍囧噯C++榪欏潡鑲ヨ倝涓㈢粰Borland,鐒惰屽井杞彲鑳藉茍涓嶈繖鏍瘋涓?銆?/p> <p>銆銆2.3 GNU C++</p> <p>銆銆钁楀悕鐨勫紑婧怌++緙栬瘧鍣ㄣ傛槸綾籙nix鎿嶄綔緋葷粺涓嬬紪鍐機++紼嬪簭鐨勯閫夈傜壒鐐規槸鏈夐潪<br />甯稿ソ鐨勭Щ妞嶆э紝浣犲彲浠ュ湪闈炲父騫挎硾鐨勫鉤鍙頒笂浣跨敤瀹冿紝鍚屾椂涔熸槸緙栧啓璺ㄥ鉤鍙幫紝宓屽叆寮?br />紼嬪簭寰堝ソ鐨勯夋嫨銆傚彟澶栧湪絎﹀悎鏍囧噯榪欎釜鏂歸潰涓鐩撮兘闈炲父濂斤紝GCC3.3澶ф鑳藉杈懼埌96<br />.15%銆備絾鏄敱浜庡叾璺ㄥ鉤鍙扮殑鐗規э紝鍦ㄤ唬鐮佸昂瀵擱熷害絳変紭鍖栦笂鐣ュ井宸竴鐐廣?/p> <p>銆銆鍩轟簬GNU C++鐨勭紪璇戝櫒鏈夊緢澶氾紝姣斿錛?/p> <p>銆銆(1) Mingw<br />銆銆<a >http://www.mingw.org/</a><br />銆銆GCC鐨勪竴涓猈indows鐨勭Щ妞嶇増鏈紙Dev-C++鐨勫悗鍙幫級</p> <p>銆銆(2) Cygwin<br />銆銆<a >http://sources.redhat.com/cygwin/</a><br />銆銆GCC鐨勫彟澶栦竴涓猈indows縐繪鐗堟湰鏄疌ygwin鐨勪竴閮ㄥ垎錛孋ygwin鏄疻indows涓嬬殑涓涓?br />Unix浠跨湡鐜銆備弗鏍肩殑璇存槸妯℃嫙GNU鐨勭幆澧冿紝榪欎篃灝辨槸"Gnu's Not Unix"瑕佽〃杈劇殑鎰?br />鎬濓紝鍣紝鎵繙浜嗭紝榪欏茍涓嶆槸鎴戜滑鍦ㄨ繖閲屽叧蹇冪殑瀹炶川鍐呭銆?/p> <p>銆銆(3) Djgpp<br />銆銆<a >http://www.delorie.com/djgpp/</a><br />銆銆榪欐槸GCC鐨凞OS縐繪鐗堟湰銆?/p> <p>銆銆(4) RSXNT<br />銆銆<a >http://www.mathematik.uni-bielefeld.de/~rainer/</a><br />銆銆榪欐槸GCC鐨凞OS鍜學indows縐繪鐗堟湰銆?/p> <p>銆銆(5) Intel C++<br />銆銆钁楀悕CPU鍒墮犲巶鍟咺ntel鍑哄搧鐨勭紪璇戝櫒錛孲pecial Design for Intel x86錛佸浜?br />Intel x86緇撴瀯鐨凜PU緇忚繃鐗瑰埆鐨勪紭鍖栥傚湪鏈変簺搴旂敤鎯呭喌涓嬶紝鐗瑰埆鏄暟鍊艱綆楃瓑楂樻?br />鑳藉簲鐢紝浠呬粎閲囩敤Intel鐨勭紪璇戝櫒緙栬瘧灝辮兘澶у箙搴︾殑鎻愰珮鎬ц兘銆?/p> <p>銆銆(6) Digital Mars C++<br />銆銆緗戠粶涓婃彁渚涘厤璐逛笅杞斤紝Zortech/Symantec C++鐨勭戶鎵胯咃紝鍏跺墠韜湪褰撳勾鎯ㄧ儓鐨?br />C++鍥涘浗鎴樹腑涔熸槸涓昏涔嬩竴銆?/p> <p>銆銆3錛屽紑鍙戠幆澧?/p> <p>銆銆寮鍙戠幆澧冨浜庣▼搴忓憳鐨勪綔鐢ㄤ笉璦鑰屽柣銆傞夋嫨鑷繁鏈濆鐩稿鐨勭幆澧冧篃涓嶆槸瀹規槗鐨?br />浜嬫儏錛岀壒鍒槸鍦↖DE濡傛涓板瘜鐨勬儏鍐典笅銆備笅闈㈠氨鏄垜浠帹鑽愮殑涓浜涘父瑙佺殑C++寮鍙戠幆<br />澧冿紝騫舵病鏈夊寘鎷竴浜涘皬鍨嬬殑錛岀綍瑙佺殑IDE銆傚叾涓換浣曚竴嬈鵑兘鏄姛鑳戒赴瀵岋紝鍙互鐢ㄤ綔鏃?br />甯稿紑鍙戜嬌鐢ㄧ殑銆傚浜庝笉鍚屽眰闈㈢殑寮鍙戣咃紝璇峰弬瑙佸唴鏂囧叧浜庨傜敤瀵硅薄鐨勬弿榪般?/p> <p>銆銆3.1 Visual Studio 6.0</p> <p>銆銆榪欎釜铏界劧鏄疢icrosoft鍏徃鐨勮佺増鏈殑寮鍙戠幆澧冿紝浣嗘槸閴翠簬鍏跺悗緇х増鏈琕isual<br />Studio.NET鐨勫簽澶ц韓韜紝浠ュ強鍒濆鑰呭茍涓嶉偅涔堥珮鐨勫姛鑳借姹傦紝鎵浠ユ帹鑽愯繖涓紑鍙戠幆<br />澧冪粰C++鐨勫垵瀛﹁咃紝渚涘叾瀛︿範C++鐨勬渶鍩烘湰鐨勯儴鍒嗭紝姣斿C鐨勯偅閮ㄥ垎瀛愰泦錛屽綋鐒朵綘鍒寚<br />鏈涗粬鑳藉鏀寔鏈鏂扮殑C99鏍囧噯銆傚湪鏃ュ父鐨勫紑鍙戜腑錛屼粛鐒舵湁寰堝鍏徃浣跨敤榪欎釜緇忓吀紼沖畾<br />鐨勭幆澧冿紝姣斿絎旇呭氨鐪嬫浘浜茶鏈変簺鍏徃灝嗗叾緙栬瘧鍣ㄦ浛鎹負GCC鍋氭墜鏈哄紑鍙戜箣鐢ㄣ?/p> <p>銆銆3.2 Visual Studio.NET 2003</p> <p>銆銆浣滀負Microsoft鍏徃瀹樻柟姝e紡鍙戝竷鐨勬渶鏂扮増鏈紑鍙戠幆澧冿紝鍏朵腑鏈夊お澶氭縺鍔ㄤ漢蹇冪殑<br />鍔熻兘銆傜粨鍚堝叾鏈鏂扮殑C++緙栬瘧鍣ㄣ傚浜庢満鍣ㄩ厤緗瘮杈冨ソ鐨勫紑鍙戜漢鍛樻潵璇達紝浣跨敤榪欎釜寮<br />鍙戠幆澧冨皢鑳芥弧瓚沖叾澶ч儴鍒嗙殑瑕佹眰銆傝繖閲屼笉鎵撶畻鍗曠嫭璇碫isual Studio Whidbey,铏界劧<br />Visual Studio .NET 2005 - Whidbey紺懼尯棰勮鐗堝凡緇忔帹鍑猴紝浣嗘殏涓嶆槸寰堢ǔ瀹氾紝璇昏?br />鍙互浜茶韓鍘諱綋楠屻?/p> <p>銆銆3.3 Borland C++ Builder 6</p> <p>銆銆榪欎釜騫朵笉鏄疊orland鐨凜++寮鍙戠幆澧冪殑鏈鏂扮増鏈傞夋嫨瀹冪殑鍘熷洜鏄畠涓嶆槸鐢↗ava<br />鍐欑殑IDE錛岄熷害姣旇緝蹇傚畠鏈変竴涓緢瀹屽杽鐨凣UI紿椾綋璁捐鍣紝鍜孌elphi鍏辯敤涓涓猇CL銆?br />鐢變簬榪欎簺鐗圭偣錛屾瘮杈冮傚悎鍒濆鑰呬笂鎵嬨備絾鏄敱浜庡叾GUI鐨勪腑蹇冧綅緗紝鍙兘涓嶅埄浜庡浜?br />C++璇█鐨勫涔犮傝屼笖鍏朵負浜嗘敮鎸乂CL榪欎釜Object Pascal鍐欑殑搴撲篃瀵笴++榪涜浜嗕竴浜?br />縐佹湁鐨勬墿鍏呫備嬌寰椾漢浠湁涓涓笉寰椾笉鎺ュ彈鐨勪簨瀹烇細鈥淏orland C++ Builder 6鐨勯珮鎵?br />鍑犱箮閮芥槸Delphi楂樻墜鈥濄?/p> <p>銆銆3.4 Borland C++ Builder X</p> <p>銆銆姝e鍓嶆枃鎵榪幫紝铏界劧鐗堟湰鍙蜂笂鍜屽墠闈㈤偅涓狪DE闈炲父鐩歌薄錛屼絾鏄叾瀹炲畠浠槸瀹屽叏涓?br />鍚岀殑涓や釜闆嗘垚寮鍙戠幆澧冦侰++Builder鏇村鐨勬槸涓涓拰Delphi鍚屾鐨凜++鐗堟湰鐨勫紑鍙戠幆<br />澧冿紝C++BuilderX鍒欐槸瀹屽叏浠嶤++鐨勮搴︽濊冨緱鍑虹殑涓涓姛鑳戒赴瀵岀殑IDE銆傚叾鏈澶х殑鐗?br />鐐規槸璺ㄥ鉤鍙幫紝璺ㄧ紪璇戝櫒錛屽縐岶ramework鐨勯泦鎴愶紝騫朵笖鏈変竴涓猈xWindows涓哄熀紜鐨凣U<br />I璁捐鍣ㄣ傚挨鍏舵槸閲囩敤浜嗙函C++鏉ラ噸鍐欎簡鏁翠釜Framework,鎽掑純浜嗕互鍓嶄護浜烘棤濂堢殑鐗堟湰<br />銆傚浜嶤++鐨勫紑鍙戞潵璇達紝浠庣紪璇戝櫒錛屽埌搴擄紝鍒板姛鑳介泦鎴愰兘鏄潪甯哥悊鎯崇殑銆傚彲浠ラ瑙侊紝<br />Borland C++ Builder X 2.0寰堝煎緱C++鐖卞ソ鑰呮湡寰呫傚敮涓浠や漢闅懼牚涔嬪鏄綔涓轟竴涓?br />C++鐨勫紑鍙戝伐鍏鳳紝鍏禝DE鏄敤Java鍐欑殑錛屽湪閰嶇疆涓嶅鐞嗘兂鐨勬満鍣ㄤ笂璇鋒厧閲嶈冭檻鍐嶅畨瑁?br />銆?/p> <p>銆銆3.5 Emacs + GCC</p> <p>銆銆鍓嶉潰璁茬殑澶ч儴鍒嗘槸Windows鐜涓嬬殑闆嗘垚寮鍙戠幆澧冦侺inux涓婄殑寮鍙戣呮洿鍊懼悜浜?br />浣跨敤Emacs鏉ョ紪杈慍++鐨勬枃浠訛紝鐢∕akefile鏉ュ懡浠CC鍋氱紪璇戙傝櫧鐒剁湅涓婂幓姣旇緝鏉炬暎錛?br />浣嗘槸榪欎簺涓滆タ緇煎悎璧鋒潵榪樻槸涓涓紑鍙戠幆澧冦傚鏋滀綘鑳藉濞寸啛鐨勪嬌鐢ㄨ繖鏍風殑鐜鍐欑▼<br />搴忥紝浣犵殑姘村鉤搴旇瓚沖鎸囧鎴戜滑鏉ュ啓榪欑瘒闄嬫枃浜嗐?/p> <p>銆銆3.6 Dev C++</p> <p>銆銆GCC鏄竴涓緢濂界殑緙栬瘧鍣ㄣ傚湪Windows涓婄殑C++緙栬瘧鍣ㄤ竴鐩村拰鏍囧噯鏈夌潃涓孌佃窛紱葷殑<br />鏃跺欙紝GCC灝辨槸涓涓Windows涓嬪紑鍙戣呮祦鍙f按鐨勭紪璇戝櫒銆侱ev-C++灝辨槸鑳藉璁〨CC璺?br />鍦╓indows涓嬬殑宸ュ叿錛屼綔涓洪泦鎴愬紑鍙戠幆澧冿紝榪樻彁渚涗簡鍚屼笓涓欼DE鐩稿緹庣殑璇硶楂樹寒錛?br />浠g爜鎻愮ず錛岃皟璇曠瓑鍔熻兘銆傜敱浜庝嬌鐢―elphi寮鍙戯紝鍗犵敤鍐呭瓨灝戯紝閫熷害寰堝揩錛屾瘮杈冮傚悎<br />杞婚噺綰х殑瀛︿範鍜屼嬌鐢ㄣ?/p> <p>銆銆3.7 Eclipse + CDT</p> <p>銆銆Eclipse鍙槸榪戞潵澶у悕榧庨紟鐨勫紑鍙戝伐鍏楓傛渶鏂頒竴鏈熺殑Jolt澶у灝遍緇欎簡榪欎釜鏉板嚭<br />鐨勭鐗┿傝鍏剁濂囨槸鍥犱負錛屽畠鏈韓鏄敤Java鍐欑殑錛屼絾鏄嫢鏈夋瘮涓鑸琂ava鍐欑殑紼嬪簭蹇?br />寰楀鐨勯熷害銆傝屼笖鍥犱負鍏跺熀浜庢彃浠剁粍瑁呬竴鍒囩殑鍘熷垯錛屼嬌寰楄兘澶熸湁CDT榪欐牱鐨勬彃浠舵妸E<br />clipse鍙樻垚涓涓狢/C++鐨勫紑鍙戠幆澧冦傚鏋滀綘涓鐩寸敤Eclipse鍐橨ava鐨勭▼搴忥紝涓嶅Θ鐢ㄥ畠<br />浣撻獙涓涓婥++寮鍙戠殑涔愯叮銆?/p> <p>銆銆4錛屽伐鍏?/p> <p>銆銆C++鐨勮緟鍔╁伐鍏風箒澶氾紝鎴戜滑鍒嗛棬鍒被鐨勪負澶у浣滀粙緇嶏細<br />銆銆4.1 鏂囨。綾?br />銆銆(1) Doxygen<br />銆銆鍙傝冪珯鐐癸細<a >http://www.doxygen.org</a><br />銆銆Doxygen鏄竴縐嶉傚悎C椋庢牸璇█錛堝C++銆丆銆両DL銆丣ava鐢氳嚦鍖呮嫭C#鍜孭HP錛夌殑銆?br />寮鏀炬簮鐮佺殑銆佸熀浜庡懡浠よ鐨勬枃妗d駭鐢熷櫒銆?/p> <p>銆銆(2) C++2HTML<br />銆銆鍙傝冪珯鐐癸細<a >http://www.bedaux.net/cpp2html/</a><br />銆銆鎶奀++浠g爜鍙樻垚璇硶楂樹寒鐨凥TML</p> <p>銆銆(3) CodeColorizer<br />銆銆鍙傝冪珯鐐癸細<a >http://www.chami.com/colorizer/</a><br />銆銆瀹冭兘鎶婂ソ鍑犵璇█鐨勬簮浠g爜鐫鑹蹭負HTML</p> <p>銆銆(4) Doc-O-Matic<br />銆銆鍙傝冪珯鐐癸細<a >http://www.doc-o-matic.com/</a><br />銆銆Doc-O_Matic涓轟綘鐨凜/C++錛孋++.net錛孌elphi/Pascal, VB.NET錛孋#鍜孞ava紼嬪簭<br />鎴栬呯粍浠朵駭鐢熷噯紜殑鏂囨。銆侱oc-O-Matic浣跨敤婧愪唬鐮佷腑鐨勭鍙峰拰娉ㄩ噴浠ュ強澶栭儴鐨勬枃妗?br />鏂囦歡鍒涘緩涓庢祦琛岀殑鏂囨。鏍峰紡涓鑷寸殑鏂囨。銆?/p> <p>銆銆(5) DocVizor<br />銆銆鍙傝冪珯鐐癸細<a >http://www.ucancode.net/Products/DocBuilder/Features.htm</a><br />銆銆DocVizor婊¤凍浜嗛潰鍚戝璞¤蔣浠跺紑鍙戣呯殑鍩烘湰瑕佹眰鈥斺斿畠璁╂垜浠兘澶熺湅鍒癈++宸ョ▼<br />涓殑綾誨眰嬈$粨鏋勩侱ocVizor蹇熷湴浜х敓瀹屾暣鍙緵鎵撳嵃鐨勭被灞傛緇撴瀯鍥撅紝鍖呮嫭浠庣涓?br />鏂瑰簱涓潵鐨勯偅浜涚被錛岄櫎姝や箣澶朌ocVizor榪樿兘浠庣被淇℃伅涓駭鐢烪TML鏂囦歡銆?/p> <p>銆銆(6) SourcePublisher C++<br />銆銆鍙傝冪珯鐐癸細<a >http://www.scitools.com/sourcepublisher_c.html</a><br />銆銆緇欐簮浠g爜浜х敓鎻愪緵蹇熺洿瑙傜殑HTML鎶ヨ〃錛屽寘鎷唬鐮侊紝綾誨眰嬈$粨鏋勶紝璋冪敤鍜岃璋?br />鐢ㄦ爲錛屽寘鍚拰琚寘鍚爲銆傛敮鎸佸縐嶆搷浣滅郴緇熴?/p> <p>銆銆(7) Understand<br />銆銆鍙傝冪珯鐐癸細<a >http://www.scitools.com/ucpp.html</a><br />銆銆鍒嗘瀽浠諱綍瑙勬ā鐨凜鎴栬匔++宸ョ▼錛屽府鍔╂垜浠洿濂界殑鐞嗚В浠ュ強緙栧啓鏂囨。銆?/p> <p>銆銆4.2 浠g爜綾?br />銆銆(1) CC-Rider<br />銆銆鍙傝冪珯鐐癸細<a >http://www.cc-rider.com</a><br />銆銆CC-Rider鏄敤浜嶤/C++紼嬪簭寮哄ぇ鐨勪唬鐮佸彲瑙嗗寲宸ュ叿錛岄氳繃浜や簰寮忔祻瑙堛佺紪杈戝強鑷?br />鍔ㄦ枃浠舵潵淇冭繘紼嬪簭鐨勭淮鎸佸拰鍙戝睍銆?/p> <p>銆銆(2) CodeInspect<br />銆銆鍙傝冪珯鐐癸細<a >http://www.yokasoft.com/</a><br />銆銆涓縐嶆柊鐨凜/C++浠g爜鍒嗘瀽宸ュ叿銆傚畠媯鏌ユ垜浠殑婧愪唬鐮佹壘鍑洪潪鏍囧噯鐨勶紝鍙兘鐨勶紝浠?br />鍙婃櫘閫氱殑閿欒浠g爜銆?/p> <p>銆銆(3) CodeWizard<br />銆銆鍙傝冪珯鐐癸細<a >http://www.parasoft.com</a><br />銆銆鍏堣繘鐨凜/C++婧愪唬鐮佸垎鏋愬伐鍏鳳紝浣跨敤瓚呰繃500涓紪鐮佽鑼冭嚜鍔ㄥ寲鍦版爣鏄庡嵄闄╃殑錛?br />浣嗘槸緙栬瘧鍣ㄤ笉鑳芥鏌ュ埌鐨勪唬鐮佺粨鏋勩?/p> <p>銆銆(4) C++ Validation Test Suites<br />銆銆鍙傝冪珯鐐癸細<a >http://www.plumhall.com/suites.html</a><br />銆銆涓緇勭敤浜庢祴璇曠紪璇戝櫒鍜屽簱瀵逛簬鏍囧噯鍚誨悎紼嬪害鐨勪唬鐮佸簱銆?/p> <p>銆銆(5) CppRefactory<br />銆銆鍙傝冪珯鐐癸細<a >http://cpptool.sourceforge.net/</a><br />銆銆CPPRefactory鏄竴涓嬌寰楀紑鍙戣呰兘澶熼噸鏋勪粬浠殑C++浠g爜鐨勭▼搴忋傜洰鐨勬槸浣垮緱C<br />++浠g爜鐨勯噸鏋勮兘澶熷敖鍙兘鐨勬湁鏁堢巼鍜岀畝鍗曘?/p> <p>銆銆(6) Lzz<br />銆銆鍙傝冪珯鐐癸細<a >http://www.lazycplusplus.com/</a><br />銆銆Lzz鏄竴涓嚜鍔ㄥ寲璁稿C++緙栫▼涓殑浣撳姏媧葷殑宸ュ叿銆傚畠鑳藉鑺傜渷鎴戜滑璁稿浜嬩歡騫?br />涓斾嬌寰楃紪鐮佹洿鍔犳湁涔愯叮銆傜粰鍑轟竴緋誨垪鐨勫0鏄庯紝Lzz浼氱粰鎴戜滑鍒涘緩澶存枃浠跺拰婧愭枃浠躲?/p> <p>銆銆(7) QA C++ Generation 2000<br />銆銆鍙傝冪珯鐐癸細<a >http://www.programmingresearch.com/solutions/qacpp.htm</a><br />銆銆瀹冨叧娉ㄩ潰鍚戝璞$殑C++婧愪唬鐮侊紝瀵規湁鍏充簬璁捐錛屾晥鐜囷紝鍙潬鎬э紝鍙淮鎶ゆх殑閮ㄥ垎<br />鎻愬嚭璀﹀憡淇℃伅銆?/p> <p>銆銆(8) s-mail project - Java to C++DOL<br />銆銆鍙傝冪珯鐐癸細<a >http://sadlocha.strefa.pl/s-mail/ja2dol.html</a><br />銆銆鎶奐ava婧愪唬鐮佺炕璇戜負鐩稿簲鐨凜++婧愪唬鐮佺殑鍛戒護琛屽伐鍏楓?/p> <p>銆銆(9) SNIP from Cleanscape Software International<br />銆銆鍙傝冪珯鐐癸細<a >http://www.cleanscape.net/stdprod/snip/index.html</a><br />銆銆涓涓~騫崇紪鐮佸拰璁捐涔嬮棿娌熷鐨勬槗浜庝嬌鐢ㄧ殑C++寮鍙戝伐鍏鳳紝鑺傜渷澶ч噺緙栬緫鍜岃皟璇?br />鐨勪簨浠訛紝瀹冭繕浣垮緱寮鍙戣呰兘澶熸寚瀹氳璁℃ā寮忎綔涓哄璞℃ā鍨嬶紝鑷姩浠庡璞℃ā鍨嬩腑浜х敓<br />C++鐨勭被銆?/p> <p>銆銆(10) SourceStyler C++<br />銆銆鍙傝冪珯鐐癸細<a >http://www.ochresoftware.com/</a><br />銆銆瀵笴/C++婧愪唬鐮佹彁渚涘畬鏁寸殑鏍煎紡鍖栧拰鎺掔増鎺у埗鐨勫伐鍏楓傛彁渚涘浜?5涓殑鏍煎紡鍖栭?br />欏逛互鍙婂畬鍏ㄦ敮鎸丄NSI C++銆?/p> <p>銆銆4.3 緙栬瘧綾?br />銆銆(1) Compilercache<br />銆銆鍙傝冪珯鐐癸細<a >http://www.erikyyy.de/compilercache/</a><br />銆銆Compilercache鏄竴涓浣犵殑C鍜孋++緙栬瘧鍣ㄧ殑灝佽鑴氭湰銆傛瘡嬈℃垜浠繘琛岀紪璇戯紝灝?br />瑁呰剼鏈紝鎶婄紪璇戠殑緇撴灉鏀懼叆緙撳瓨錛屼竴鏃︾紪璇戠浉鍚岀殑涓滆タ錛岀粨鏋滃皢浠庣紦瀛樹腑鍙栧嚭鑰屼笉<br />鏄啀嬈$紪璇戙?/p> <p>銆銆(2) Ccache<br />銆銆鍙傝冪珯鐐癸細<a >http://ccache.samba.org/</a><br />銆銆Ccache鏄竴涓紪璇戝櫒緙撳瓨銆傚畠浣跨敤璧鋒潵灝卞儚C/C++緙栬瘧鍣ㄧ殑緙撳瓨棰勫鐞嗗櫒錛岀紪璇?br />閫熷害閫氬父鑳芥彁楂樻櫘閫氱紪璇戣繃紼嬬殑5~10鍊嶃?/p> <p>銆銆(3) Cmm (C++ with MultiMethods)<br />銆銆鍙傝冪珯鐐癸細<a >http://www.op59.net/cmm/cmm-0.28/users.html</a><br />銆銆榪欐槸涓縐岰++璇█鐨勬墿灞曘傝鍏mm婧愪唬鐮佽緭鍑篊++鐨勬簮浠g爜錛屽姛鑳芥槸瀵笴++璇█<br />娣誨姞浜嗗multimethod鐨勬敮鎸併?/p> <p>銆銆(4) The Frost Project<br />銆銆鍙傝冪珯鐐癸細<a >http://frost.flewid.de/</a><br />銆銆Forst浣垮緱浣犺兘澶熷湪C++紼嬪簭涓儚鍘熺敓鐨凜++鐗規т竴鏍蜂嬌鐢╩ultimethod浠ュ強铏氬嚱<br />鏁板弬鏁般傚畠鏄竴涓紪璇戝櫒鐨勫澹熾?/p> <p>銆銆4.4 嫻嬭瘯鍜岃皟璇曠被<br />銆銆(1) CPPUnit<br />銆銆CppUnit 鏄釜鍩轟簬 LGPL 鐨勫紑婧愰」鐩紝鏈鍒濈増鏈Щ妞嶈嚜 JUnit錛屾槸涓涓潪甯鎬紭<br />縐鐨勫紑婧愭祴璇曟鏋躲侰ppUnit 鍜?JUnit 涓鏍蜂富瑕佹濇兂鏉ユ簮浜庢瀬闄愮紪紼嬨備富瑕佸姛鑳藉氨<br />鏄鍗曞厓嫻嬭瘯榪涜綆$悊錛屽茍鍙繘琛岃嚜鍔ㄥ寲嫻嬭瘯銆?/p> <p>銆銆(2) C++Test<br />銆銆鍙傝冪珯鐐癸細<a >http://www.parasoft.com/</a><br />銆銆C++ Test鏄竴涓崟鍏冩祴璇曞伐鍏鳳紝瀹冭嚜鍔ㄥ寲浜咰鍜孋++綾伙紝鍑芥暟鎴栬呯粍浠剁殑嫻嬭瘯銆?/p> <p>銆銆(3) Cantata++<br />銆銆鍙傝冪珯鐐癸細<a >http://www.iplbath.com/products/tools/pt400.shtml</a><br />銆銆璁捐鐨勭洰鐨勬槸涓轟簡婊¤凍鍦ㄥ悎鐞嗙殑緇忔祹寮閿涓嬩嬌鐢ㄨ繖涓伐鍏峰彲浠ヨ寮鍙戝伐紼嬪笀寮<br />灞曞崟鍏冩祴璇曞拰闆嗘垚嫻嬭瘯鐨勯渶姹?</p> <p>銆銆(4) Purify<br />銆銆鍙傝冪珯鐐癸細<a >http://www-900.ibm.com/cn/software/rational/products/purif</a><br />yplus/index.shtml<br />銆銆IBM Rational PurifyPlus鏄竴濂楀畬鏁寸殑榪愯鏃跺垎鏋愬伐鍏鳳紝鏃ㄥ湪鎻愰珮搴旂敤紼嬪簭鐨?br />鍙潬鎬у拰鎬ц兘銆侾urifyPlus灝嗗唴瀛橀敊璇拰娉勬紡媯嫻嬨佸簲鐢ㄧ▼搴忔ц兘鎻忚堪銆佷唬鐮佽鐩?br />鍒嗘瀽絳夊姛鑳界粍鍚堝湪涓涓崟涓銆佸畬鏁寸殑宸ュ叿鍖呬腑銆?/p> <p>銆銆(5) BoundsChecker<br />銆銆BoundsChecker鏄竴涓狢++榪愯鏃墮敊璇嫻嬪拰璋冭瘯宸ュ叿銆傚畠閫氳繃鍦╒isual Studi<br />o鍐呰嚜鍔ㄥ寲璋冭瘯榪囩▼鍔犻熷紑鍙戝茍涓旂緝鐭笂甯傜殑鍛ㄦ湡銆侭oundsChecker鎻愪緵娓呮錛岃緇?br />鐨勭▼搴忛敊璇垎鏋愶紝璁稿鏄C++鐙湁鐨勫茍涓斿湪static錛宻tack鍜宧eap鍐呭瓨涓嫻嬪拰璇?br />鏂敊璇紝浠ュ強鍙戠幇鍐呭瓨鍜岃祫婧愮殑娉勬紡銆傘銆<br />聽聽聽聽聽聽聽 <br />聽聽聽聽聽聽聽 (6) Insure++<br />銆銆鍙傝冪珯鐐癸細<a >http://www.parasoft.com/</a><br />銆銆涓涓嚜鍔ㄥ寲鐨勮繍琛屾椂紼嬪簭嫻嬭瘯宸ュ叿錛屾鏌ラ毦浠ュ療瑙夌殑閿欒,濡傚唴瀛樿鐩栵紝鍐呭瓨娉?br />婕忥紝鍐呭瓨鍒嗛厤閿欒錛屽彉閲忓垵濮嬪寲閿欒錛屽彉閲忓畾涔夊啿紿侊紝鎸囬拡閿欒錛屽簱閿欒錛岄昏緫閿?br />璇拰綆楁硶閿欒絳夈?/p> <p>銆銆(7) GlowCode<br />銆銆鍙傝冪珯鐐癸細<a >http://www.glowcode.com/</a><br />銆銆GlowCode鍖呮嫭鍐呭瓨娉勬紡媯鏌ワ紝code profiler錛屽嚱鏁拌皟鐢ㄨ窡韙瓑鍔熻兘銆傜粰C++寮<br />鍙戣呮彁渚涘畬鏁寸殑閿欒璇婃柇錛屽拰榪愯鏃舵ц兘鍒嗘瀽宸ュ叿鍖呫?/p> <p>銆銆(8) Stack Spy<br />銆銆鍙傝冪珯鐐癸細<a >http://www.imperioustech.com/</a><br />銆銆瀹冭兘鎹曟崏stack corruption, stack over run, stack overflow絳夋湁鍏蟲爤鐨勯敊<br />璇?/p> <p>銆銆5錛屽簱</p> <p>銆銆鍦–++涓紝搴撶殑鍦頒綅鏄潪甯擱珮鐨勩侰++涔嬬埗 Bjarne Stroustrup鍏堢敓澶氭琛ㄧず浜?br />璁捐搴撴潵鎵╁厖鍔熻兘瑕佸ソ榪囪璁℃洿澶氱殑璇硶鐨勮█璁恒傜幇瀹炰腑錛孋++鐨勫簱闂ㄧ被綣佸錛岃В鍐?br />鐨勯棶棰樹篃鏄瀬鍏跺箍娉涳紝搴撲粠杞婚噺綰у埌閲嶉噺綰х殑閮芥湁銆備笉灝戦兘鏄浜虹溂鐣屽ぇ寮錛屼害鎴?br />鏄湜鑰岀敓鍙圭殑鎬濈淮鏉頒綔銆傜敱浜庡簱鐨勬暟閲忛潪甯稿簽澶э紝鑰屼笖闄愪簬絎旇呮按騫籌紝鍏朵腑寰堝騫?br />涓嶄簡瑙c傛墍浠ユ枃涓墍鎻愮殑涓浜涘簱閮芥槸姣旇緝钁楀悕鐨勫ぇ鍨嬪簱銆?/p> <p>銆銆5.1 鏍囧噯搴?/p> <p>銆銆鏍囧噯搴撲腑鎻愪緵浜咰++紼嬪簭鐨勫熀鏈鏂姐傝櫧鐒禖++鏍囧噯搴撻殢鐫C++鏍囧噯鎶樿吘浜嗚澶氬勾<br />錛岀洿鍒版爣鍑嗙殑鍑哄彴鎵嶆寮忓畾鍨嬶紝浣嗘槸鍦ㄦ爣鍑嗗簱鐨勫疄鐜頒笂鍗村緢浠や漢嬈f叞寰楃湅鍒板縐嶅疄<br />鐜幫紝騫朵笖宸茶瀹炶返璇佹槑涓烘湁宸ヤ笟綰у埆寮哄害鐨勪匠浣溿?/p> <p>銆銆(1) Dinkumware C++ Library<br />銆銆鍙傝冪珯鐐癸細<a >http://www.dinkumware.com/</a><br />銆銆P.J. Plauger緙栧啓鐨勯珮鍝佽川鐨勬爣鍑嗗簱銆侾.J. Plauger鍗氬+鏄疍r. Dobb's紼嬪簭璁?br />璁℃澃鍑哄鐨勮幏寰楄呫傚叾緙栧啓鐨勫簱闀挎湡琚玀icrosoft閲囩敤錛屽茍涓旀渶榪態orland涔熷彇寰椾簡<br />鍏禣EM鐨刲icense錛屽湪鍏禖/C++鐨勪駭鍝佷腑閲囩敤Dinkumware鐨勫簱銆?/p> <p>銆銆(2) RogueWave Standard C++ Library<br />銆銆鍙傝冪珯鐐癸細<a >http://www.roguewave.com/</a><br />銆銆榪欎釜搴撳湪Borland C++ Builder鐨勬棭鏈熺増鏈腑鏇劇粡琚噰鐢紝鍚庢潵琚叾浠栫殑搴撶粰鏇?br />鎹簡銆傜瑪鑰呬笉鎺ㄨ崘浣跨敤銆?/p> <p>銆銆(3) SGI STL<br />銆銆鍙傝冪珯鐐癸細<a >http://www.roguewave.com/</a><br />銆銆SGI鍏徃鐨凜++鏍囧噯妯$増搴撱?/p> <p>銆銆(4) STLport<br />銆銆鍙傝冪珯鐐癸細<a >http://www.stlport.org/</a><br />銆銆SGI STL搴撶殑璺ㄥ鉤鍙板彲縐繪鐗堟湰銆?/p> <p>銆銆5.2 鈥滃噯鈥濇爣鍑嗗簱 - Boost<br />銆銆鍙傝冪珯鐐癸細<a >http://www.boost.org</a><br />銆銆鍥藉唴闀滃儚錛?a >http://www.c-view.org/tech/lib/boost/index.htm</a><br />銆銆Boost搴撴槸涓涓粡榪囧崈閿ょ櫨鐐箋佸彲縐繪銆佹彁渚涙簮浠g爜鐨凜++搴擄紝浣滀負鏍囧噯搴撶殑鍚?br />澶囷紝鏄疌++鏍囧噯鍖栬繘紼嬬殑鍙戝姩鏈轟箣涓銆?Boost搴撶敱C++鏍囧噯濮斿憳浼氬簱宸ヤ綔緇勬垚鍛樺彂璧?br />錛屽湪C++紺懼尯涓獎鍝嶇敋澶э紝鍏舵垚鍛樺凡榪?000浜恒?Boost搴撲負鎴戜滑甯︽潵浜嗘渶鏂般佹渶閰楓?br />鏈瀹炵敤鐨勬妧鏈紝鏄笉鎶樹笉鎵g殑鈥滃噯鈥濇爣鍑嗗簱銆?br />銆銆Boost涓瘮杈冩湁鍚嶆皵鐨勬湁榪欎箞鍑犱釜搴擄細</p> <p>銆銆Regex<br />銆銆姝e垯琛ㄨ揪寮忓簱<br />銆銆Spirit<br />銆銆LL parser framework錛岀敤C++浠g爜鐩存帴琛ㄨ揪EBNF</p> <p>銆銆Graph<br />銆銆鍥劇粍浠跺拰綆楁硶</p> <p>銆銆Lambda<br />銆銆鍦ㄨ皟鐢ㄧ殑鍦版柟瀹氫箟鐭皬鍖垮悕鐨勫嚱鏁板璞★紝寰堝疄鐢ㄧ殑functional鍔熻兘</p> <p>銆銆concept check<br />銆銆媯鏌ユ硾鍨嬬紪紼嬩腑鐨刢oncept</p> <p>銆銆Mpl<br />銆銆鐢ㄦā鏉垮疄鐜扮殑鍏冪紪紼嬫鏋?/p> <p>銆銆Thread<br />銆銆鍙Щ妞嶇殑C++澶氱嚎紼嬪簱</p> <p>銆銆Python<br />銆銆鎶奀++綾誨拰鍑芥暟鏄犲皠鍒癙ython涔嬩腑</p> <p>銆銆Pool<br />銆銆鍐呭瓨姹犵鐞?/p> <p>銆銆smart_ptr<br />銆銆5涓櫤鑳芥寚閽堬紝瀛︿範鏅鴻兘鎸囬拡蹇呰錛屼竴浠戒笉閿欑殑鍙傝冩槸鏉ヨ嚜CUJ鐨勬枃绔狅細</p> <p>銆銆Smart Pointers in Boost錛屽摝錛岃繖綃囨枃绔犲彲浠ユ煡鍒幫紝CUJ鏄彁渚涘湪綰挎祻瑙堢殑銆?br />涓枃鐗堣絎旇呭湪銆奃r. Dobb's Journal杞歡鐮斿彂鏉傚織銆嬬7杈戜笂鐨勮瘧鏂囥?/p> <p>銆銆Boost鎬諱綋鏉ヨ鏄疄鐢ㄤ環鍊煎緢楂橈紝璐ㄩ噺寰堥珮鐨勫簱銆傚茍涓旂敱浜庡叾瀵硅法騫沖彴鐨勫己璋冿紝<br />瀵規爣鍑咰++鐨勫己璋冿紝鏄紪鍐欏鉤鍙版棤鍏籌紝鐜頒唬C++鐨勫紑鍙戣呭繀澶囩殑宸ュ叿銆備絾鏄疊oost涓篃<br />鏈夊緢澶氭槸瀹為獙鎬ц川鐨勪笢瑗匡紝鍦ㄥ疄闄呯殑寮鍙戜腑瀹炵敤闇瑕佽皚鎱庛傚茍涓斿緢澶欱oost涓殑搴撳姛<br />鑳藉牚縐板璇█鍔熻兘鐨勬墿灞曪紝鍏舵瀯閫犵敤灝界簿宸х殑鎵嬫硶錛屼笉瑕佽錘鐒剁殑鑺辮垂鏃墮棿鐮旇銆侭o<br />ost鍙﹀涓闈紝姣斿Graph榪欐牱鐨勫簱鍒欐槸鍏鋒湁宸ヤ笟寮哄害錛岀粨鏋勮壇濂斤紝闈炲父鍊煎緱鐮旇鐨?br />綺懼搧浠g爜錛屽茍涓斾篃鍙互鏀懼績鐨勫湪浜у搧浠g爜涓澶氬埄鐢ㄣ?/p> <p>5.3 GUI</p> <p>銆銆鍦ㄤ紬澶欳++鐨勫簱涓紝GUI閮ㄥ垎鐨勫簱綆楁槸姣旇緝綣佽崳錛屼篃姣旇緝寮曚漢娉ㄧ洰鐨勩傚湪瀹為檯寮<br />鍙戜腑錛孏UI搴撶殑閫夋嫨涔熸槸闈炲父閲嶈鐨勪竴浠朵簨鎯咃紝涓嬮潰鎴戜滑緇艱堪涓涓嬪彲閫夋嫨鐨凣UI搴擄紝<br />鍚勮嚜鐨勭壒鐐逛互鍙婄浉鍏沖伐鍏風殑鏀寔銆?/p> <p>銆銆(1) MFC</p> <p>銆銆澶у悕榧庨紟鐨勫井杞熀紜綾誨簱錛圡icrosoft Foundation Class錛夈傚ぇ鍑″榪嘨C++鐨?br />浜洪兘搴旇鐭ラ亾榪欎釜搴撱傝櫧鐒朵粠鎶鏈搴﹁錛孧FC鏄笉澶ф紓浜殑錛屼絾鏄畠鏋勫緩浜嶹indo<br />ws API 涔嬩笂錛岃兘澶熶嬌紼嬪簭鍛樼殑宸ヤ綔鏇村鏄?緙栫▼鏁堢巼楂橈紝鍑忓皯浜嗗ぇ閲忓湪寤虹珛 Windo<br />ws 紼嬪簭鏃跺繀欏葷紪鍐欑殑浠g爜錛屽悓鏃跺畠榪樻彁渚涗簡鎵鏈変竴鑸?C++ 緙栫▼鐨勪紭鐐癸紝渚嬪緇ф壙<br />鍜屽皝瑁呫侻FC 緙栧啓鐨勭▼搴忓湪鍚勪釜鐗堟湰鐨刉indows鎿嶄綔緋葷粺涓婃槸鍙Щ妞嶇殑錛屼緥濡傦紝鍦?br />Windows 3.1涓嬬紪鍐欑殑浠g爜鍙互寰堝鏄撳湴縐繪鍒?Windows NT 鎴?Windows 95 涓娿備絾<br />鏄湪鏈榪戝彂灞曚互鍙婂畼鏂規敮鎸佷笂鏃ユ笎鍔垮井銆?/p> <p>銆銆(2) QT</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.trolltech.com/</a><br />銆銆Qt鏄疶rolltech鍏徃鐨勪竴涓騫沖彴鐨凜++鍥懼艦鐢ㄦ埛鐣岄潰搴旂敤紼嬪簭妗嗘灦銆傚畠鎻愪緵緇?br />搴旂敤紼嬪簭寮鍙戣呭緩绔嬭壓鏈駭鐨勫浘褰㈢敤鎴風晫闈㈡墍闇鐨勬墍鐢ㄥ姛鑳姐俀t鏄畬鍏ㄩ潰鍚戝璞$殑<br />寰堝鏄撴墿灞曪紝騫朵笖鍏佽鐪熸鍦扮粍浠剁紪紼嬨傝嚜浠?996騫存棭浜涙椂鍊欙紝Qt榪涘叆鍟嗕笟棰嗗煙錛?br />瀹冨凡緇忔垚涓哄叏涓栫晫鑼冨洿鍐呮暟鍗冪鎴愬姛鐨勫簲鐢ㄧ▼搴忕殑鍩虹銆俀t涔熸槸嫻佽鐨凩inux妗岄潰鐜?br />澧僈DE 鐨勫熀紜錛屽悓鏃跺畠榪樻敮鎸乄indows銆丮acintosh銆乁nix/X11絳夊縐嶅鉤鍙般?/p> <p>銆銆(3) WxWindows</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.wxwindows.org/</a><br />銆銆璺ㄥ鉤鍙扮殑GUI搴撱傚洜涓哄叾綾誨眰嬈℃瀬鍍廙FC錛屾墍浠ユ湁鏂囩珷浠嬬粛浠嶮FC鍒癢xWindows鐨?br />浠g爜縐繪浠ュ疄鐜拌法騫沖彴鐨勫姛鑳姐傞氳繃澶氬勾鐨勫紑鍙戜篃鏄竴涓棩瓚嬪畬鍠勭殑GUI搴擄紝鏀寔鍚?br />鏍蜂笉寮變簬鍓嶉潰涓や釜搴撱傚茍涓旀槸瀹屽叏寮鏀炬簮浠g爜鐨勩傛柊榪戠殑C++ Builder X鐨凣UI璁捐<br />鍣ㄥ氨鏄熀浜庤繖涓簱鐨勩?/p> <p>銆銆(4) Fox</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.fox-toolkit.org/</a><br />銆銆寮鏀炬簮浠g爜鐨凣UI搴撱備綔鑰呬粠鑷繁浜茶韓鐨勫紑鍙戠粡楠屼腑寰楀嚭浜嗕竴涓悊鎯崇殑GUI搴撳簲<br />璇ユ槸浠涔堟牱瀛愮殑鎰熷彈鍑哄彂錛屼粠鑰屽紑濮嬩簡瀵硅繖涓簱鐨勫紑鍙戙傛湁鍏磋叮鐨勫彲浠ュ皾璇曚竴涓嬨?/p> <p> <br />銆銆(5) WTL<br />銆銆鍩轟簬ATL鐨勪竴涓簱銆傚洜涓轟嬌鐢ㄤ簡澶ч噺ATL鐨勮交閲忕駭鎵嬫硶錛屾ā鏉跨瓑鎶鏈紝鍦ㄤ唬鐮佸昂<br />瀵革紝浠ュ強閫熷害浼樺寲鏂歸潰鍋氬緱闈炲父鍒頒綅銆備富瑕侀潰鍚戠殑浣跨敤緹や綋鏄紑鍙慍OM杞婚噺綰т緵緗戠粶<br />涓嬭澆鐨勫彲瑙嗗寲鎺т歡鐨勫紑鍙戣呫?/p> <p>銆銆(6) GTK</p> <p>銆銆鍙傝冪綉绔欙細<a >http://gtkmm.sourceforge.net/</a><br />銆銆GTK鏄竴涓ぇ鍚嶉紟榧庣殑C鐨勫紑婧怗UI搴撱傚湪Linux涓栫晫涓湁Gnome榪欐牱鐨勬潃鎵嬪簲鐢ㄣ?br />鑰孏TK灝辨槸榪欎釜搴撶殑C++灝佽鐗堟湰銆?/p> <p>銆銆5.4 緗戠粶閫氫俊</p> <p>銆銆(1) ACE</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.cs.wustl.edu/~schmidt/ACE.html</a><br />銆銆C++搴撶殑浠h〃錛岃秴閲嶉噺綰х殑緗戠粶閫氫俊寮鍙戞鏋躲侫CE鑷傞厤閫氫俊鐜錛圓daptive<br />Communication Environment錛夋槸鍙互鑷敱浣跨敤銆佸紑鏀炬簮浠g爜鐨勯潰鍚戝璞℃鏋訛紝鍦?br />鍏朵腑瀹炵幇浜嗚澶氱敤浜庡茍鍙戦氫俊杞歡鐨勬牳蹇冩ā寮忋侫CE鎻愪緵浜嗕竴緇勪赴瀵岀殑鍙鐢–++鍖?br />瑁呭瑙傦紙Wrapper Facade錛夊拰妗嗘灦緇勪歡錛屽彲璺ㄨ秺澶氱騫沖彴瀹屾垚閫氱敤鐨勯氫俊杞歡浠誨姟<br />錛屽叾涓寘鎷細浜嬩歡澶氳礬鍒嗙鍜屼簨浠跺鐞嗗櫒鍒嗘淳銆佷俊鍙峰鐞嗐佹湇鍔″垵濮嬪寲銆佽繘紼嬮棿閫?br />淇°佸叡浜唴瀛樼鐞嗐佹秷鎭礬鐢便佸垎甯冨紡鏈嶅姟鍔ㄦ侊紙閲嶏級閰嶇疆銆佸茍鍙戞墽琛屽拰鍚屾錛岀瓑<br />絳夈?/p> <p>銆銆(2) StreamModule</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.omnifarious.org/StrMod/</a><br />銆銆璁捐鐢ㄤ簬綆鍖栫紪鍐欏垎甯冨紡紼嬪簭鐨勫簱銆傚皾璇曠潃浣垮緱緙栧啓澶勭悊寮傛琛屼負鐨勭▼搴忔洿瀹?br />鏄擄紝鑰屼笉鏄敤鍚屾鐨勫澹沖寘璧峰紓姝ョ殑鏈川銆?/p> <p>銆銆(3) SimpleSocket</p> <p>銆銆鍙傝冪綉绔欙細<a >http://home.hetnet.nl/~lcbokkers/simsock.htm</a><br />銆銆榪欎釜綾誨簱璁╃紪鍐欏熀浜巗ocket鐨勫鎴?鏈嶅姟鍣ㄧ▼搴忔洿鍔犲鏄撱?/p> <p>銆銆(4) A Stream Socket API for C++<br />銆銆鍙傝冪綉绔欙細<a >http://www.pcs.cnu.edu/~dgame/sockets/socketsC++/sockets.h</a><br />tml</p> <p>銆銆鍙堜竴涓Socket鐨勫皝瑁呭簱銆?/p> <p>銆銆5.5 XML</p> <p>銆銆(1) Xerces</p> <p>銆銆鍙傝冪綉绔欙細<a >http://xml.apache.org/xerces-c/</a><br />銆銆Xerces-C++ 鏄竴涓潪甯稿仴澹殑XML瑙f瀽鍣紝瀹冩彁渚涗簡楠岃瘉錛屼互鍙奡AX鍜孌OM API<br />銆俋ML楠岃瘉鍦ㄦ枃妗g被鍨嬪畾涔?Document Type Definition錛孌TD)鏂歸潰鏈夊緢濂界殑鏀寔錛?br />騫朵笖鍦?001騫?2鏈堝鍔犱簡鏀寔W3C XML Schema 鐨勫熀鏈畬鏁寸殑寮鏀炬爣鍑嗐?/p> <p>銆銆(2) XMLBooster</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.xmlbooster.com/</a><br />銆銆榪欎釜搴撻氳繃浜х敓鐗瑰埗鐨刾arser鐨勫姙娉曟瀬澶х殑鎻愰珮浜哫ML瑙f瀽鐨勯熷害錛屽茍涓旇兘澶熶駭<br />鐢熺浉搴旂殑GUI紼嬪簭鏉ヤ慨鏀硅繖涓猵arser銆傚湪DOM鍜孲AX涓ゅぇ涓繪祦XML瑙f瀽鍔炴硶涔嬪鎻愪緵浜?br />鍙﹀涓涓彲琛岀殑瑙e喅鏂規銆?/p> <p>銆銆(3) Pull Parser</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.extreme.indiana.edu/xgws/xsoap/xpp/</a><br />銆銆榪欎釜搴撻噰鐢╬ull鏂規硶鐨刾arser銆傚湪姣忎釜SAX鐨刾arser搴曞眰閮芥湁涓涓猵ull鐨刾arse<br />r錛岃繖涓獂pp鎶婅繖灞傛毚闇插嚭鏉ョ洿鎺ョ粰澶у浣跨敤銆傚湪瑕佸厖鍒嗚冭檻閫熷害鐨勬椂鍊欏煎緱灝濊瘯銆?/p> <p> <br />銆銆(4) Xalan</p> <p>銆銆鍙傝冪綉绔欙細<a >http://xml.apache.org/xalan-c/</a><br />銆銆Xalan鏄竴涓敤浜庢妸XML鏂囨。杞崲涓篐TML錛岀函鏂囨湰鎴栬呭叾浠朮ML綾誨瀷鏂囨。鐨刋SLT澶?br />鐞嗗櫒銆?/p> <p>銆銆(5) CMarkup</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.firstobject.com/xml.htm</a><br />銆銆榪欐槸涓縐嶄嬌鐢‥DOM鐨刋ML瑙f瀽鍣ㄣ傚湪寰堝鎬濊礬涓婇潰闈炲父鐏墊椿瀹炵敤銆傚煎緱澶у鍦―<br />OM鍜孲AX涔嬪瀵繪眰涓鐐圭伒鎰熴?/p> <p>銆銆(6) libxml++</p> <p>銆銆<a >http://libxmlplusplus.sourceforge.net/</a><br />銆銆libxml++鏄钁楀悕鐨刲ibxml XML瑙f瀽鍣ㄧ殑C++灝佽鐗堟湰</p> <p>銆銆5.6 縐戝璁$畻</p> <p>銆銆(1) Blitz++</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.oonumerics.org/blitz/</a><br />銆銆Blitz++ 鏄竴涓珮鏁堢巼鐨勬暟鍊艱綆楀嚱鏁板簱錛屽畠鐨勮璁$洰鐨勬槸甯屾湜寤虹珛涓濂楁棦鍏?br />鍍廋++ 涓鏍鋒柟渚匡紝鍚屾椂鍙堟瘮Fortran閫熷害鏇村揩鐨勬暟鍊艱綆楃幆澧冦傞氬父錛岀敤C++鎵鍐欏嚭<br />鐨勬暟鍊肩▼搴忥紝姣?Fortran鎱?0%宸﹀彸錛屽洜姝litz++姝f槸瑕佹敼鎺夎繖涓己鐐廣傛柟娉曟槸鍒?br />鐢–++鐨則emplate鎶鏈紝紼嬪簭鎵ц鐢氳嚦鍙互姣擣ortran鏇村揩銆侭litz++鐩墠浠嶅湪鍙戝睍涓?br />錛屽浜庡父瑙佺殑SVD錛孎FTs錛孮MRES絳夊父瑙佺殑綰挎т唬鏁版柟娉曞茍涓嶆彁渚涳紝涓嶈繃浣跨敤鑰呭彲浠?br />寰堝鏄撳湴鍒╃敤Blitz++鎵鎻愪緵鐨勫嚱鏁版潵鏋勫緩銆?/p> <p>銆銆(2) POOMA</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.codesourcery.com/pooma/pooma</a><br />銆銆POOMA鏄竴涓厤璐圭殑楂樻ц兘鐨凜++搴擄紝鐢ㄤ簬澶勭悊騫惰寮忕瀛﹁綆椼侾OOMA鐨勯潰鍚戝<br />璞¤璁℃柟渚夸簡蹇熺殑紼嬪簭寮鍙戯紝瀵瑰茍琛屾満鍣ㄨ繘琛屼簡浼樺寲浠ヨ揪鍒版渶楂樼殑鏁堢巼錛屾柟渚垮湪<br />宸ヤ笟鍜岀爺絀剁幆澧冧腑浣跨敤銆?/p> <p>銆銆(3) MTL</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.osl.iu.edu/research/mtl/</a><br />銆銆Matrix Template Library(MTL)鏄竴涓珮鎬ц兘鐨勬硾鍨嬬粍浠跺簱錛屾彁渚涗簡鍚勭鏍煎紡<br />鐭╅樀鐨勫ぇ閲忕嚎鎬т唬鏁版柟闈㈢殑鍔熻兘銆傚湪鏌愪簺搴旂敤浣跨敤楂樻ц兘緙栬瘧鍣ㄧ殑鎯呭喌涓嬶紝姣斿In<br />tel鐨勭紪璇戝櫒錛屼粠浜х敓鐨勬眹緙栦唬鐮佸彲浠ョ湅鍑哄叾涓庢墜鍐欏嚑涔庢病鏈変袱鏍風殑鏁堣兘銆?/p> <p>銆銆(4) CGAL</p> <p>銆銆鍙傝冪綉绔欙細<a >www.cgal.org</a></p> <p>銆銆Computational Geometry Algorithms Library鐨勭洰鐨勬槸鎶婂湪璁$畻鍑犱綍鏂歸潰鐨勫ぇ<br />閮ㄥ垎閲嶈鐨勮В鍐蟲柟妗堝拰鏂規硶浠++搴撶殑褰㈠紡鎻愪緵緇欏伐涓氬拰瀛︽湳鐣岀殑鐢ㄦ埛銆?/p> <p>銆銆5.7 娓告垙寮鍙?/p> <p>銆銆(1) Audio/Video 3D C++ Programming Library</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.galacticasoftware.com/products/av/</a><br />銆銆AV3D鏄竴涓法騫沖彴錛岄珮鎬ц兘鐨凜++搴撱備富瑕佺殑鐗規ф槸鎻愪緵3D鍥懼艦錛屽0鏁堟敮鎸侊紙S<br />B,浠ュ強S3M錛夛紝鎺у埗鎺ュ彛錛堥敭鐩橈紝榧犳爣鍜岄仴鎰燂級錛孹MS銆?/p> <p>銆銆(2) KlayGE</p> <p>銆銆鍙傝冪綉绔欙細<a >http://home.g365.net/enginedev/</a><br />銆銆鍥藉唴娓告垙寮鍙戦珮鎵嬭嚜宸辯敤C++寮鍙戠殑娓告垙寮曟搸銆侹layGE鏄竴涓紑鏀炬簮浠g爜銆佽法騫?br />鍙扮殑娓告垙寮曟搸錛屽茍浣跨敤Python浣滆剼鏈璦銆侹layGE鍦↙GPL鍗忚涓嬪彂琛屻傛劅璋㈤練鏁忔晱<br />鍏堢敓涓轟腑鍥芥父鎴忓紑鍙戜簨涓氭墍鍋氬嚭鐨勮礎鐚?/p> <p>銆銆(3) OGRE</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.ogre3d.org</a><br />銆銆OGRE錛堥潰鍚戝璞$殑鍥懼艦娓叉煋寮曟搸錛夋槸鐢–++寮鍙戠殑錛屼嬌鐢ㄧ伒媧葷殑闈㈠悜瀵硅薄3D寮曟搸<br />銆傚畠鐨勭洰鐨勬槸璁╁紑鍙戣呰兘鏇存柟渚垮拰鐩存帴鍦板紑鍙戝熀浜?D紜歡璁懼鐨勫簲鐢ㄧ▼搴忔垨娓告垙銆?br />寮曟搸涓殑綾誨簱瀵規洿搴曞眰鐨勭郴緇熷簱錛堝錛欴irect3D鍜孫penGL錛夌殑鍏ㄩ儴浣跨敤緇嗚妭榪涜浜?br />鎶借薄錛屽茍鎻愪緵浜嗗熀浜庣幇瀹炰笘鐣屽璞$殑鎺ュ彛鍜屽叾瀹冪被銆?/p> <p>銆銆5.8 綰跨▼</p> <p>銆銆(1) C++ Threads</p> <p>銆銆鍙傝冪綉绔欙細<a >http://threads.sourceforge.net/</a><br />銆銆榪欎釜搴撶殑鐩爣鏄粰紼嬪簭鍛樻彁渚涙槗浜庝嬌鐢ㄧ殑綾伙紝榪欎簺綾昏緇ф壙浠ユ彁渚涘湪Linux鐜<br />涓緢闅劇湅鍒扮殑澶ч噺鐨勭嚎紼嬫柟闈㈢殑鍔熻兘銆?/p> <p>銆銆(2) ZThreads</p> <p>銆銆鍙傝冪綉绔欙細<a >http://zthread.sourceforge.net/</a><br />銆銆涓涓厛榪涚殑闈㈠悜瀵硅薄錛岃法騫沖彴鐨凜++綰跨▼鍜屽悓姝ュ簱銆?/p> <p>銆銆5.9 搴忓垪鍖?/p> <p>銆銆(1) s11n</p> <p>銆銆鍙傝冪綉绔欙細<a >http://s11n.net/</a><br />銆銆涓涓熀浜嶴TL鐨凜++搴擄紝鐢ㄤ簬搴忓垪鍖朠OD錛孲TL瀹瑰櫒浠ュ強鐢ㄦ埛瀹氫箟鐨勭被鍨嬨?/p> <p>銆銆(2) Simple XML Persistence Library</p> <p>銆銆鍙傝冪綉绔欙細<a >http://sxp.sourceforge.net/</a><br />銆銆榪欐槸涓涓妸瀵硅薄搴忓垪鍖栦負XML鐨勮交閲忕駭鐨凜++搴撱?/p> <p>銆銆5.10 瀛楃涓?/p> <p>銆銆(1) C++ Str Library</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.utilitycode.com/str/</a><br />銆銆鎿嶄綔瀛楃涓插拰瀛楃鐨勫簱錛屾敮鎸乄indows鍜屾敮鎸乬cc鐨勫縐嶅鉤鍙般傛彁渚涢珮搴︿紭鍖栫殑<br />浠g爜錛屽茍涓旀敮鎸佸綰跨▼鐜鍜孶nicode錛屽悓鏃惰繕鏈夋鍒欒〃杈懼紡鐨勬敮鎸併?/p> <p>銆銆(2) Common Text Transformation Library</p> <p>銆銆鍙傝冪綉绔欙細<a >http://cttl.sourceforge.net/</a><br />銆銆榪欐槸涓涓В鏋愬拰淇敼STL瀛楃涓茬殑搴撱侰TTL substring綾誨彲浠ョ敤鏉ユ瘮杈冿紝鎻掑叆錛?br />鏇挎崲浠ュ強鐢‥BNF鐨勮娉曡繘琛岃В鏋愩?/p> <p>銆銆(3) GRETA</p> <p>銆銆鍙傝冪綉绔欙細<a >http://research.microsoft.com/projects/greta/</a><br />銆銆榪欐槸鐢卞井杞爺絀墮櫌鐨勭爺絀朵漢鍛樺紑鍙戠殑澶勭悊姝e垯琛ㄨ揪寮忕殑搴撱傚湪灝忓瀷鍖歸厤鐨勬儏鍐?br />涓嬫湁闈炲父浼樼鐨勮〃鐜般?/p> <p>銆銆5.11 緇煎悎</p> <p>銆銆(1) P::Classes</p> <p>銆銆鍙傝冪綉绔欙細<a >http://pclasses.com/</a><br />銆銆涓涓珮搴﹀彲縐繪鐨凜++搴旂敤紼嬪簭妗嗘灦銆傚綋鍓嶅叧娉ㄧ被鍨嬪拰綰跨▼瀹夊叏鐨剆ignal/slot<br />鏈哄埗錛宨/o緋葷粺鍖呮嫭鍩轟簬鎻掍歡鐨勭綉緇滃崗璁忔槑鐨刬/o鏋舵瀯錛屽熀浜庢彃浠剁殑搴旂敤紼嬪簭娑堟伅<br />鏃ュ織妗嗘灦錛岃闂畇ql鏁版嵁搴撶殑綾葷瓑絳夈?/p> <p>銆銆(2) ACDK - Artefaktur Component Development Kit</p> <p>銆銆鍙傝冪綉绔欙細<a >http://acdk.sourceforge.net/</a><br />銆銆榪欐槸涓涓鉤鍙版棤鍏崇殑C++緇勪歡妗嗘灦錛岀被浼間簬Java鎴栬?NET涓殑妗嗘灦錛堝弽灝勬満鍒訛紝<br />綰跨▼錛孶nicode錛屽簾鏂欐敹闆嗭紝I/O錛岀綉緇滐紝瀹炵敤宸ュ叿錛孹ML錛岀瓑絳夛級錛屼互鍙婂Java, P<br />erl, Python, TCL, Lisp, COM 鍜?CORBA鐨勯泦鎴愩?/p> <p>銆銆(3) dlib C++ library</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.cis.ohio-state.edu/~kingd/dlib/</a><br />銆銆鍚勭鍚勬牱鐨勭被鐨勪竴涓患鍚堛傚ぇ鏁存暟錛孲ocket錛岀嚎紼嬶紝GUI錛屽鍣ㄧ被,浠ュ強嫻忚鐩?br />褰曠殑API絳夌瓑銆?/p> <p>銆銆(4) Chilkat C++ Libraries</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.chilkatsoft.com/cpp_libraries.asp</a><br />銆銆榪欐槸鎻愪緵zip錛宔-mail錛岀紪鐮侊紝S/MIME錛孹ML絳夋柟闈㈢殑搴撱?/p> <p>銆銆(5) C++ Portable Types Library (PTypes)</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.melikyan.com/ptypes/</a><br />銆銆榪欐槸STL鐨勬瘮杈冪畝鍗曠殑鏇夸唬鍝侊紝浠ュ強鍙Щ妞嶇殑澶氱嚎紼嬪拰緗戠粶搴撱?/p> <p>銆銆(6) LFC</p> <p>銆銆鍙傝冪綉绔欙細<a >http://lfc.sourceforge.net/</a><br />銆銆鍝︼紝榪欏張鏄竴涓皾璇曟彁渚涗竴鍒囩殑C++搴?/p> <p>銆銆5.12 鍏朵粬搴?/p> <p>銆銆(1) Loki</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.moderncppdesign.com/</a><br />銆銆鍝︼紝浣犲彲鑳芥姳鎬ㄦ垜鏃╄鍜孊oost涓璧蜂粙緇嶅畠錛屼竴涓疄楠屾ц川鐨勫簱銆備綔鑰呭湪loki涓?br />鎶奀++妯℃澘鐨勫姛鑳藉彂鎸ュ埌浜嗘瀬鑷淬傚茍涓斿皾璇曟妸綾諱技璁捐妯″紡榪欐牱鎬濇兂灞傞潰鐨勪笢瑗塊氳繃<br />搴撴潵鎻愪緵銆傚悓鏃惰繕鎻愪緵浜嗘櫤鑳芥寚閽堣繖鏍鋒瘮杈冨疄鐢ㄧ殑鍔熻兘銆?/p> <p>銆銆(2) ATL</p> <p>銆銆ATL(Active Template Library)<br />銆銆鏄竴緇勫皬宸с侀珮鏁堛佺伒媧葷殑綾伙紝榪欎簺綾諱負鍒涘緩鍙簰鎿嶄綔鐨凜OM緇勪歡鎻愪緵浜嗗熀鏈殑<br />璁炬柦銆?/p> <p>銆銆(3) FC++: The Functional C++ Library<br />銆銆榪欎釜搴撴彁渚涗簡涓浜涘嚱鏁板紡璇█涓墠鏈夌殑瑕佺礌銆傚睘浜庣敤搴撴潵鎵╁厖璇█鐨勪竴涓唬琛?br />浣溿傚鏋滄兂瑕佸湪OOP涔嬪瀵繪壘鍙︿竴鍒嗙殑涔愯叮錛屽彲浠ュ幓鐪嬬湅鍑芥暟寮忕▼搴忚璁$殑涓栫晫銆傚ぇ<br />甯圥eter Norvig鍦?鈥淭each Yourself Programming in Ten Years鈥濅竴鏂囦腑灝卞皢鍑?br />鏁板紡璇█鍒椾負鑷沖皯搴斿綋瀛︿範鐨?綾葷紪紼嬭璦涔嬩竴銆?/p> <p>銆銆(4) FACT!</p> <p>銆銆鍙傝冪綉绔欙細<a >http://www.kfa-juelich.de/zam/FACT/start/index.html</a><br />銆銆鍙﹀涓涓疄鐜板嚱鏁板紡璇█鐗規х殑搴?/p> <p>銆銆(5) Crypto++<br />銆銆鎻愪緵澶勭悊瀵嗙爜錛屾秷鎭獙璇侊紝鍗曞悜hash錛屽叕鍖欏姞瀵嗙郴緇熺瓑鍔熻兘鐨勫厤璐瑰簱銆?/p> <p>銆銆榪樻湁寰堝闈炲父嬋鍔ㄤ漢蹇冩垨鑰呮槸鏋佸叾瀹炵敤鐨凜++搴擄紝闄愪簬鎴戜滑鐨勬按騫充互鍙婃枃绔犵殑綃?br />騫呬笉鑳藉寘鎷繘鏉ャ傚湪瀵逛簬榪欎簺宸茬粡鍖呭惈榪戞潵鐨勫簱鐨勪粙緇嶄腑錛岀敱浜庡茍涓嶆槸姣忎竴涓垜浠?br />閮戒嬌鐢ㄨ繃錛屾墍浠ラ毦鍏嶆湁鍋忛涔嬪錛岃璇昏呰璋呫?/p> <p>銆銆6錛屼功綾?/p> <p>銆銆浠ュ墠鐔婅妭鍏堢敓鏇炬挵鏂囪瘎璁虹浉瀵逛簬Java紼嬪簭璁捐璇█錛孋++鐨勫ソ涔﹀濡傜墰姣涖傝崳鑰<br />鍏堢敓鍦ㄣ婄▼搴忓憳銆嬫潅蹇椾笂鎾版枃銆奀++紼嬪簭璁捐涔嬪洓涔︿簲緇忋嬩篃灝嗘湰棰嗗煙鍐呭嚑涔庢墍鏈夌殑<br />緇忓吀涔︾睄浣滀簡鍏ㄩ潰鐨勪粙緇?浠諱綍鍏充簬涔︾殑璇勮姝ゆ椂鐪嬫潵渚挎槸寰堝浣欑殑浜嗐備釜浜烘祬瑙侊紝<br />闄ら潪浣犳墦綆椾互C++浣滀負鍞竴鍏磋叮鎴栬呯敓瀛樹箣鏈紝涓鑸鑰呯‘瀹炴病鏈夎凍澶熺殑鏃墮棿鍜屽繀瑕?br />灝?0浣欐湰涔︾睄鍏ㄩ儴闃呰銆傛洿鏈夊弬鑰冧環鍊肩殑鏄崳鑰鍏堢敓鐨勫彟涓綃囨枃绔狅細銆婅嚦灝戝簲璇ラ槄<br />璇葷殑涔濇湰C++钁椾綔銆嬶紝鍙互浠庝笅闈㈢殑鍦板潃嫻忚鍒版鏂囷細</p> <p>銆銆<a >http://www.royaloo.com/articles/articles_2003/9CppBooks.htm</a><br />銆銆涓嬮潰鍑犳湰涔﹀浜庤蛋鍦–++鍒濆涔嬭礬涓婄殑璇昏呮槸鎴戜滑鏈鎰挎剰鎺ㄨ崘緇欏ぇ瀹剁殑錛?/p> <p>銆銆(1) 銆奀++ Primer銆?/p> <p>銆銆鍝︼紝涔熻浣犱細鎶辨ㄦ垜浠負浠涔堜笉鍏堜粙緇峊CPL,浣嗗浜庤蛋鍦ㄥ涔犱箣璺笂鐨勫叆闂ㄨ咃紝<br />鏈功鍐呭鏇翠負鍏ㄩ潰錛屾洿涓鴻緇嗘槗鎳傦紝鎴戜滑縐板畠涓衡淐++鐨勮秴綰у疂鍏糕濆茍涓嶈繃鍒嗐傞厤鏈?br />涓鏈笉閿欑殑涔犻瑙g瓟銆奀++ Primer Answer Book銆嬪彲浠ヨ緟鍔╀綘鐨勫涔犱箣璺?/p> <p>銆銆(2) 銆奅ssential C++銆?/p> <p>銆銆濡傛灉璇淬奀++ Primer銆嬫槸C++棰嗗煙鐨勮秴綰у疂鍏革紝閭d箞姝や功浣滀負鎺屾彙C++鐨勫ぇ灞瑙?br />褰撲箣鏃犳劎銆傛濡傘?NET澶у眬瑙傘嬩竴涔﹁兘澶熻璇昏呭叏鎻?NET錛屾湰涔﹁榪頒簡C++涓渶鏍稿績<br />鐨勫叏閮ㄤ富棰樸備功铏戒笉鍘氾紝鍐呭綺劇偧錛屼笉澶變負銆奀++ Primer銆嬭鑰呰尪浣欓キ鍚庣殑涓婚鍥?br />欏句箣浣溿?/p> <p>銆銆(3) 銆奣he C++ Programming Language銆?/p> <p>銆銆Bjarne涓轟綘甯︽潵鐨凜++鏁欑▼錛岀湡姝h兘澶熷憡璇変綘鎬庝箞鐢ㄦ墠鍙湡姝g殑C++鐨勫敮涓涓鏈?br />涔︺傝櫧鐒跺鍚屸滄煇鏌愮▼搴忚璁¤璦鈥濊繖鏍風殑涔︾睄浼氱粰澶у涓涓唴瀹瑰叏鎻斤紝鍏ラ棬鍒扮簿<br />閫氱殑鎰熻錛屼絾鏈功紜疄涓嶅お閫傚悎鍒濆鑰呴槄璇匯傚鏋滀綘鑷涓烘槸涓鍚嶅緢鏈夌粡楠岀殑C++紼?br />搴忓憳錛岄偅鑷沖皯涔熻鍙嶅鍜鍤糂jarne鍏堢敓鎵寮鴻皟鐨勮嫢騫插唴瀹廣?/p> <p>銆銆(4) 銆奅ffective C++銆嬶紝銆奙ore Effective C++銆?/p> <p>銆銆鏄殑錛屾濡備竴浜汣++鐖卞ソ鑰呯粡甯鎬互璇昏繃涓庢病鏈夎榪囦笂榪頒袱鏈綔鍝佹潵鍖哄垎浣犳槸鍚︽槸<br />C++楂樻墜銆傛垜浠篃鏋佸姏鎺ㄥ磭榪欎袱鏈憲浣溿傚湪鍚勭浠嬬粛C++涓撳緇忛獙鐨勪功綾嶉噷闈紝榪欎袱<br />鏈槸鏈璐磋繎璇█鏈川錛岀湅鍚庢渶鑳藉鏈夎劚鑳庢崲楠ㄦ劅瑙夌殑涔︼紝璇繪涔︿綘闇姣忔棩涓夌渷姹濊韓<br />銆?/p> <p>銆銆鎶鏈功綾嶄粊鑰呰浠侊紝榪囧鐨勮瘎璁哄弽鏃犲お澶氭剰涔夛紝鐢辮鑰呭枩濂介夋嫨鏈閫傚悎鑷繁鐨?br />涔︽柟涓轟笂絳栥?/p> <p> <br />銆銆7錛岃祫婧愮綉绔?/p> <p>銆銆姝e鎴戜滑鍙互閫氳繃璁$畻鏈哄巻鍙蹭笂鐨勯噸瑕佷漢鐗╀簡瑙h綆楁満鍙茬殑鍙戝睍錛孋++鐩稿叧浜虹墿<br />鐨勭綉绔欎篃鍙互浣挎垜浠緱鍒版渶鏈変環鍊肩殑鍙傝冧笌鍊熼壌錛屼笅闈㈢殑浜虹墿鎴戜滑璁や負娌℃湁浠嬬粛鐨?br />蹇呰錛屽彧鍥犱笅闈㈢殑浜虹墿鍦–++棰嗗煙鐨勫湴浣嶄紬鎵鍛ㄧ煡錛屾垜浠彧灝嗙浉鍏崇殑璧勬簮榪涜緗楀垪浠?br />渚涜鑰呭涔狅紝浠栦滑鏈夌殑宸ヤ綔浜庤礉灝斿疄楠屽錛屾湁鐨勫伐浣滀簬鐭ュ悕緙栬瘧鍣ㄥ巶鍟嗭紝鏈夌殑鍦ㄤ笉<br />鏂帹榪涜璦鐨勬爣鍑嗗寲錛屾湁鐨勪負璇昏呮挵鍐欎簡澶氶儴鍗冨彜濂囦綔鈥︹?br />銆銆(1) Bjarne Stroustrup<br />銆銆<a >http://www.research.att.com/~bs/</a></p> <p>銆銆(2) Stanley B. Lippman<br />銆銆<a >http://blogs.msdn.com/slippman/</a><br />銆銆涓枃鐗?<a >http://www.zengyihome.net/slippman/index.htm</a></p> <p>銆銆(3) Scott Meyers<br />銆銆<a >http://www.aristeia.com/</a></p> <p>銆銆(4) David Musser<br />銆銆<a >http://www.cs.rpi.edu/~musser/</a></p> <p>銆銆(5) Bruce Eckel<br />銆銆<a >http://www.bruceeckel.com</a></p> <p>銆銆(6) Nicolai M. Josuttis<br />銆銆<a >http://www.josuttis.com/</a></p> <p>銆銆(7) Herb Sutter<br />銆銆<a >http://www.gotw.ca/</a></p> <p>銆銆(8) Andrei Alexandrescu<br />銆銆<a >http://www.coderncppdesign.com/</a></p> <p>銆銆(9) 渚嵎鍏堢敓<br />銆銆<a >http://www.jjhou.com</a></p> <p>銆銆(10) 瀛熷博鍏堢敓<br />銆銆鍏堢敓綣佸繖浜庡伐浣滐紝鐥磋糠浜庢妧鏈紝鏆傛棤涓漢涓婚〉錛屽叧浜庡厛鐢熺殑浣滃搧鍙互閫氳繃CSDN<br />鐨勪笓鏍忓拰渚厛鐢熺殑涓婚〉璁塊棶鍒般?/p> <p>銆銆(11) 鑽h鍏堢敓<br />銆銆<a >http://www.royaloo.com/</a></p> <p>銆銆(12) 娼樼埍姘戝厛鐢?br />銆銆<a >http://www.icst.pku.edu.cn/panaimin/pam_homepage.htm</a></p> <p>銆銆闄や簡涓婅堪澶у笀鐨勪富欏靛錛屼互涓嬬殑緇煎悎綾籆++瀛︿範鍙傝冪珯鐐規槸鎴戜滑闈炲父鎰挎剰鍚戝ぇ瀹?br />鎺ㄨ崘鐨勶細</p> <p>銆銆(1) CodeProject<br />銆銆<a >http://www.codeproject.com</a></p> <p>銆銆(2) CodeGuru<br />銆銆<a >http://www.codeguru.com</a></p> <p>銆銆(3) Dr. Dobb's Journal<br />銆銆<a >http://www.ddj.com</a></p> <p>銆銆(4) C/C++ Users Journal<br />銆銆<a >http://www.cuj.com</a></p> <p>銆銆(5) C緇磋鐐?br />銆銆<a >http://www.c-view.org</a></p> <p>銆銆(6) allaboutprogram<br />銆銆<a >http://www.allaboutprogram.com</a><br />銆銆鍏朵粬璧勬枡</p> <p>銆銆(1) ISO IEC JTC1/SC22/WG21 - C++錛氭爣鍑咰++鐨勬潈濞佸弬鑰?br />銆銆<a >http://anubis.dkuug.dk/jtc1/sc22/wg21/</a></p> <p>銆銆(2) C++ FAQ LITE 鈥?Frequently Asked Questions: 鏈涓哄叏闈㈢殑C++FAQ<br />銆銆<a >http://www.sunistudio.com/cppfaq/index.html</a><br />銆銆C/C++ 鏂伴椈緇勶細<br />銆銆浣犱笉濡ㄥ皾璇曚粠榪欓噷鎻愰棶鍜屽洖絳旈棶棰橈紝寰堝涓嶉敊鐨凲&A璧勬簮......</p> <p>銆銆(1) .alt.comp.lang.learn.c-c++<br />銆銆榪欎釜綆鍗曚簺錛屽鏋滀綘鍜屾垜涓鏍鋒槸涓彍楦?/p> <p>銆銆(2) .comp.lang.c++.moderated<br />鍡紝榪欎釜鏄劇劧姘村鉤楂樹竴浜?/p> <p>銆銆(3) .comp.std.c++<br />銆銆濡傛灉浣犻渶瑕佽璁烘爣鍑咰++鐩稿叧璇濋鐨勮瘽</p> <p>銆銆8錛屼笉寰椾笉鍐欑殑緇撴潫璇?/p> <p>銆銆緇撴潫鐨勬椂鍊欎篃鏄葷粨鐜扮姸錛屽睍鏈涙湭鏉ョ殑鏃跺欍傝櫧鐒禖++浠庤劚鑳庝簬C寮濮嬶紝涓璺壈<br />闅懼潕鍧風殑璧拌繃鏉ワ紝浣嗘槸鏃犺濡備綍C++宸茬粡鍙栧緱浜嗗伐涓氬熀紜鐨勫湴浣嶃傛枃绔犲垪涓劇殑澶ч噺鐩稿叧<br />璧勬簮灝辨槸鏈濂界殑璇佹槑錛岃屼笟鐣岀殑澶ч噺鐢–++鍐欐垚鐨勪駭鍝佷唬鐮佷互鍙婂ぇ閲忕殑C++鑱屼笟宸ョ▼<br />甯堝垯鏄渶鐩存帴鐨勮瘉鏄庛傚悓鏃訛紝鎴戜滑鍙互鐪嬪埌鍚勪釜楂樻牎鐨勮綆楁満涓撲笟閮藉紑璁炬湁C++榪欓棬<br />璇劇▼錛岀綉緇滀笂瀵逛簬C++鐨勫涔犺璁轟篃浠庢潵閮芥病鏈夊仠榪囥備絾鏄紝鍦↗ava鍜?NET涓ゅぇ浼佷笟<br />寮鍙戝鉤鍙扮殑鍥存敾涓嬶紝緇欎漢鐨勬劅瑙夋槸C++瓚婃潵瓚娾滀笉琛屸濅簡銆?/p> <p>銆銆C++鍦ㄩ潰鍚戜紒涓氱殑杞歡寮鍙戜腑錛屽湪寮鍙戜究鎹鋒х瓑鏂歸潰鐨勭‘瑕佹瘮Java鍜孋#宸緢澶氾紝<br />鍏朵腑涓涓棶棰樻槸C++璇█鏈韓姣旇緝澶嶆潅錛屽涔犳洸綰挎瘮杈冮櫋宄紝鍙﹀涓涓棶棰樻槸C++鏍?br />鍑嗗寲鐨勬椂闂村お闀匡紝涓уけ浜嗗緢澶氱殑澹ぇ鏈轟細錛岃楄垂浜嗗緢澶氱簿鍔涘湪鍘傚晢鐨勪箣闂寸殑鏂椾簤涓?br />錛岃孋++鐨勬爣鍑嗗簱紱諱竴涓畬鍠勭殑紼嬪簭寮鍙戞鏋惰繕緙哄皯澶澶鐨勫唴瀹癸紝鍚勪釜絎笁鏂圭殑<br />綾誨簱鍜屾鏋跺張鍦ㄤ竴鑷存у拰瀹屾暣鎬т笂娌℃硶鍜岄殢騫沖彴鎻愪緵鐨勬鏋剁浉鎻愬茍璁恒傞毦閬揅++鐪熺殑<br />瑕侀鍑哄巻鍙茶垶鍙頒簡錛?/p> <p>銆銆浠嶤++鐩墠鐨勬椿璺冪▼搴︼紝浠ュ強搴旂敤鐜扮姸鏉ヨ鏄畬鍏ㄨ兘澶熻偗瀹欳++浠嶇劧鏄蔣浠跺伐涓?br />鐨勫熀紜錛屼篃涓嶄細閫鍑哄巻鍙茶垶鍙扮殑銆傚彟澶栦粠Boost錛孡oki榪欎簺搴撲腑鎴戜滑涔熻兘澶熺湅鍒癈++<br />鐨勫彂灞曢潪甯告椿璺冿紝瀵逛簬鏂版妧鏈柊鎬濈淮闈炲父嬋榪涳紝C++浠嶇劧騫挎硾鍙楀埌鍏蟲敞銆備粠ACE鍦ㄩ珮<br />鎬ц兘閫氫俊棰嗗煙鐨勫簲鐢紝浠ュ強MTL榪欐牱鐨勫簱鍦ㄦ暟鍊艱綆楅鍩熺殑鍑鴻壊琛ㄧ幇錛屾垜浠彲浠ョ湅鍒?br />C++鍦ㄩ珮鎬ц兘搴旂敤鍦哄悎涓嬬殑涓嶅彲鏇夸唬鐨勪綔鐢紝鑰屽祵鍏ュ紡緋葷粺榪欐牱鐨勫唴瀛樺彈闄愬紑鍙戝鉤鍙?br />錛屾瘮濡係ymbian OS涓婏紝C++宸茬粡鍙戞尌鐫騫朵笖灝嗗彂鎸ユ洿澶х殑浣滅敤銆傚彲浠ラ瑙佺殑鏄互鍚庣殑<br />杞歡鏃犺涓婂眰鐨勫簲鐢ㄦ庝箞鍙橈紝瀹冪殑搴曞眰鏍稿績閮戒細鏄敱C/C++榪欐牱鐨勭郴緇熺駭杞歡緙栧啓鐨?br />錛屾瘮濡侸ava铏氭嫙鏈猴紝.NET Framwork銆傚洜涓哄彧鏈夎繖鏍風殑緋葷粺綰ц蔣浠舵墠鑳藉畬鍏ㄥ交搴曠殑鍙?br />鎸ユ満鍣ㄧ殑鍔熻兘銆?/p> <p>銆銆闇瑕佺湅鍒扮殑鏄袱涓秼鍔匡紝涓涓秼鍔挎槸C++鍙樺緱鏇村姞澶嶆潅錛屾洿鍔犲闄㈡淳錛岄氳繃妯℃澘<br />絳夋湁娼滃姏鐨勮娉曞洜绱犳瀯閫犺秺鏉ヨ秺綺懼閥鐨勫簱鎴愪負浜嗙幇浠++鐨勭儹鐐癸紝铏界劧鍦ㄥ埄鐢ㄥ簱瀹炵幇<br />鏂扮殑緙栫▼鑼冨紡錛屼箖鑷寵璁℃ā寮忕瓑鏂歸潰寰堟湁寮鍒涙剰涔夛紝涔熺‘瀹炰駭鐢熶簡涓浜涜兘澶熶究鎹峰紑<br />鍙戠殑宸ュ叿錛屼絾鏄洿澶氱殑鏄妸C++鍙樺緱鏇村姞寮哄ぇ錛屾洿鍔犲鏉傦紝涔熸洿鍔犻毦鎳傦紝浼間箮涔熸洿鍔?br />瀛﹂櫌媧撅紝涓嶅緱涓嶈瀹冩鍦ㄥ悜杈圭紭鍖栭亾璺彂灞曘傚彟涓涓秼鍔挎槸C++鍦ㄤ富嫻佺殑浼佷笟搴旂敤寮<br />鍙戜腑宸茬粡閫愭笎閫鍑轟簡錛孍RP榪欐牱鐨勪紒涓氳蔣浠跺紑鍙戜腑鍩烘湰涓婁笉浼氳冭檻C++錛岄櫎闈為渶瑕佽?br />铏戞ц兘鎴栬呭拰閬楃暀浠g爜鐨勯泦鎴愯繖浜涘洜绱犮侰++閫瀹堝埌緋葷粺綰у埆璇█錛屾垚涓鴻蔣浠跺伐涓氱殑<br />鍩虹鏄ぇ鍔挎墍瓚嬨傜劧鑰屽弽鎬濅竴涓嬶紝鐪熺殑鏄瀹堜箞錛熻嚜浠嶴TL鍑虹幇錛屾棤鏁扮殑浜洪璧蜂簯娑?br />鐨勫紑濮嬫敮鎸丆++,浠栦滑鐙傚懠鈥滄垜鐪嬪埌娣卞娑堝け浜嗭紝鐩爣杞歡宸ョ▼鐨勫嚭鐜般傛垜鐪嬪埌浜嗗彲<br />緇存姢鐨勪唬鐮併傗濇槸鐨勶紝STL鍦ㄥ彲緇存姢鎬т笅鍋氬緱濡傛鍑鴻壊銆備絾鏄張鎬庢牱鍛紵STL涓篊++閾?br />騫充簡鐜頒唬杞歡宸ョ▼鐨勯亾璺紝鑰屽湪涓婂眰搴旂敤紼嬪簭杞歡寮鍙戦鍩熻繖鍧楀満鍦版棭涓嶅崟鐙睘浜?br />C++,寰堝紼嬪簭璁捐璇█閮藉仛寰楀緢鍑鴻壊錛岀柉鐙傜殑鏀寔鑰呬細姣笉鐘硅鮑鍦拌鎴戜滑搴斿綋鏀寔<br />C++,鍥犱負瀹冩槸涓栫晫涓婃渶媯掔殑璇█銆傝屽潶鐜囧湴璇達紝浣犵殑鑵版潌鐪熺殑閭d箞紜箞錛熶篃璁稿彧鏄?br />鍦ㄩ冮伩涓浜涗簨瀹炪侰++鏄紭縐鐨勶紝榪欎笉鍙惁璁わ紝STL鐨勫嚭鐜拌C++涓搴﹁蛋涓婁簡鏈杈夌厡鐨?br />鏃跺埢錛岀劧鑰岀幇鍦ㄧ湅鏉モ︹︽垜鐨勪竴浣嶆仼甯堟浘璦錛氱湡姝h兘澶熷皢STL搴旂敤寰楁穻婕撳敖鑷寸殑浜哄緢<br />淇濆畧鍦拌鍥藉唴涔熶笉瓚呰繃200浜猴紝鎴栬涓嶅姞鍏TL鑳藉浣緾++鍚戠潃瀹冨簲褰撳彂灞曠殑鏂瑰悜鍙戝睍<br />鐨勬洿濂斤紝鑰岀幇鍦ㄧ湅鏉ワ紝C++涔熷簲褰撳洖棣栧埌鐪熸灞炰簬浠栫殑閭d竴鐗囧湥鍦頒笂鈥︹?/p> <p>鍙傝冭祫鏂?/p> <p>鏈枃鎴愭枃鏃跺弬鑰冧簡浠ヤ笅璧勬簮錛?/p> <p>1銆併婄▼搴忓憳銆?004騫?鏈堬紝3鏈堬紝鈥淐++ 紼嬪簭璁捐涔嬪洓涔︿簲緇忊?鑽h<br />2銆佹按'鏈ㄦ竻鍗嶣BS C++鐗堢簿鍗庡尯<br />3銆?a >http://jjhou.csdn.net</a><br />4銆?a >http://www.royaloo.com</a><br />5銆?a >http://www.zengyihome.net</a><br />6銆丆/C++ 寮鍙戜漢鍛橈細鍏呭疄鎮ㄧ殑 XML 宸ュ叿綆?</p> <img src ="http://m.shnenglu.com/Lee/aggbug/74811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2009-02-25 00:26 <a href="http://m.shnenglu.com/Lee/archive/2009/02/25/74811.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浜岃繘鍒躲佸叓榪涘埗銆佸崄榪涘埗銆佸崄鍏繘鍒朵箣闂磋漿鎹紙杞級http://m.shnenglu.com/Lee/archive/2009/02/13/73736.htmlDavid LeeDavid LeeFri, 13 Feb 2009 10:15:00 GMThttp://m.shnenglu.com/Lee/archive/2009/02/13/73736.htmlhttp://m.shnenglu.com/Lee/comments/73736.htmlhttp://m.shnenglu.com/Lee/archive/2009/02/13/73736.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/73736.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/73736.html 涓銆?鍗佽繘鍒朵笌浜岃繘鍒朵箣闂寸殑杞崲
錛?錛?鍗佽繘鍒惰漿鎹負浜岃繘鍒訛紝鍒嗕負鏁存暟閮ㄥ垎鍜屽皬鏁伴儴鍒?
鈶?鏁存暟閮ㄥ垎
鏂規硶錛氶櫎2鍙栦綑娉曪紝鍗蟲瘡嬈″皢鏁存暟閮ㄥ垎闄や互2錛屼綑鏁頒負璇ヤ綅鏉冧笂鐨勬暟錛岃屽晢緇х畫闄や互2錛屼綑鏁板張涓轟笂涓涓綅鏉冧笂鐨勬暟錛岃繖涓楠や竴鐩存寔緇笅鍘伙紝鐩村埌鍟嗕負0涓烘錛屾渶鍚庤鏁版椂鍊欙紝浠庢渶鍚庝竴涓綑鏁拌璧鳳紝涓鐩村埌鏈鍓嶉潰鐨勪竴涓綑鏁般備笅闈婦渚嬶細
渚嬶細灝嗗崄榪涘埗鐨?68杞崲涓轟簩榪涘埗

寰楀嚭緇撴灉 灝嗗崄榪涘埗鐨?68杞崲涓轟簩榪涘埗錛岋紙10101000錛?
鍒嗘瀽:絎竴姝ワ紝灝?68闄や互2,鍟?4,浣欐暟涓?銆?
絎簩姝ワ紝灝嗗晢84闄や互2錛屽晢42浣欐暟涓?銆?
絎笁姝ワ紝灝嗗晢42闄や互2錛屽晢21浣欐暟涓?銆?
絎洓姝ワ紝灝嗗晢21闄や互2錛屽晢10浣欐暟涓?銆?
絎簲姝ワ紝灝嗗晢10闄や互2錛屽晢5浣欐暟涓?銆?
絎叚姝ワ紝灝嗗晢5闄や互2錛屽晢2浣欐暟涓?銆?
絎竷姝ワ紝灝嗗晢2闄や互2錛屽晢1浣欐暟涓?銆?
絎叓姝ワ紝灝嗗晢1闄や互2錛屽晢0浣欐暟涓?銆?
絎節姝ワ紝璇繪暟錛屽洜涓烘渶鍚庝竴浣嶆槸緇忚繃澶氭闄や互2鎵嶅緱鍒扮殑錛屽洜姝ゅ畠鏄渶楂樹綅錛岃鏁板瓧浠庢渶鍚庣殑浣欐暟鍚戝墠璇伙紝鍗?0101000

錛?錛?灝忔暟閮ㄥ垎
鏂規硶錛氫箻2鍙栨暣娉曪紝鍗沖皢灝忔暟閮ㄥ垎涔樹互2錛岀劧鍚庡彇鏁存暟閮ㄥ垎錛屽墿涓嬬殑灝忔暟閮ㄥ垎緇х畫涔樹互2錛岀劧鍚庡彇鏁存暟閮ㄥ垎錛屽墿涓嬬殑灝忔暟閮ㄥ垎鍙堜箻浠?錛屼竴鐩村彇鍒板皬鏁伴儴鍒?
涓洪浂涓烘銆傚鏋滄案榪滀笉鑳戒負闆訛紝灝卞悓鍗佽繘鍒舵暟鐨勫洓鑸嶄簲鍏ヤ竴鏍鳳紝鎸夌収瑕佹眰淇濈暀澶氬皯浣嶅皬鏁版椂錛屽氨鏍規嵁鍚庨潰涓浣嶆槸0榪樻槸1錛屽彇鑸嶏紝濡傛灉鏄浂錛岃垗鎺夛紝濡傛灉鏄?錛屽悜鍏ヤ竴浣嶃傛崲鍙ヨ瘽璇村氨鏄?鑸?鍏ャ傝鏁拌浠庡墠闈㈢殑鏁存暟璇誨埌鍚庨潰鐨勬暣鏁幫紝涓嬮潰涓句緥錛?
渚?錛氬皢0.125鎹㈢畻涓轟簩榪涘埗

寰楀嚭緇撴灉錛氬皢0.125鎹㈢畻涓轟簩榪涘埗錛?.001錛?
鍒嗘瀽錛氱涓姝ワ紝灝?.125涔樹互2錛屽緱0.25,鍒欐暣鏁伴儴鍒嗕負0,灝忔暟閮ㄥ垎涓?.25;
絎簩姝? 灝嗗皬鏁伴儴鍒?.25涔樹互2,寰?.5,鍒欐暣鏁伴儴鍒嗕負0,灝忔暟閮ㄥ垎涓?.5;
絎笁姝? 灝嗗皬鏁伴儴鍒?.5涔樹互2,寰?.0,鍒欐暣鏁伴儴鍒嗕負1,灝忔暟閮ㄥ垎涓?.0;
絎洓姝?璇繪暟,浠庣涓浣嶈璧?璇誨埌鏈鍚庝竴浣?鍗充負0.001銆?


渚?,灝?.45杞崲涓轟簩榪涘埗錛堜繚鐣欏埌灝忔暟鐐圭鍥涗綅錛?


澶у浠庝笂闈㈡楠ゅ彲浠ョ湅鍑猴紝褰撶浜旀鍋氫箻娉曟椂鍊欙紝寰楀埌鐨勭粨鏋滄槸0.4錛岄偅涔堝皬鏁伴儴鍒嗙戶緇箻浠?錛屽緱0.8錛?.8鍙堜箻浠?鐨勶紝鍒?.6榪欐牱涓鐩翠箻涓嬪幓錛屾渶鍚庝笉鍙兘寰楀埌灝忔暟閮ㄥ垎涓洪浂錛屽洜姝わ紝榪欎釜鏃跺欏彧濂藉涔犲崄榪涘埗鐨勬柟娉曡繘琛屽洓鑸嶄簲鍏ヤ簡錛屼絾鏄簩榪涘埗鍙湁0鍜?涓や釜錛屼簬鏄氨鍑虹幇0鑸?鍏ャ傝繖涓篃鏄綆楁満鍦ㄨ漿鎹腑浼氫駭鐢熻宸紝浣嗘槸鐢變簬淇濈暀浣嶆暟寰堝錛岀簿搴﹀緢楂橈紝鎵浠ュ彲浠ュ拷鐣ヤ笉璁°?
閭d箞錛屾垜浠彲浠ュ緱鍑虹粨鏋滃皢0.45杞崲涓轟簩榪涘埗綰︾瓑浜?.0111
涓婇潰浠嬬粛鐨勬柟娉曟槸鍗佽繘鍒惰漿鎹負涓轟簩榪涘埗鐨勬柟娉曪紝闇瑕佸ぇ瀹舵敞鎰忕殑鏄細
1錛?鍗佽繘鍒惰漿鎹負浜岃繘鍒訛紝闇瑕佸垎鎴愭暣鏁板拰灝忔暟涓や釜閮ㄥ垎鍒嗗埆杞崲
2錛?褰撹漿鎹㈡暣鏁版椂錛岀敤鐨勯櫎2鍙栦綑娉曪紝鑰岃漿鎹㈠皬鏁版椂鍊欙紝鐢ㄧ殑鏄箻2鍙栨暣娉?
3錛?娉ㄦ剰浠栦滑鐨勮鏁版柟鍚?
鍥犳錛屾垜浠粠涓婇潰鐨勬柟娉曪紝鎴戜滑鍙互寰楀嚭鍗佽繘鍒舵暟168.125杞崲涓轟簩榪涘埗涓?0101000.001,鎴栬呭崄榪涘埗鏁拌漿鎹負浜岃繘鍒舵暟綰︾瓑浜?0101000.0111銆?

錛?錛?浜岃繘鍒惰漿鎹負鍗佽繘鍒?涓嶅垎鏁存暟鍜屽皬鏁伴儴鍒?
鏂規硶錛氭寜鏉冪浉鍔犳硶錛屽嵆灝嗕簩榪涘埗姣忎綅涓婄殑鏁頒箻浠ユ潈錛岀劧鍚庣浉鍔犱箣鍜屽嵆鏄崄榪涘埗鏁般備緥
灝嗕簩榪涘埗鏁?01.101杞崲涓哄崄榪涘埗鏁般?

寰楀嚭緇撴灉錛氾紙101.101錛?=(5.625)10
澶у鍦ㄥ仛浜岃繘鍒惰漿鎹㈡垚鍗佽繘鍒墮渶瑕佹敞鎰忕殑鏄?
1錛?瑕佺煡閬撲簩榪涘埗姣忎綅鐨勬潈鍊?
2錛?瑕佽兘姹傚嚭姣忎綅鐨勫?


浜屻?浜岃繘鍒朵笌鍏繘鍒朵箣闂寸殑杞崲
棣栧厛錛屾垜浠渶瑕佷簡瑙d竴涓暟瀛﹀叧緋伙紝鍗?3=8錛?4=16錛岃屽叓榪涘埗鍜屽崄鍏繘鍒舵槸鐢ㄨ繖
鍏崇郴琛嶇敓鑰屾潵鐨勶紝鍗崇敤涓変綅浜岃繘鍒惰〃紺轟竴浣嶅叓榪涘埗錛岀敤鍥涗綅浜岃繘鍒惰〃紺轟竴浣嶅崄鍏繘鍒舵暟銆?
鎺ョ潃錛岃浣?涓暟瀛?銆?銆?銆?錛?3=8銆?2=4銆?1=2銆?0=1錛夈傜幇鍦ㄦ垜浠潵緇冧範浜岃繘鍒朵笌鍏繘鍒朵箣闂寸殑杞崲銆?
錛?錛?浜岃繘鍒惰漿鎹負鍏繘鍒?
鏂規硶錛氬彇涓夊悎涓娉曪紝鍗充粠浜岃繘鍒剁殑灝忔暟鐐逛負鍒嗙晫鐐癸紝鍚戝乏錛堝悜鍙籌級姣忎笁浣嶅彇鎴愪竴浣嶏紝鎺ョ潃灝嗚繖涓変綅浜岃繘鍒舵寜鏉冪浉鍔狅紝寰楀埌鐨勬暟灝辨槸涓浣嶅叓浣嶄簩榪涘埗鏁幫紝鐒跺悗錛屾寜欏哄簭榪涜鎺掑垪錛屽皬鏁扮偣鐨勪綅緗笉鍙橈紝寰楀埌鐨勬暟瀛楀氨鏄垜浠墍姹傜殑鍏繘鍒舵暟銆傚鏋滃悜宸︼紙鍚戝彸錛夊彇涓変綅鍚庯紝鍙栧埌鏈楂橈紙鏈浣庯級浣嶆椂鍊欙紝濡傛灉鏃犳硶鍑戣凍涓変綅錛屽彲浠ュ湪灝忔暟鐐規渶宸﹁竟錛堟渶鍙寵竟錛夛紝鍗蟲暣鏁扮殑鏈楂樹綅錛堟渶浣庝綅錛夋坊0錛屽噾瓚充笁浣嶃備緥
鈶犲皢浜岃繘鍒舵暟101110.101杞崲涓哄叓榪涘埗

寰楀埌緇撴灉錛氬皢101110.101杞崲涓哄叓榪涘埗涓?6.5

鈶?灝嗕簩榪涘埗鏁?101.1杞崲涓哄叓榪涘埗

寰楀埌緇撴灉錛氬皢1101.1杞崲涓哄叓榪涘埗涓?5.4

錛?錛?灝嗗叓榪涘埗杞崲涓轟簩榪涘埗
鏂規硶錛氬彇涓鍒嗕笁娉曪紝鍗沖皢涓浣嶅叓榪涘埗鏁板垎瑙f垚涓変綅浜岃繘鍒舵暟錛岀敤涓変綅浜岃繘鍒舵寜鏉冪浉鍔犲幓鍑戣繖浣嶅叓榪涘埗鏁幫紝灝忔暟鐐逛綅緗収鏃с備緥錛?
鈶?灝嗗叓榪涘埗鏁?7.54杞崲涓轟簩榪涘埗

鍥犳錛屽皢鍏繘鍒舵暟67.54杞崲涓轟簩榪涘埗鏁頒負110111.101100錛屽嵆110111.1011
澶у浠庝笂闈㈣繖閬撻鍙互鐪嬪嚭錛岃綆楀叓榪涘埗杞崲涓轟簩榪涘埗
棣栧厛錛屽皢鍏繘鍒舵寜鐓т粠宸﹀埌鍙籌紝姣忎綅灞曞紑涓轟笁浣嶏紝灝忔暟鐐逛綅緗笉鍙?
鐒跺悗錛屾寜姣忎綅灞曞紑涓?2錛?1錛?0錛堝嵆4銆?銆?錛変笁浣嶅幓鍋氬噾鏁幫紝鍗砤脳22+ b脳21 +c脳20=璇ヤ綅涓婄殑鏁幫紙a=1鎴栬卆=0錛宐=1鎴栬卋=0錛宑=1鎴栬卌=0錛?灝哸bc鎺掑垪灝辨槸璇ヤ綅鐨勪簩榪涘埗鏁?
鎺ョ潃錛屽皢姣忎綅涓婅漿鎹㈡垚浜岃繘鍒舵暟鎸夐『搴忔帓鍒?
鏈鍚庯紝灝卞緱鍒頒簡鍏繘鍒惰漿鎹㈡垚浜岃繘鍒剁殑鏁板瓧銆?
浠ヤ笂鐨勬柟娉曞氨鏄簩榪涘埗涓庡叓榪涘埗鐨勪簰鎹紝澶у鍦ㄥ仛棰樼殑鏃跺欓渶瑕佹敞鎰忕殑鏄?
1錛?浠栦滑涔嬮棿鐨勪簰鎹㈡槸浠ヤ竴浣嶄笌涓変綅杞崲錛岃繖涓湁鍒簬浜岃繘鍒朵笌鍗佽繘鍒惰漿鎹?
2錛?澶у鍦ㄥ仛娣?鍜屽幓0鐨勬椂鍊欒娉ㄦ剰錛屾槸鍦ㄥ皬鏁扮偣鏈宸﹁竟鎴栬呭皬鏁扮偣鐨勬渶鍙寵竟錛堝嵆鏁存暟鐨勬渶楂樹綅鍜屽皬鏁扮殑鏈浣庝綅錛夋墠鑳芥坊0鎴栬呭幓0錛屽惁鍒欏皢浜х敓閿欒

涓夈?浜岃繘鍒朵笌鍗佸叚榪涘埗鐨勮漿鎹?
鏂規硶錛氫笌浜岃繘鍒朵笌鍏繘鍒惰漿鎹㈢浉浼鹼紝鍙笉榪囨槸涓浣嶏紙鍗佸叚錛変笌鍥涗綅錛堜簩榪涘埗錛夌殑杞崲錛屼笅闈㈠叿浣撹瑙?
錛?錛?浜岃繘鍒惰漿鎹負鍗佸叚榪涘埗
鏂規硶錛氬彇鍥涘悎涓娉曪紝鍗充粠浜岃繘鍒剁殑灝忔暟鐐逛負鍒嗙晫鐐癸紝鍚戝乏錛堝悜鍙籌級姣忓洓浣嶅彇鎴愪竴浣嶏紝鎺ョ潃灝嗚繖鍥涗綅浜岃繘鍒舵寜鏉冪浉鍔狅紝寰楀埌鐨勬暟灝辨槸涓浣嶅崄鍏綅浜岃繘鍒舵暟錛岀劧鍚庯紝鎸夐『搴忚繘琛屾帓鍒楋紝灝忔暟鐐圭殑浣嶇疆涓嶅彉錛屽緱鍒扮殑鏁板瓧灝辨槸鎴戜滑鎵姹傜殑鍗佸叚榪涘埗鏁般傚鏋滃悜宸︼紙鍚戝彸錛夊彇鍥涗綅鍚庯紝鍙栧埌鏈楂橈紙鏈浣庯級浣嶆椂鍊欙紝濡傛灉鏃犳硶鍑戣凍鍥涗綅錛屽彲浠ュ湪灝忔暟鐐規渶宸﹁竟錛堟渶鍙寵竟錛夛紝鍗蟲暣鏁扮殑鏈楂樹綅錛堟渶浣庝綅錛夋坊0錛屽噾瓚沖洓浣嶃?
鈶犱緥錛氬皢浜岃繘鍒?1101001.1011杞崲涓哄崄鍏繘鍒?

寰楀埌緇撴灉錛氬皢浜岃繘鍒?1101001.1011杞崲涓哄崄鍏繘鍒朵負E9.B


鈶?渚嬶細灝?01011.101杞崲涓哄崄鍏繘鍒?

鍥犳寰楀埌緇撴灉錛氬皢浜岃繘鍒?01011.101杞崲涓哄崄鍏繘鍒朵負2B.A



(2)灝嗗崄鍏繘鍒惰漿鎹負浜岃繘鍒?
鏂規硶錛氬彇涓鍒嗗洓娉曪紝鍗沖皢涓浣嶅崄鍏繘鍒舵暟鍒嗚В鎴愬洓浣嶄簩榪涘埗鏁幫紝鐢ㄥ洓浣嶄簩榪涘埗鎸夋潈鐩稿姞鍘誨噾榪欎綅鍗佸叚榪涘埗鏁幫紝灝忔暟鐐逛綅緗収鏃с?
鈶犲皢鍗佸叚榪涘埗6E.2杞崲涓轟簩榪涘埗鏁?

鍥犳寰楀埌緇撴灉錛氬皢鍗佸叚榪涘埗6E.2杞崲涓轟簩榪涘埗涓?1101110.0010鍗?10110.001

鍥涖佸叓榪涘埗涓庡崄鍏繘鍒剁殑杞崲
鏂規硶錛氫竴鑸笉鑳戒簰鐩哥洿鎺ヨ漿鎹紝涓鑸槸灝嗗叓榪涘埗錛堟垨鍗佸叚榪涘埗錛夎漿鎹負浜岃繘鍒訛紝鐒跺悗鍐嶅皢浜岃繘鍒惰漿鎹負鍗佸叚榪涘埗錛堟垨鍏繘鍒訛級錛屽皬鏁扮偣浣嶇疆涓嶅彉銆傞偅涔堢浉搴旂殑杞崲璇峰弬鐓т笂闈簩榪涘埗涓庡叓榪涘埗鐨勮漿鎹㈠拰浜岃繘鍒朵笌鍗佸叚榪涘埗鐨勮漿


浜斻佸叓榪涘埗涓庡崄榪涘埗鐨勮漿鎹?
錛?錛夊叓榪涘埗杞崲涓哄崄榪涘埗
鏂規硶錛氭寜鏉冪浉鍔犳硶錛屽嵆灝嗗叓榪涘埗姣忎綅涓婄殑鏁頒箻浠ヤ綅鏉冿紝鐒跺悗鐩稿姞涔嬪拰鍗蟲槸鍗佽繘鍒舵暟銆?
渚嬶細鈶犲皢鍏繘鍒舵暟67.35杞崲涓哄崄榪涘埗

錛?錛夊崄榪涘埗杞崲涓哄叓榪涘埗
鍗佽繘鍒惰漿鎹㈡垚鍏繘鍒舵湁涓ょ鏂規硶錛?
1錛夐棿鎺ユ硶錛氬厛灝嗗崄榪涘埗杞崲鎴愪簩榪涘埗錛岀劧鍚庡皢浜岃繘鍒跺張杞崲鎴愬叓榪涘埗
2錛夌洿鎺ユ硶錛氬墠闈㈡垜浠榪囷紝鍏繘鍒舵槸鐢變簩榪涘埗琛嶇敓鑰屾潵鐨勶紝鍥犳鎴戜滑鍙互閲囩敤涓庡崄榪涘埗杞崲涓轟簩榪涘埗鐩哥被浼肩殑鏂規硶錛岃繕鏄暣鏁伴儴鍒嗙殑杞崲鍜屽皬鏁伴儴鍒嗙殑杞崲錛屼笅闈㈡潵鍏蜂綋璁茶В涓涓嬶細
鈶犳暣鏁伴儴鍒?
鏂規硶錛氶櫎8鍙栦綑娉曪紝鍗蟲瘡嬈″皢鏁存暟閮ㄥ垎闄や互8錛屼綑鏁頒負璇ヤ綅鏉冧笂鐨勬暟錛岃屽晢緇х畫闄や互8錛屼綑鏁板張涓轟笂涓涓綅鏉冧笂鐨勬暟錛岃繖涓楠や竴鐩存寔緇笅鍘伙紝鐩村埌鍟嗕負0涓烘錛屾渶鍚庤鏁版椂鍊欙紝浠庢渶鍚庝竴涓綑鏁拌搗錛屼竴鐩村埌鏈鍓嶉潰鐨勪竴涓綑鏁般?
鈶″皬鏁伴儴鍒?
鏂規硶錛氫箻8鍙栨暣娉曪紝鍗沖皢灝忔暟閮ㄥ垎涔樹互8錛岀劧鍚庡彇鏁存暟閮ㄥ垎錛屽墿涓嬬殑灝忔暟閮ㄥ垎緇х畫涔樹互8錛岀劧鍚庡彇鏁存暟閮ㄥ垎錛屽墿涓嬬殑灝忔暟閮ㄥ垎鍙堜箻浠?錛屼竴鐩村彇鍒板皬鏁伴儴鍒嗕負闆朵負姝€傚鏋滄案榪滀笉鑳戒負闆訛紝灝卞悓鍗佽繘鍒舵暟鐨勫洓鑸嶄簲鍏ヤ竴鏍鳳紝鏆傚彇涓悕瀛楀彨3鑸?鍏ャ?
渚嬶細灝嗗崄榪涘埗鏁?96.703125杞崲涓哄叓榪涘埗鏁?
瑙o細鍏堝皢榪欎釜鏁板瓧鍒嗕負鏁存暟閮ㄥ垎796鍜屽皬鏁伴儴鍒?.703125
鏁存暟閮ㄥ垎

灝忔暟閮ㄥ垎

鍥犳錛屽緱鍒扮粨鏋滃崄榪涘埗796.703125杞崲鍏繘鍒朵負1434.55
涓婇潰鐨勬柟娉曞ぇ瀹跺彲浠ラ獙璇佷竴涓嬶紝浣犲彲浠ュ厛灝嗗崄榪涘埗杞崲錛岀劧鍚庡湪杞崲涓哄叓榪涘埗錛岃繖鏍風湅寰楀埌鐨勭粨鏋滄槸鍚︿竴鏍?

鍏佸崄鍏繘鍒朵笌鍗佽繘鍒剁殑杞崲
鍗佸叚榪涘埗涓庡叓榪涘埗鏈夊緢澶氱浉浼間箣澶勶紝澶у鍙互鍙傜収涓婇潰鍏繘鍒朵笌鍗佽繘鍒剁殑杞崲鑷繁璇曡瘯榪欎袱涓繘鍒朵箣闂寸殑杞崲銆?
閫氳繃涓婇潰瀵瑰悇縐嶈繘鍒朵箣闂寸殑杞崲錛屾垜浠彲浠ュ皢鍓嶉潰鐨勮漿鎹㈠浘閲嶆柊瀹屽杽涓涓嬶細


鏈枃浠嬬粛浜嗕簩榪涘埗銆佸崄榪涘埗銆佸叓榪涘埗銆佸崄鍏繘鍒跺洓縐嶈繘鍒朵箣闂寸浉浜掔殑杞崲錛屽ぇ瀹跺湪杞崲鐨勬椂鍊欒娉ㄦ剰杞崲鐨勬柟娉曪紝浠ュ強姝ラ錛岀壒鍒槸鍗佽繘鍒惰漿鎹負鏈熶簬涓夌榪涘埗涔嬮棿錛岃鍒嗕負鏁存暟閮ㄥ垎鍜屽皬鏁伴儴鍒嗭紝鏈鍚庡氨鏄皬鏁扮偣鐨勪綅緗備絾鏄淇濊瘉鑰冭瘯涓笉鍑虹幇閿欒榪樻槸闇瑕佸ぇ瀹剁粡甯哥粌涔狅紝榪欐牱鎵嶈兘鐔熻兘鐢熷閥銆?


David Lee 2009-02-13 18:15 鍙戣〃璇勮
]]>
GDI & GDI+ http://m.shnenglu.com/Lee/archive/2009/02/07/73170.htmlDavid LeeDavid LeeSat, 07 Feb 2009 11:37:00 GMThttp://m.shnenglu.com/Lee/archive/2009/02/07/73170.htmlhttp://m.shnenglu.com/Lee/comments/73170.htmlhttp://m.shnenglu.com/Lee/archive/2009/02/07/73170.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/73170.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/73170.html1.鍩烘湰姒傚康

銆銆GDI鍦╓indows涓畾涔変負Graphics Device Interface錛屽嵆鍥懼艦璁懼鎺ュ彛錛屾槸Windows API(Application Programming Interface)鐨勪竴涓噸瑕佺粍鎴愰儴鍒嗐傚畠鏄疻indows鍥懼艦鏄劇ず紼嬪簭涓庡疄闄呯墿鐞嗚澶囦箣闂寸殑妗ユ錛孏DI浣垮緱鐢ㄦ埛鏃犻渶鍏沖績鍏蜂綋璁懼鐨勭粏鑺傦紝鑰屽彧闇鍦ㄤ竴涓櫄鎷熺殑鐜(鍗抽昏緫璁懼)涓繘琛屾搷浣溿傚畠鐨勬ˉ姊佷綔鐢ㄤ綋鐜板湪錛?br />
銆銆(1)鐢ㄦ埛閫氳繃璋冪敤GDI鍑芥暟灝嗛昏緫絀洪棿鐨勬搷浣滆漿鍖栦負鍏蜂綋閽堝璁懼椹卞姩紼嬪簭鐨勮皟鐢ㄣ?br />
銆銆涓哄疄鐜板浘褰㈣澶囨棤鍏蟲э紝Windows 鐨勭粯鍥炬搷浣滃湪涓涓澶囨弿榪拌〃涓婅繘琛屻傜敤鎴鋒嫢鏈夎嚜宸辯殑"閫昏緫鍧愭爣"緋葷粺錛屽畠鐙珛浜庡疄闄呯殑鐗╃悊璁懼錛屼笌"璁懼鍧愭爣"鐩稿搴斻傚紑鍙慦indows搴旂敤紼嬪簭鏃訛紝紼嬪簭鍛樺叧蹇冪殑鏄昏緫鍧愭爣錛屾垜浠湪閫昏緫鍧愭爣緋諱笂緇樺浘錛屽埄鐢℅DI灝嗛昏緫紿楀彛鏄犲皠鍒扮墿鐞嗚澶囦笂銆?br />
銆銆(2)GDI鑳芥嫻嬪叿浣撹澶囩殑鑳藉姏錛屽茍渚濇嵁鍏蜂綋鐨勮澶囦互鏈浼樻柟寮忛┍鍔ㄨ繖浜涜澶囷紝瀹屾垚鐪熷疄鐨勬樉紺恒?br />
銆銆GDI鍑芥暟澶ц嚧鍙垎綾諱負錛氳澶囦笂涓嬫枃鍑芥暟(濡侴etDC銆丆reateDC銆丏eleteDC)銆?鐢葷嚎鍑芥暟(濡侺ineTo銆丳olyline銆丄rc)銆佸~鍏呯敾鍥懼嚱鏁?濡侲llipse銆丗illRect銆丳ie)銆佺敾鍥懼睘鎬у嚱鏁?濡係etBkColor銆丼etBkMode銆丼etTextColor)銆佹枃鏈佸瓧浣撳嚱鏁?濡俆extOut銆丟etFontData)銆佷綅鍥懼嚱鏁?濡係etPixel銆丅itBlt銆丼tretchBlt)銆佸潗鏍囧嚱鏁?濡侱PtoLP銆丩PtoDP銆丼creenToClient銆丆lientToScreen)銆佹槧灝勫嚱鏁?濡係etMapMode銆丼etWindowExtEx銆丼etViewportExtEx)銆佸厓鏂囦歡鍑芥暟(濡侾layMetaFile銆丼etWinMetaFileBits)銆佸尯鍩熷嚱鏁?濡侳illRgn銆丗rameRgn銆両nvertRgn)銆佽礬寰勫嚱鏁?濡侭eginPath銆丒ndPath銆丼trokeAndFillPath)銆佽鍓嚱鏁?濡係electClipRgn銆丼electClipPath)絳夈?br />
銆銆GDI铏界劧浣跨▼搴忓憳寰楀埌浜嗕竴瀹氱▼搴︾殑瑙h劚錛屼絾鏄叾緙栫▼鏂瑰紡浠嶅緢楹葷儲銆傝濡傦紝鏄劇ず涓寮犱綅鍥撅紝紼嬪簭鍛橀渶瑕佽繘琛?瑁呭叆浣嶅浘鈥曡鍙栦綅鍥炬枃浠跺ご淇℃伅鈥曞惎鐢ㄨ澶囧満鏅曡皟鑹叉澘鍙樻崲"絳変竴榪炰覆鎿嶄綔銆傝屾湁浜咷DI+錛岃繖浜涢棶棰樹究榪庡垉鑰岃В浜嗐?br />
銆銆欏懼悕鎬濅箟錛孏DI+鏄疓DI鐨勫寮虹増銆傚畠鏄井杞湪Windows 2000浠ュ悗鎿嶄綔緋葷粺涓彁渚涚殑鏂版帴鍙o紝鍏墮氳繃涓濂楅儴緗蹭負鎵樼浠g爜鐨勭被鏉ュ睍鐜幫紝榪欏綾昏縐頒負GDI+鐨?鎵樼綾繪帴鍙?銆侴DI+涓昏鎻愪緵浜嗕互涓嬩笁綾繪湇鍔?

銆銆(1) 浜岀淮鐭㈤噺鍥懼艦錛欸DI+鎻愪緵浜嗗瓨鍌ㄥ浘褰㈠熀鍏冭嚜韜俊鎭殑綾?鎴栫粨鏋勪綋)銆佸瓨鍌ㄥ浘褰㈠熀鍏冪粯鍒舵柟寮忎俊鎭殑綾諱互鍙婂疄闄呰繘琛岀粯鍒剁殑綾伙紱

銆銆(2) 鍥懼儚澶勭悊錛氬ぇ澶氭暟鍥劇墖閮介毦浠ュ垝瀹氫負鐩寸嚎鍜屾洸綰跨殑闆嗗悎錛屾棤娉曚嬌鐢ㄤ簩緇寸煝閲忓浘褰㈡柟寮忚繘琛屽鐞嗐傚洜姝わ紝GDI+涓烘垜浠彁渚涗簡Bitmap銆両mage絳夌被,瀹冧滑鍙敤浜庢樉紺恒佹搷浣滃拰淇濆瓨BMP銆丣PG銆丟IF絳夊浘鍍忔牸寮忋?br />
銆銆(3) 鏂囧瓧鏄劇ず錛欸DI+鏀寔浣跨敤鍚勭瀛椾綋銆佸瓧鍙峰拰鏍峰紡鏉ユ樉紺烘枃鏈?br />
銆銆GDI鎺ュ彛鏄熀浜庡嚱鏁扮殑錛岃孏DI+鏄熀浜嶤++綾葷殑瀵硅薄鍖栫殑搴旂敤紼嬪簭緙栫▼鎺ュ彛錛屽洜姝や嬌鐢ㄨ搗鏉ユ瘮GDI瑕佹柟渚褲?br />
銆銆2.渚嬬▼綆榪?/strong>

銆銆鍗曞嚮姝ゅ涓嬭澆鏈枃渚嬬▼婧愪唬鐮併?br />
銆銆鏈枃鍚庣畫鐨勮瑙i兘鍩轟簬榪欐牱鐨勪竴涓緥瀛愬伐紼?渚嬬▼鐨勫紑鍙戠幆澧冧負Visual C++6.0錛屾搷浣滅郴緇熶負Windows XP)錛屽畠鏄竴涓熀浜庡璇濇鐨凪FC搴旂敤紼嬪簭錛屽寘鎷?涓埗鑿滃崟錛?br />
銆銆(1) GDI

銆銆GDI鐖惰彍鍗曚笅鍖呮嫭涓涓瓙鑿滃崟錛?br />
ID錛欼DM_GDI_DRAW_LINE caption錛氱敾綰?br />
銆銆鍗曞嚮浜嬩歡錛氬湪紿楀彛緇樺埗姝f棆鏇茬嚎

銆銆(2) GDI+

銆銆DIB浣嶅浘鐖惰彍鍗曚笅鍖呮嫭涓や釜瀛愯彍鍗曪細

a. ID錛欼DM_GDIP_DRAW_LINE caption錛氱敾綰?br />
銆銆鍗曞嚮浜嬩歡錛氬湪紿楀彛緇樺埗姝f棆鏇茬嚎

b. caption錛氭柊澧炲姛鑳斤紝鍏朵笅鍙堝寘鎷笅鍒楀瓙鑿滃崟錛?br />
銆銆(鈪?ID錛欼DM_Gradient_Brush caption錛氭笎鍙樼敾鍒?br />
銆銆鍗曞嚮浜嬩歡錛氬湪紿楀彛婕旂ずGDI+鐨勬笎鍙樼敾鍒峰姛鑳?br />
銆銆(鈪?ID錛欼DM_Cardinal_Spline caption錛氬熀鏁版牱鏉?br />
銆銆鍗曞嚮浜嬩歡錛氬湪紿楀彛婕旂ずGDI+鐨勫熀鏁版牱鏉″嚱鏁板姛鑳?br />
銆銆(鈪?ID錛欼DM_Transformation_Matrix caption錛氬彉褰㈠拰鐭╅樀瀵硅薄

銆銆鍗曞嚮浜嬩歡錛氬湪紿楀彛婕旂ずGDI+鐨勫彉褰㈠拰鐭╅樀瀵硅薄鍔熻兘

銆銆(鈪?ID錛欼DM_Scalable_Region caption錛氬彲浼哥緝鍖哄煙

銆銆鍗曞嚮浜嬩歡錛氬湪紿楀彛婕旂ずGDI+鐨勫彲浼哥緝鍖哄煙鍔熻兘

銆銆(鈪?ID錛欼DM_IMAGE caption錛氬浘鍍?br />
銆銆鍗曞嚮浜嬩歡錛氬湪紿楀彛婕旂ずGDI+鐨勫縐嶅浘鍍忔牸寮忔敮鎸佸姛鑳?br />
銆銆(鈪?ID錛欼DM_Alpha_Blend caption錛欰lpha娣峰悎

銆銆鍗曞嚮浜嬩歡錛氬湪紿楀彛婕旂ずGDI+鐨凙lpha娣峰悎鍔熻兘

銆銆(鈪?ID錛欼DM_TEXT caption錛氭枃鏈?br />
銆銆鍗曞嚮浜嬩歡錛氬湪紿楀彛婕旂ずGDI+鐨勫己澶ф枃鏈緭鍑鴻兘鍔?br />
銆銆鍚庣畫綃囩珷灝嗛泦涓湪瀵逛笂榪拌彍鍗曞崟鍑諱簨浠舵秷鎭鐞嗗嚱鏁扮殑璁茶В錛屼笅闈㈢殑浠g爜鏄暣涓璇濇綾籆GdiexampleDlg鐨勬秷鎭槧灝勶細

BEGIN_MESSAGE_MAP(CGdiexampleDlg, CDialog)
//{{AFX_MSG_MAP(CGdiexampleDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_COMMAND(IDM_GDI_DRAW_LINE, OnGdiDrawLine)
ON_COMMAND(IDM_GDIP_DRAW_LINE, OnGdipDrawLine)
ON_COMMAND(IDM_Gradient_Brush, OnGradientBrush)
ON_COMMAND(IDM_Cardinal_Spline, OnCardinalSpline)
ON_COMMAND(IDM_Transformation_Matrix, OnTransformationMatrix)
ON_COMMAND(IDM_Scalable_Region, OnScalableRegion)
ON_COMMAND(IDM_IMAGE, OnImage)
ON_COMMAND(IDM_Alpha_Blend, OnAlphaBlend)
ON_COMMAND(IDM_TEXT, OnText)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

3.GDI緙栫▼

銆銆"GDI"鑿滃崟涓嬬殑"鐢葷嚎"瀛愯彍鍗曞崟鍑諱簨浠舵秷鎭鐞嗗嚱鏁扮殑浠g爜濡備笅錛?br />

void CGdiexampleDlg::OnGdiDrawLine()
{
銆// TODO: Add your command handler code here
銆CClientDC dc(this);
銆//閫昏緫鍧愭爣涓庤澶囧潗鏍囧彉鎹?br />銆CRect rect;
銆GetClientRect(&rect);
銆dc.SetMapMode(MM_ANISOTROPIC);
銆dc.SetWindowOrg(0, 0);
銆dc.SetWindowExt(rect.right, rect.bottom);
銆dc.SetViewportOrg(0, rect.bottom / 2);
銆dc.SetViewportExt(rect.right, - rect.bottom);
銆//鍒涘緩緇樺埗姝f棆鏇茬嚎鐨刾en騫跺皢鍏墮夊叆璁懼涓婁笅鏂?br />銆CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
銆HGDIOBJ oldObject = dc.SelectObject(pen.GetSafeHandle());
銆//緇樺埗姝f棆鏇茬嚎
銆dc.MoveTo(0, 0);
銆for (int i = 0; i < rect.right; i++)
銆{
銆銆dc.LineTo(i, 100 *sin(2 *(i / (rect.right / 5.0)) *PI));
銆}
銆//鍒涘緩緇樺埗x杞寸殑pen騫跺皢鍏墮夊叆璁懼涓婁笅鏂?br />銆CPen penx(PS_SOLID, 1, RGB(0, 0, 255));
銆dc.SelectObject(penx.GetSafeHandle());
銆//緇樺埗X杞?br />銆dc.MoveTo(0, 0);
銆dc.LineTo(rect.right, 0);
銆//鎭㈠鍘熷厛鐨刾en
銆dc.SelectObject(oldObject);
}

銆銆鍗曞嚮榪欎釜鎸夐挳錛屼細鍑虹幇濡傚浘1鎵紺虹殑鏁堟灉錛屾垜浠潵瀵規榪涜瑙h銆?br />
WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?2)
鍥? 緇樺埗姝f棆鏇茬嚎

銆銆鍓嶆枃鎻愬埌錛孏DI緙栫▼闇榪涜璁懼鍧愭爣鍜岄昏緫鍧愭爣鐨勮漿鍖栥傝屽睆騫曚笂鐨勮澶囧潗鏍囬氬父浼氭寜瀹㈡埛鍧愭爣緇欏嚭錛屽鎴峰潗鏍囦緷璧栦簬紿楀彛鐨勫鎴峰尯鍩燂紝鍏惰搗濮嬩綅緗綅浜庡鎴峰尯鍩熺殑宸︿笂瑙掋備負紺哄尯鍒紝鍥?緇欏嚭浜嗚澶囧潗鏍囧拰鐢ㄦ埛閫昏緫鍧愭爣鐨勭ず渚嬨?br />
WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?2)
鍥? 璁懼鍧愭爣涓庨昏緫鍧愭爣

銆銆璁懼鍧愭爣涓庨昏緫鍧愭爣鐨勮漿鎹㈠叧緋誨涓嬶細

WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?2)
WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?2)

銆銆鍏紡涓殑<Xvorg, Yvorg>鏄澶囩┖闂翠腑瑙嗗彛鐨勫師鐐癸紝鑰?lt; Xworg, Yworg >鏄昏緫絀洪棿涓獥鍙g殑鍘熺偣銆?Xwext/Xvext鍜孻wext/Yvext鍒嗗埆鏄獥鍙d笌瑙嗗彛姘村鉤鍜屽瀭鐩磋寖鍥寸殑姣斾緥銆?br />
銆銆鍥犳錛岀粡榪囩▼搴忎腑鐨刣c.SetWindowOrg (0錛?) 鍜宒c.SetViewportOrg (0錛宺ect.bottom/2)璇彞鎴戜滑璁劇疆浜嗚鍙e拰紿楀彛鐨勫師鐐癸紱鑰岀粡榪囩▼搴忎腑鐨刣c.SetWindowExt (rect.right錛宺ect.bottom) 鍜宒c.SetViewportExt (rect.right錛?rect.bottom) 璇彞鎴戜滑璁劇疆浜嗚鍙e拰紿楀彛鐨勮寖鍥淬傜敱浜庤鍙e拰紿楀彛鐨勭旱鍧愭爣鏂瑰悜鐩稿弽錛岃緗鍙g殑鍨傜洿鑼冨洿涓鴻礋鍊箋傝繖鏍鋒垜浠緱鍒頒簡涓涓昏緫鍧愭爣鍘熺偣涓哄鎴峰尯姘村鉤鏂瑰悜鏈宸﹁竟鍜屽瀭鐩存柟鍚戝眳涓殑鍧愭爣緋伙紝鎴戜滑鍦ㄨ繖涓潗鏍囩郴涓婄洿鎺ョ粯鍒舵鏃嬫洸綰匡紝涓嶉渶瑕佸啀鐞嗙潿Windows瀵硅瘽妗嗗鎴峰尯鍧愭爣浜嗐?br />
銆銆void CGdiexampleDlg::OnGdiDrawLine()鍑芥暟涓湭鎸囧畾閫昏緫璁懼鍜岀墿鐞嗚澶囩殑鏄犲皠妯″紡錛屽垯涓虹己鐪佺殑MM_TEXT銆傚湪榪欑妯″紡涓嬶紝涓涓昏緫鍗曚綅瀵瑰簲浜庝竴涓儚绱犵偣銆傛槧灝勬ā寮忔槸GDI涓殑涓涓噸瑕佹蹇碉紝鍏跺畠鐨勬槧灝勬ā寮忚繕鏈塎M_LOENGLlSH銆丮M_HIENGLISH銆丮M_LOMETRIC鍜孧M_HIMETRIC絳夈傛垜浠彲浠ラ氳繃濡備笅璇彞鎸囧畾鏄犲皠妯″紡涓篗M_TEXT錛?br />

dc.SetMapMode(MM_TEXT);

銆銆鍊煎緱涓鎻愮殑鏄紝浠庝笂榪頒唬鐮佸彲浠ョ湅鍑猴細鍦℅DI緙栫▼涓紝鍑犱箮鎵鏈夌殑鎿嶄綔閮藉洿緇曡澶囦笂涓嬫枃dc灞曞紑銆傜殑紜紝榪欐鏄疓DI緙栫▼鐨勭壒鐐癸紒璁懼涓婁笅鏂囨槸Windows 浣跨敤鐨勪竴縐嶇粨鏋勶紝鎵鏈塆DI鎿嶄綔鍓嶉兘闇鍙栧緱鐗瑰畾璁懼鐨勪笂涓嬫枃錛屽嚱鏁頒腑鐨凜ClientDC dc (this) 璇彞瀹屾垚榪欎竴鍔熻兘銆?br />
銆銆褰掔撼鍙緱錛屽埄鐢℅DI榪涜鍥懼艦銆佸浘鍍忓鐞嗙殑涓鑸搷浣滄楠や負錛?br />
銆銆1. 鍙栧緱鎸囧畾紿楀彛鐨凞C錛?br />
銆銆2. 紜畾浣跨敤鐨勫潗鏍囩郴鍙婃槧灝勬柟寮忥紱

銆銆3. 榪涜鍥懼艦銆佸浘鍍忔垨鏂囧瓧澶勭悊錛?br />
銆銆4. 閲婃斁鎵浣跨敤鐨凞C銆?br />
銆銆4.GDI+緙栫▼

銆銆"GDI+"鑿滃崟涓嬬殑"鐢葷嚎"瀛愯彍鍗曞崟鍑諱簨浠舵秷鎭鐞嗗嚱鏁扮殑浠g爜濡備笅錛?

void CGdiexampleDlg::OnGdipDrawLine()
{
銆// TODO: Add your command handler code here
銆CClientDC dc(this);
銆//閫昏緫鍧愭爣涓庤澶囧潗鏍囧彉鎹?br />銆CRect rect;
銆GetClientRect(&rect);
銆dc.SetMapMode(MM_ANISOTROPIC);
銆dc.SetWindowOrg(0, 0);
銆dc.SetWindowExt(rect.right, rect.bottom);
銆dc.SetViewportOrg(0, rect.bottom / 2);
銆dc.SetViewportExt(rect.right, - rect.bottom);

銆//鍒涘緩Graphics瀵硅薄
銆Graphics graphics(dc);
銆//鍒涘緩pen
銆Pen myPen(Color::Red);
銆myPen.SetWidth(1);
銆//鐢繪鏃嬫洸綰?br />銆for (int i = 0; i < rect.right; i++)
銆{
銆銆graphics.DrawLine(&myPen, i, 100 *sin(2 *(i / (rect.right / 5.0)) *PI), i +
1, 100 *sin(2 *((i + 1) / (rect.right / 5.0)) *PI));
銆}
銆//鐢籜杞?br />銆myPen.SetColor(Color::Blue);
銆graphics.DrawLine(&myPen, 0, 0, rect.right, 0);
}

銆銆鐢變簬鎴戜滑浣跨敤鐨勬槸Visual C++6.0鑰岄潪VS.Net錛屾垜浠渶瑕佷笅杞藉井杞殑GDIPLUS鏀寔鍖呫傚湪寰蔣瀹樻柟緗戠珯涓嬭澆鏃墮渶璁よ瘉Windows涓烘鐗堬紝鎴戜滑鍙粠榪欎釜鍦板潃涓嬭澆錛歨ttp://www.codeguru.com/code/legacy/gdi/GDIPlus.zip銆備竴涓畬鏁寸殑GDI+鏀寔鍖呰嚦灝戝寘鎷涓嬫枃浠訛細

銆銆(1)澶存枃浠訛細gdiplus.h

銆銆(2)鍔ㄦ侀摼鎺ュ簱鐨?lib鏂囦歡錛歡diplus.lib

銆銆(3)鍔ㄦ侀摼鎺ュ簱鐨?dll鏂囦歡錛歡diplus.dll

銆銆灝戜簡(1)銆?2)紼嬪簭涓嶈兘緙栬瘧錛屽皯浜?3)紼嬪簭鑳戒互鍏變韓DLL鐨勬柟寮忕紪璇戜絾鏄笉鑳借繍琛岋紝榪愯鏃舵壘涓嶅埌.dll鏂囦歡銆?br />
銆銆涓轟嬌寰梀isual C++6.0鏀寔GDI+錛屾垜浠渶瑕佸湪浣跨敤GDI+瀵硅薄鐨勬枃浠剁殑寮澶存坊鍔犲涓嬩唬鐮侊細

#define UNICODE
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif
#include "c:\gdiplus\includes\gdiplus.h"
using namespace Gdiplus;
#pragma comment(lib, "c:\gdiplus\lib\gdiplus.lib")

銆銆鍦╒isual C++涓嬌鐢℅DI+蹇呴』鍏堣繘琛孏DI+鐨勫垵濮嬪寲錛屾垜浠湪CWinApp媧劇敓綾葷殑InitInstance鍑芥暟涓繘琛屾欏瑰伐浣滄槸鏈濂界殑錛?br />

///////////////////////////////////////
CGdiexampleApp initialization

BOOL CGdiexampleApp::InitInstance()
{
銆AfxEnableControlContainer();

銆// Standard initialization

銆#ifdef _AFXDLL
銆銆Enable3dControls(); // Call this when using MFC in a shared DLL
銆#else
銆銆Enable3dControlsStatic(); //

Call this when linking to MFC statically
銆#endif

銆//鍒濆鍖杇diplus鐨勭幆澧?br />銆GdiplusStartupInput gdiplusStartupInput;
銆ULONG_PTR gdiplusToken;
銆// 鍒濆鍖朑DI+.
銆GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

銆CGdiexampleDlg dlg;
銆m_pMainWnd = &dlg;
銆int nResponse = dlg.DoModal();
銆if (nResponse == IDOK){}
銆else if (nResponse == IDCANCEL){}

銆//鍏抽棴gdiplus鐨勭幆澧?br />銆GdiplusShutdown(gdiplusToken);

銆return FALSE;
}


銆銆鍗曞嚮"GDI+"鑿滃崟涓嬬殑"鐢葷嚎"瀛愯彍鍗曪紝涔熶細鍑虹幇濡傚浘1鎵紺虹殑鏁堟灉銆傝瀵焩oid CGdiexampleDlg::OnGdipDrawLine() 鍑芥暟錛屾垜浠彂鐜扮敤GDI+榪涜鍥懼艦銆佸浘鍍忔搷浣滅殑姝ラ涓猴細

銆銆(1)鍒涘緩 Graphics 瀵硅薄錛欸raphics 瀵硅薄琛ㄧずGDI+緇樺浘琛ㄩ潰錛屾槸鐢ㄤ簬鍒涘緩鍥懼艦鍥懼儚鐨勫璞★紱

銆銆(2)浣跨敤 Graphics 瀵硅薄緇樺埗綰挎潯鍜屽艦鐘躲佸憟鐜版枃鏈垨鏄劇ず涓庢搷浣滃浘鍍忋?br />
銆銆Graphics 瀵硅薄鏄疓DI+鐨勬牳蹇冿紝GDI涓澶囦笂涓嬫枃dc鍜孏raphics 瀵硅薄鐨勪綔鐢ㄧ浉浼鹼紝浣嗗湪GDI涓嬌鐢ㄧ殑鏄熀浜庡彞鏌勭殑緙栫▼妯″紡錛岃孏DI+涓嬌鐢ㄧ殑鍒欐槸鍩轟簬瀵硅薄鐨勭紪紼嬫ā寮忋侴raphics灝佽浜咷DI+ 緇樺浘闈紝鑰屼笖姝ょ被鏃犳硶琚戶鎵匡紝瀹冪殑鎵鏈夋垚鍛樺嚱鏁伴兘涓嶆槸铏氬嚱鏁般?br />
銆銆涓嬮潰錛屾垜浠潵閫愪釜鐢ㄥ疄闄呬唬鐮佸疄鐜癎DI+鐨勬柊澧炲姛鑳斤紝榪欎簺鏂板鍔熻兘鍖呮嫭錛氭笎鍙樼殑鐢誨埛(Gradient Brushes)銆佸熀鏁版牱鏉″嚱鏁?Cardinal Splines)銆佹寔涔呯殑璺緞瀵硅薄(Persistent Path Objects)銆佸彉褰㈠拰鐭╅樀瀵硅薄(Transformations &Matrix Object)銆佸彲浼哥緝鍖哄煙(Scalable Regions)銆丄lpha娣峰悎(Alpha Blending)鍜屼赴瀵岀殑鍥懼儚鏍煎紡鏀寔絳夈?p>娓愬彉鐨勭敾鍒?br />
銆銆GDI+鎻愪緵浜嗙敤浜庡~鍏呭浘褰€佽礬寰勫拰鍖哄煙鐨勭嚎鎬ф笎鍙樼敾鍒峰拰璺緞娓愬彉鐢誨埛銆?br />
銆銆綰挎ф笎鍙樼敾鍒蜂嬌鐢ㄦ笎鍙橀鑹叉潵濉厖鍥懼艦銆?br />
銆銆褰撶敤璺緞娓愬彉鐢誨埛濉厖鍥懼艦鏃訛紝鍙寚瀹氫粠鍥懼艦鐨勪竴閮ㄥ垎縐昏嚦鍙︿竴閮ㄥ垎鏃剁敾鍒烽鑹茬殑鍙樺寲鏂瑰紡銆備緥濡傦紝鎴戜滑鍙互鍙寚瀹氬浘褰㈢殑涓績棰滆壊鍜岃竟緙橀鑹詫紝褰撶敾鍒蜂粠鍥懼艦涓棿鍚戝杈圭紭縐誨姩鏃訛紝鐢誨埛浼氶愭笎浠庝腑蹇冮鑹插彉鍖栧埌杈圭紭棰滆壊銆?

void CGdiexampleDlg::OnGradientBrush()
{
銆// TODO: Add your command handler code here
銆CClientDC dc(this);
銆CRect rect;
銆GetClientRect(&rect);
銆//鍒涘緩Graphics瀵硅薄
銆Graphics graphics(dc);
銆//鍒涘緩娓愬彉鐢誨埛
銆LinearGradientBrush lgb(Point(0, 0), Point(rect.right, rect.bottom), Color::Blue, Color::Green);
銆//濉厖
銆graphics.FillRectangle(&lgb, 0, 0, rect.right, rect.bottom);
}

銆銆鏈▼搴忎嬌鐢ㄧ嚎鎬ф笎鍙樼敾鍒鳳紝褰撶敾鍒蜂粠瀹㈡埛鍖哄乏涓婅縐誨悜瀹㈡埛鍖哄彸涓嬭鐨勮繃紼嬩腑錛岄鑹查愭笎鐢辮摑鑹茶漿鍙樹負緇胯壊銆?br />
WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?3)
鍥? GDI+娓愬彉鐢誨埛

銆銆鍩烘暟鏍鋒潯鍑芥暟

銆銆GDI+鏀寔鍩烘暟鏍鋒潯錛屽熀鏁版牱鏉℃寚鐨勬槸涓榪炰覆鍗曠嫭鐨勬洸綰匡紝榪欎簺鏇茬嚎榪炴帴璧鋒潵褰㈡垚涓鏉¤緝澶х殑鏇茬嚎銆傛牱鏉$敱鐐?Point緇撴瀯浣?鐨勬暟緇勬寚瀹氾紝騫墮氳繃璇ユ暟緇勪腑鐨勬瘡涓涓偣銆傚熀鏁版牱鏉″鉤婊戝湴絀胯繃鏁扮粍涓殑姣忎竴涓偣(涓嶅嚭鐜板皷瑙?錛屽洜姝ゆ瘮鐢ㄧ洿綰胯繛鎺ュ垱寤虹殑璺緞綺劇‘銆?br />
void CGdiexampleDlg::OnCardinalSpline()
{
銆// TODO: Add your command handler code here
銆CClientDC dc(this);
銆//鍒涘緩Graphics瀵硅薄
銆Graphics graphics(dc);
銆Point points[] =
銆{
銆銆Point(0, 0), Point(100, 200), Point(200, 0), Point(300, 200), Point(400, 00)
銆};
銆//鐩存帴鐢葷嚎
銆for (int i = 0; i < 4; i++)
銆{
銆銆graphics.DrawLine(&Pen(Color::Blue, 3), points[i], points[i + 1]);
銆}
銆//鍒╃敤鍩烘暟鏍鋒潯鐢葷嚎
銆graphics.DrawCurve(&Pen(Color::Red, 3), points, 5);
}

銆銆鍥?婕旂ず浜嗙洿鎺ヨ繛綰垮拰緇忚繃鍩烘暟鏍鋒潯騫蟲粦鎷熷悎鍚庣殑綰挎潯鐨勫姣旓紝鍚庤呯殑鏇茬嚎(Curve)娌℃湁灝栬銆傝繖涓伐浣滄垜浠湪涓鐨勬暟瀛﹁涓婃妸紱繪暎鐨勭偣榪炴帴鎴愭洸綰挎椂鍋氳繃銆?br />
WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?3)
鍥? GDI+鍩烘暟鏍鋒潯

鎸佷箙鐨勮礬寰勫璞?br />
銆銆鍦℅DI涓紝璺緞闅跺睘浜庝竴涓澶囦笂涓嬫枃錛屼竴鏃﹁澶囩幆澧冩寚閽堣秴榪囧畠鐨勭敓瀛樻湡錛岃礬寰勪篃浼氳鍒犻櫎銆傚埄鐢℅DI+錛屽彲浠ュ垱寤哄茍緇存姢涓嶨raphics瀵硅薄鍒嗗紑鐨凣raphicsPath 瀵硅薄錛屽畠涓嶄緷璧栦簬Graphics瀵硅薄鐨勭敓瀛樻湡銆?br />
銆銆鍙樺艦鍜岀煩闃靛璞?br />
銆銆GDI+鎻愪緵浜哅atrix瀵硅薄錛屽畠鏄竴縐嶅彲浠ヤ嬌鍙樺艦(鏃嬭漿銆佸鉤縐匯佺緝鏀劇瓑) 綆鏄撶伒媧葷殑寮哄ぇ宸ュ叿錛孧atrix瀵硅薄闇涓庤琚彉褰㈢殑瀵硅薄鑱斿悎浣跨敤銆傚浜嶨raphicsPath綾伙紝鎴戜滑鍙互浣跨敤鍏舵垚鍛樺嚱鏁癟ransform鎺ユ敹Matrix鍙傛暟鐢ㄤ簬鍙樺艦銆?br />

void CGdiexampleDlg::OnTransformationMatrix()
{
銆// TODO: Add your command handler code here
銆CClientDC dc(this);
銆//鍒涘緩Graphics瀵硅薄
銆Graphics graphics(dc);
銆GraphicsPath path;
銆path.AddRectangle(Rect(250, 20, 70, 70));
銆graphics.DrawPath(&Pen(Color::Black, 1), &path); // 鍦ㄥ簲鐢ㄥ彉褰㈢煩闃典箣鍓嶇粯鍒剁煩褰?br />銆// 璺緞鍙樺艦
銆Matrix matrix1, matrix2;

銆matrix1.Rotate(45.0f); //鏃嬭漿欏烘椂閽?5搴?br />銆path.Transform(&matrix1); //搴旂敤鍙樺艦
銆graphics.DrawPath(&Pen(Color::Red, 3), &path);

銆matrix2.Scale(1.0f, 0.5f); //杞寲鎴愪負騫寵鍥涜竟褰㈡硶鍒?br />銆path.Transform(&matrix2); //搴旂敤鍙樺艦
銆graphics.DrawPath(&Pen(Color::Blue, 3), &path);
}

銆銆鍥?婕旂ず浜嗘鏂瑰艦緇忚繃鏃嬭漿鍜屾媺浼鎬箣鍚庣殑鏁堟灉錛氶粦鑹茬殑涓哄師濮嬪浘褰紝綰㈣壊鐨勪負鏃嬭漿45搴︿箣鍚庣殑鍥懼艦錛岃摑鑹茬殑涓虹粡榪囨媺浼鎬負騫寵鍥涜竟褰㈠悗鐨勫浘褰€?

WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?4)
鍥? GDI+鍙樺艦鍜岀煩闃靛璞?/div>

銆銆鍙幾緙╁尯鍩?br />
銆銆GDI+閫氳繃瀵瑰尯鍩?Region)鐨勬敮鎸佹瀬澶у湴鎵╁睍浜咷DI銆傚湪GDI 涓紝鍖哄煙瀛樺偍鍦ㄨ澶囧潗鏍囦腑錛屽彲搴旂敤浜庡尯鍩熺殑鍞竴鍙樺艦鏄鉤縐匯備絾鏄湪GDI +涓紝鍖哄煙瀛樺偍鍦ㄥ叏灞鍧愭爣(涓栫晫鍧愭爣)涓紝鍙鍖哄煙鍒╃敤鍙樺艦鐭╅樀榪涜鍙樺艦(鏃嬭漿銆佸鉤縐匯佺緝鏀劇瓑)銆?br />
void CGdiexampleDlg::OnScalableRegion()
{
銆// TODO: Add your command handler code here
銆CClientDC dc(this);
銆//鍒涘緩Graphics瀵硅薄
銆Graphics graphics(dc);
銆//鍒涘緩GraphicsPath
銆GraphicsPath path;
銆path.AddLine(100, 100, 150, 150);
銆path.AddLine(50, 150, 150, 150);
銆path.AddLine(50, 150, 100, 100);
銆//鍒涘緩Region
銆Region region(&path);
銆//濉厖鍖哄煙
銆graphics.FillRegion(&SolidBrush(Color::Blue), &region);
銆//鍖哄煙鍙樺艦
銆Matrix matrix;
銆matrix.Rotate(10.0f); //鏃嬭漿欏烘椂閽?0搴?br />銆matrix.Scale(1.0f, 0.3f); //鎷変幾
銆region.Transform(&matrix); //搴旂敤鍙樺艦
銆//濉厖鍙樺艦鍚庣殑鍖哄煙
銆graphics.FillRegion(&SolidBrush(Color::Green), &region);
}

銆銆涓婅堪紼嬪簭涓互钃濊壊濉厖涓涓笁瑙掑艦鍖哄煙錛屾帴鐫灝嗘鍖哄煙鏃嬭漿鍜屾媺浼革紝鍐嶆鏄劇ず錛屽叾鏁堟灉濡傚浘6銆?br />
WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?4)
鍥? GDI+鍖哄煙鍙樺艦

涓板瘜鐨勫浘鍍忔牸寮忔敮鎸?br />
銆銆GDI +鎻愪緵浜咺mage銆丅itmap 鍜孧etafile 綾伙紝鏂逛究鐢ㄦ埛榪涜鍥懼儚鏍煎紡鐨勫姞杞姐佹搷浣滃拰淇濆瓨銆侴DI+鏀寔鐨勫浘鍍忔牸寮忔湁BMP銆丟IF銆丣PEG銆丒XIF銆丳NG銆乀IFF銆両CON銆乄MF銆丒MF絳夛紝鍑犱箮娑電洊浜嗘墍鏈夌殑甯哥敤鍥懼儚鏍煎紡銆?br />

void CGdiexampleDlg::OnImage()
{
銆// TODO: Add your command handler code here
銆CClientDC dc(this);
銆//鍒涘緩Graphics瀵硅薄
銆Graphics graphics(dc);
銆Image image(L "d:\1.jpg");
銆//鍦ㄧ煩褰㈠尯鍩熷唴鏄劇ずjpg鍥懼儚
銆Point destPoints1[3] =
銆{
銆銆Point(10, 10), Point(220, 10), Point(10, 290)
銆};
銆graphics.DrawImage(&image, destPoints1, 3);
銆//鍦ㄥ鉤琛屽洓杈瑰艦鍖哄煙鍐呮樉紺簀pg鍥懼儚
銆Point destPoints2[3] =
銆{
銆銆Point(230, 10), Point(440, 10), Point(270, 290)
銆};
銆graphics.DrawImage(&image, destPoints2, 3);
}

銆銆涓婅堪紼嬪簭灝咲鐩樻牴鐩綍涓嬫枃浠跺悕涓?1.jpg"鐨刯pg鍥懼儚浠ョ煩闃靛拰騫寵鍥涜竟褰袱縐嶆柟寮忔樉紺猴紝鏁堟灉濡傚浘7銆?br />
WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?5)
鍥? GDI+澶氱鍥懼儚鏍煎紡鏀寔

銆銆鐢辨鎴戜滑鍙互鐪嬪嚭錛孏DI+鍦ㄥ浘鍍忔樉紺哄拰鎿嶄綔鏂歸潰鐨勭‘姣擥DI綆鍗曡澶氥傚洖蹇嗘垜浠湪銆奦isual C++涓璂DB涓嶥IB浣嶅浘緙栫▼鍏ㄦ敾鐣ャ嬩竴鏂囦腑鎵浠嬬粛鐨勭敤GDI鏄劇ず浣嶅浘鐨勬柟寮忥紝鍏朵笌GDI+鍥懼儚澶勭悊鐨勯毦鏄撶▼搴︾湡鏄湁澶╁¥涔嬪埆銆?p>Alpha娣峰悎

銆銆Alpha鍏佽灝嗕袱涓墿浣撴販鍚堣搗鏉ユ樉紺猴紝鍦?D姘旀皼鍜屽満鏅覆鏌撶瓑鏂歸潰鏈夊箍娉涘簲鐢ㄣ傚畠鑳?闆懼寲"鍥懼儚錛屼嬌寰椾竴涓浘鍍忕潃鑹插湪鍙︿竴涓崐閫忔槑鐨勫浘鍍忎笂錛屽憟鐜頒竴縐嶆湨鑳х編銆傛垜浠煡閬擄紝涓涓儚绱犲彲鐢≧錛孏錛孊涓変釜緇村害鏉ヨ〃紺猴紝鎴戜滑鍙互鍐嶅姞涓婄4涓嵆錛欰lpha緇村害(channel)錛岃〃寰侀忔槑紼嬪害銆?br />

void CGdiexampleDlg::OnAlphaBlend()
{
銆// TODO: Add your command handler code here
銆CClientDC dc(this);
銆//鍒涘緩Graphics瀵硅薄
銆Graphics graphics(dc);
銆//鍒涘緩ColorMatrix
銆ColorMatrix ClrMatrix =
銆{
銆銆1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
銆銆0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
銆銆0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
銆銆0.0f, 0.0f, 0.0f, 0.5f, 0.0f,
銆銆0.0f, 0.0f, 0.0f, 0.0f, 1.0f
銆};
銆//灝咰olorMatrix璧嬬粰ImageAttributes
銆ImageAttributes ImgAttr;
銆ImgAttr.SetColorMatrix(&ClrMatrix, ColorMatrixFlagsDefault,ColorAdjustTypeBitmap);
銆//鍦ㄧ煩褰㈠尯鍩熷唴鏄劇ずjpg鍥懼儚
銆Image img1(L "d:\1.jpg");
銆Point destPoints1[3] =
銆{
銆銆Point(10, 10), Point(220, 10), Point(10, 290)
銆};
銆graphics.DrawImage(&img1, destPoints1, 3);
銆//Alpha娣峰悎
銆Image img2(L "d:\2.jpg");
銆int width, height;
銆width = img2.GetWidth();
銆height = img2.GetHeight();
銆graphics.DrawImage(&img2, RectF(10, 10, 210, 280), 0, 0, width, height,UnitPixel, &ImgAttr);
銆//鍦ㄥ鉤琛屽洓杈瑰艦鍖哄煙鍐呮樉紺簀pg鍥懼儚
銆Point destPoints2[3] =
銆{
銆銆Point(230, 10), Point(440, 10), Point(270, 290)
銆};
銆graphics.DrawImage(&img1, destPoints2, 3);
銆//Alpha娣峰悎
銆graphics.DrawImage(&img2, destPoints2, 3, 0, 0, width, height, UnitPixel,&ImgAttr);
}

銆銆涓婅堪紼嬪簭涓皢D鐩樻牴鐩綍涓嬫枃浠跺悕涓?1.jpg"鐨勫浘鍍忎互鐭╅樀鍜屽鉤琛屽洓杈瑰艦涓ょ鏂瑰紡鏄劇ず錛岀劧鍚庡皢鏂囦歡鍚嶄負涓?2.jpg"鐨勫浘鍍忎笌涔嬭繘琛屾販鍚堬紝鍏舵晥鏋滃鍥?銆?br />
WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?6)
鍥? GDI+ Alpha娣峰悎

銆銆涓轟簡鑳借繘琛孉lpha娣峰悎錛屾垜浠渶瑕佷嬌鐢↖mageAttributes綾誨拰ColorMatrix鐭╅樀錛孖mageAttributes鍙互榪涜棰滆壊銆佺伆搴︾瓑璋冩暣浠庤岃揪鍒版帶鍒跺浘鍍忕潃鑹叉柟寮忕殑鐩殑銆侰olorMatrix鏄疘mageAttributes綾誨ぇ澶氭暟鍑芥暟鐨勫弬鏁幫紝瀹冨寘鍚簡Alpha銆丷ed銆丟reen銆丅lue緇村害鐨勫鹼紝浠ュ強鍙︿竴緇磜錛岄『搴忎負RGBaw銆?br />
銆銆CGdiexampleDlg::OnAlphaBlend()鍑芥暟涓瑿olorMatrix鐨勫疄渚婥lrMatrix涓厓绱?4,4)鐨勫間負0.5錛岃〃紺篈lpha搴︾殑鍊間負0.5(鍗沖崐閫忔槑)銆傚湪ColorMatrix涓紝鍏冪礌(5,5)鐨勫兼亽瀹氫負1.0銆傛垜浠妸ClrMatrix鐨勫厓绱?0,0)淇敼涓?.0錛屽嵆浣垮緱鍥懼儚2.jpg鐨勭孩鑹茬淮搴﹀叏涓嶆樉紺猴紝鍐嶇湅鏁堟灉錛屼負鍥?銆傚垪浣嶈鑰咃紝鎴戜滑浠ュ墠鍦ㄨ豹鏉拌秴綰цВ闇鎬腑璋冩暣R錛孏錛孊鍊間粠鑰屾帶鍒跺浘鍍忚緭鍑洪鑹茬殑鏃跺欙紝璋冪殑灝辨槸榪欎釜涓滀笢錛佸浘9鐨勬晥鏋滃緢鍍忕牬鏃у僵鑹茬數瑙嗘満錛岀孩鑹茬數瀛愭灙"鍡?浜嗐傚垰澶у姣曚笟鏃訛紝淇洪偅涓彨絀峰晩錛屽氨涔頒簡榪欎箞涓數瑙嗘満錛岃繕鐪嬪緱寰堢埥錛岀湡鏄線浜嬩笉鍫洖棣栵紒

WindowsGDI鍜孏DI+緙栫▼瀹炰緥鍏ㄥ墫鏋?6)
鍥? GDI+涓殑ColorMatrix

寮哄ぇ鐨勬枃瀛楄緭鍑?br />
銆銆GDI+鎷ユ湁鏋佸叾寮哄ぇ鐨勬枃瀛楄緭鍑哄鐞嗚兘鍔涳紝杈撳嚭鏂囧瓧鐨勯鑹層佸瓧浣撱佸~鍏呮柟寮忛兘鍙互鐩存帴浣滀負Graphics綾籇rawString鎴愬憳鍑芥暟鐨勫弬鏁拌繘琛岃緗紝鍏跺姛鑳借繙鑳滆繃GDI璁懼涓婁笅鏂囩殑TextOut鍑芥暟銆?br />

void CGdiexampleDlg::OnText()
{
銆// TODO: Add your command handler code here
銆CClientDC dc(this);
銆//鍒涘緩Graphics瀵硅薄
銆Graphics graphics(dc);
銆//鍒涘緩20鍙?妤蜂綋"瀛椾綋
銆FontFamily fontFamily1(L "妤蜂綋_GB2312"); // 瀹氫箟"妤蜂綋"瀛楁牱
銆Font font1(&fontFamily1, 20, FontStyleRegular, UnitPoint);
銆//瀹氫箟杈撳嚭UNICODE瀛楃涓?br />銆WCHAR string[256];
銆wcscpy(string, L "澶╂瀬緗戠殑璇昏呮湅鍙嬶紝鎮ㄥソ錛?);
銆//浠ヨ摑鑹茬敾鍒峰拰20鍙?妤蜂綋"鏄劇ず瀛楃涓?br />銆graphics.DrawString(string, (INT)wcslen(string), &font1, PointF(30, 10),&SolidBrush(Color::Blue));
銆//瀹氫箟瀛楃涓叉樉紺虹敾鍒?br />銆LinearGradientBrush linGrBrush(Point(30, 50), Point(100, 50), Color(255, 255,0, 0), Color(255, 0, 0, 255));
銆//浠ョ嚎鎬ф笎鍙樼敾鍒峰拰鍒涘緩鐨?0鍙?妤蜂綋"鏄劇ず瀛楃涓?br />銆graphics.DrawString(string, (INT)wcslen(string), &font1, PointF(30, 50),&linGrBrush);
銆//鍒涘緩20鍙?鍗庢枃琛屾シ"瀛椾綋
銆FontFamily fontFamily2(L "鍗庢枃琛屾シ"); // 瀹氫箟"妤蜂綋"瀛楁牱
銆Font font2(&fontFamily2, 20, FontStyleRegular, UnitPoint);
銆//浠ョ嚎鎬ф笎鍙樼敾鍒峰拰20鍙?鍗庢枃琛屾シ"鏄劇ず瀛楃涓?br />銆graphics.DrawString(string, (INT)wcslen(string), &font2, PointF(30, 90),&linGrBrush);
銆//浠ュ浘鍍忓垱寤虹敾鍒?br />銆Image image(L "d:\3.jpg");
銆TextureBrush tBrush(&image);
銆//浠ュ浘鍍忕敾鍒峰拰20鍙?鍗庢枃琛屾シ"鏄劇ず瀛楃涓?br />銆graphics.DrawString(string, (INT)wcslen(string), &font2, PointF(30, 130),&tBrush);
銆//鍒涘緩25鍙?鍗庢枃涓畫"瀛椾綋
銆FontFamily fontFamily3(L "鍗庢枃涓畫"); // 瀹氫箟"妤蜂綋"瀛楁牱
銆Font font3(&fontFamily2, 25, FontStyleRegular, UnitPoint);
銆//浠ュ浘鍍忕敾鍒峰拰20鍙?鍗庢枃琛屾シ"鏄劇ず瀛楃涓?br />銆graphics.DrawString(string, (INT)wcslen(string), &font3, PointF(30, 170),&tBrush);
}

銆銆涓婅堪浠g爜鐨勬墽琛屾晥鏋滃鍥?0鎵紺猴紝瀛椾綋銆侀鑹插拰濉厖閮藉緢涓板瘜錛?br />

David Lee 2009-02-07 19:37 鍙戣〃璇勮
]]>閿欒 璀﹀憡 姝誨垜瀹e垽澶т細http://m.shnenglu.com/Lee/archive/2008/12/19/69828.htmlDavid LeeDavid LeeFri, 19 Dec 2008 05:52:00 GMThttp://m.shnenglu.com/Lee/archive/2008/12/19/69828.htmlhttp://m.shnenglu.com/Lee/comments/69828.htmlhttp://m.shnenglu.com/Lee/archive/2008/12/19/69828.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/69828.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/69828.html 1
.Compiler聽 Warning (level 1)聽 C4717
warning C4717: 'CTestView::OnCreate' : recursive on all control paths, function will cause runtime stack overflow//鏈漢閬囧埌
涓嬩負緗戠粶杞澆錛?br />Error Message
'function' : recursive on allcontrolpaths, functionwillcauseruntimestackoverflow

濡備笅闈唬鐮侊細
#include "wingdi.h"

HPEN Graphics::CreatePen( int penStyles /*= PS_SOLID*/, COLORREF penCol /*= RGB(255, 255, 255)*/, int thickness /*= 1*/ )
{
HPEN ahPen = CreatePen(penStyles, thickness, penCol);
return ahPen;
}

榪欐牱鍦ㄧ紪璇戠殑鏃跺欙紝緙栬瘧鍣ㄤ細鎻愮ずwarningC4717: 'GDIEngine::Graphics::CreatePen' : recursive on allcontrolpaths, functionwillcauseruntimestackoverflow

瀵艱嚧榪欐牱闂鐨勫師鍥犳槸錛氱紪璇戝櫒涓嶇煡閬揌PEN ahPen = CreatePen(penStyles, thickness, penCol);璋冪敤鐨凜reatePen鏄摢涓涓?br />
瑙e喅闂錛?br />HPEN Graphics::CreatePen( int penStyles /*= PS_SOLID*/, COLORREF penCol /*= RGB(255, 255, 255)*/, int thickness /*= 1*/ )
{
HPEN ahPen = ::CreatePen(penStyles, thickness, penCol);
return ahPen;
}

聽聽聽聽聽聽

David Lee 2008-12-19 13:52 鍙戣〃璇勮
]]>#define WINAPI __stdcall鏄粈涔堟剰鎬濓紙杞級http://m.shnenglu.com/Lee/archive/2008/12/09/68966.htmlDavid LeeDavid LeeTue, 09 Dec 2008 10:43:00 GMThttp://m.shnenglu.com/Lee/archive/2008/12/09/68966.htmlhttp://m.shnenglu.com/Lee/comments/68966.htmlhttp://m.shnenglu.com/Lee/archive/2008/12/09/68966.html#Feedback1http://m.shnenglu.com/Lee/comments/commentRss/68966.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/68966.html聽 鍑芥暟璋冪敤綰﹀畾鏈夊縐嶏紝榪欓噷綆鍗曡涓涓嬶細 聽
聽 聽 聽 聽 1銆乢_stdcall璋冪敤綰﹀畾鐩稿綋浜?6浣嶅姩鎬佸簱涓粡甯鎬嬌鐢ㄧ殑PASCAL璋冪敤綰﹀畾銆傚湪32浣嶇殑VC++5.0涓璓ASCAL璋冪敤綰﹀畾涓嶅啀琚敮鎸侊紙瀹為檯涓婂畠宸茶瀹氫箟涓篲_stdcall銆傞櫎浜哶_pascal澶栵紝__fortran鍜宊_syscall涔熶笉琚敮鎸侊級錛屽彇鑰屼唬涔嬬殑鏄痏_stdcall璋冪敤綰﹀畾銆備袱鑰呭疄璐ㄤ笂鏄竴鑷寸殑錛屽嵆鍑芥暟鐨勫弬鏁拌嚜鍙沖悜宸﹂氳繃鏍堜紶閫掞紝琚皟鐢ㄧ殑鍑芥暟鍦ㄨ繑鍥炲墠娓呯悊浼犻佸弬鏁扮殑鍐呭瓨鏍堬紝浣嗕笉鍚岀殑鏄嚱鏁板悕鐨勪慨楗伴儴鍒嗭紙鍏充簬鍑芥暟鍚嶇殑淇グ閮ㄥ垎鍦ㄥ悗闈㈠皢璇︾粏璇存槑錛夈?聽
聽 聽 聽 聽 聽 _stdcall鏄疨ascal紼嬪簭鐨勭己鐪佽皟鐢ㄦ柟寮忥紝閫氬父鐢ㄤ簬Win32 聽 Api涓紝鍑芥暟閲囩敤浠庡彸鍒板乏鐨勫帇鏍堟柟寮忥紝鑷繁鍦ㄩ鍑烘椂娓呯┖鍫嗘爤銆俈C灝嗗嚱鏁扮紪璇戝悗浼氬湪鍑芥暟鍚嶅墠闈㈠姞涓婁笅鍒掔嚎鍓嶇紑錛屽湪鍑芥暟鍚嶅悗鍔犱笂"@"鍜屽弬鏁扮殑瀛楄妭鏁般?聽
聽 聽 聽 聽 聽 2銆丆璋冪敤綰﹀畾錛堝嵆鐢╛_cdecl鍏抽敭瀛楄鏄庯級鎸変粠鍙寵嚦宸︾殑欏哄簭鍘嬪弬鏁板叆鏍堬紝鐢辮皟鐢ㄨ呮妸鍙傛暟寮瑰嚭鏍堛傚浜庝紶閫佸弬鏁扮殑鍐呭瓨鏍堟槸鐢辮皟鐢ㄨ呮潵緇存姢鐨勶紙姝e洜涓哄姝わ紝瀹炵幇鍙彉鍙傛暟鐨勫嚱鏁板彧鑳戒嬌鐢ㄨ璋冪敤綰﹀畾錛夈傚彟澶栵紝鍦ㄥ嚱鏁板悕淇グ綰﹀畾鏂歸潰涔熸湁鎵涓嶅悓銆?聽
聽 聽 聽 聽 聽 _cdecl鏄疌鍜孋錛嬶紜紼嬪簭鐨勭己鐪佽皟鐢ㄦ柟寮忋傛瘡涓涓皟鐢ㄥ畠鐨勫嚱鏁伴兘鍖呭惈娓呯┖鍫嗘爤鐨勪唬鐮侊紝鎵浠ヤ駭鐢熺殑鍙墽琛屾枃浠跺ぇ灝忎細姣旇皟鐢╛stdcall鍑芥暟鐨勫ぇ銆傚嚱鏁伴噰鐢ㄤ粠鍙沖埌宸︾殑鍘嬫爤鏂瑰紡銆俈C灝嗗嚱鏁扮紪璇戝悗浼氬湪鍑芥暟鍚嶅墠闈㈠姞涓婁笅鍒掔嚎鍓嶇紑銆傛槸MFC緙虹渷璋冪敤綰﹀畾銆?聽
聽 聽 聽 聽 聽 3銆乢_fastcall璋冪敤綰﹀畾鏄滀漢鈥濆鍏跺悕錛屽畠鐨勪富瑕佺壒鐐瑰氨鏄揩錛屽洜涓哄畠鏄氳繃瀵勫瓨鍣ㄦ潵浼犻佸弬鏁扮殑錛堝疄闄呬笂錛屽畠鐢‥CX鍜孍DX浼犻佸墠涓や釜鍙屽瓧錛圖WORD錛夋垨鏇村皬鐨勫弬鏁幫紝鍓╀笅鐨勫弬鏁頒粛鏃ц嚜鍙沖悜宸﹀帇鏍堜紶閫侊紝琚皟鐢ㄧ殑鍑芥暟鍦ㄨ繑鍥炲墠娓呯悊浼犻佸弬鏁扮殑鍐呭瓨鏍堬級錛屽湪鍑芥暟鍚嶄慨楗扮害瀹氭柟闈紝瀹冨拰鍓嶄袱鑰呭潎涓嶅悓銆?聽
聽 聽 聽 聽 聽 _fastcall鏂瑰紡鐨勫嚱鏁伴噰鐢ㄥ瘎瀛樺櫒浼犻掑弬鏁幫紝VC灝嗗嚱鏁扮紪璇戝悗浼氬湪鍑芥暟鍚嶅墠闈㈠姞涓?@"鍓嶇紑錛屽湪鍑芥暟鍚嶅悗鍔犱笂"@"鍜屽弬鏁扮殑瀛楄妭鏁般?聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 4銆乼hiscall浠呬粎搴旂敤浜庘淐++鈥濇垚鍛樺嚱鏁般倀his鎸囬拡瀛樻斁浜嶤X瀵勫瓨鍣紝鍙傛暟浠庡彸鍒板乏鍘嬨倀hiscall涓嶆槸鍏抽敭璇嶏紝鍥犳涓嶈兘琚▼搴忓憳鎸囧畾銆?聽
聽 聽 聽 聽 聽 5銆乶aked 聽 call閲囩敤1-4鐨勮皟鐢ㄧ害瀹氭椂錛屽鏋滃繀瑕佺殑璇濓紝榪涘叆鍑芥暟鏃剁紪璇戝櫒浼氫駭鐢熶唬鐮佹潵淇濆瓨ESI錛孍DI錛孍BX錛孍BP瀵勫瓨鍣紝閫鍑哄嚱鏁版椂鍒欎駭鐢熶唬鐮佹仮澶嶈繖浜涘瘎瀛樺櫒鐨勫唴瀹廣俷aked 聽 call涓嶄駭鐢熻繖鏍風殑浠g爜銆俷aked 聽 call涓嶆槸綾誨瀷淇グ絎︼紝鏁呭繀欏誨拰_declspec鍏卞悓浣跨敤銆?聽
聽 聽 聽 聽 聽 鍏抽敭瀛?聽 __stdcall銆乢_cdecl鍜宊_fastcall鍙互鐩存帴鍔犲湪瑕佽緭鍑虹殑鍑芥暟鍓嶏紝涔熷彲浠ュ湪緙栬瘧鐜鐨凷etting...\C/C++ 聽 \Code 聽 Generation欏歸夋嫨銆傚綋鍔犲湪杈撳嚭鍑芥暟鍓嶇殑鍏抽敭瀛椾笌緙栬瘧鐜涓殑閫夋嫨涓嶅悓鏃訛紝鐩存帴鍔犲湪杈撳嚭鍑芥暟鍓嶇殑鍏抽敭瀛楁湁鏁堛傚畠浠搴旂殑鍛戒護琛屽弬鏁板垎鍒負/Gz銆?Gd鍜?Gr銆傜己鐪佺姸鎬佷負/Gd錛屽嵆__cdecl銆?聽
聽 聽 聽 聽 聽 瑕佸畬鍏ㄦā浠縋ASCAL璋冪敤綰﹀畾棣栧厛蹇呴』浣跨敤__stdcall璋冪敤綰﹀畾錛岃嚦浜庡嚱鏁板悕淇グ綰﹀畾錛屽彲浠ラ氳繃鍏跺畠鏂規硶妯′豢銆傝繕鏈変竴涓煎緱涓鎻愮殑鏄疻INAPI瀹忥紝Windows.h鏀寔璇ュ畯錛屽畠鍙互灝嗗嚭鍑芥暟緲昏瘧鎴愰傚綋鐨勮皟鐢ㄧ害瀹氾紝鍦╓IN32涓紝瀹冭瀹氫箟涓篲_stdcall銆備嬌鐢╓INAPI瀹忓彲浠ュ垱寤鴻嚜宸辯殑APIs銆偮?img src ="http://m.shnenglu.com/Lee/aggbug/68966.html" width = "1" height = "1" />

David Lee 2008-12-09 18:43 鍙戣〃璇勮
]]>
紼嬪簭銆佽繘紼嬪拰綰跨▼http://m.shnenglu.com/Lee/archive/2008/11/19/67278.htmlDavid LeeDavid LeeWed, 19 Nov 2008 06:11:00 GMThttp://m.shnenglu.com/Lee/archive/2008/11/19/67278.htmlhttp://m.shnenglu.com/Lee/comments/67278.htmlhttp://m.shnenglu.com/Lee/archive/2008/11/19/67278.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/67278.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/67278.html 紼嬪簭 錛氭槸璁$畻鏈烘寚浠ょ殑闆嗗悎錛屽畠浠ユ枃浠剁殑褰㈠紡瀛樺偍鍦ㄧ鐩樹笂銆?br />
榪涚▼錛?/font>閫氬父琚畾涔変負涓涓鍦ㄨ繍琛岀殑紼嬪簭鐨勫疄渚嬶紝鏄竴涓▼搴忓湪鍏惰嚜韜殑鍦板潃絀洪棿涓殑涓嬈℃墽琛屾椿鍔ㄣ?br />
榪涚▼鏄祫婧愮敵璇楓佽皟搴﹀拰鐙珛榪愯鐨勫崟浣嶏紝鍥犳錛屽畠璇曠敤緋葷粺涓殑榪愯璧勬簮錛?br />鑰岀▼搴忎笉鑳界敵璇風郴緇熻祫婧愶紝涓嶈兘琚郴緇熻皟搴︼紝涔熶笉鑳戒綔涓虹嫭绔嬭繍琛岀殑鍗曚綅錛屽洜姝ゅ畠涓嶅崰鐢ㄧ郴緇熻祫婧愩?br />
榪涚▼鐢?閮ㄥ垎緇勬垚錛?br />1.鍐呮牳瀵硅薄聽聽聽聽聽聽聽聽聽 鎿嶄綔緋葷粺鐢ㄦ潵綆$悊榪涚▼鐨勫唴鏍稿璞°偮犅?鍐呮牳瀵硅薄涔熷氨鏄郴緇熺敤鏉ュ瓨鏀炬湁鍏寵繘紼嬬殑緇熻淇℃伅鐨勫湴鏂廣?br />2.鍦板潃絀洪棿聽聽聽聽聽聽聽聽聽 鍦板潃絀洪棿鍖呭惈鎵鏈夊彲鎵ц妯″潡鎴朌LL妯″潡鐨勪唬鐮佸拰鏁版嵁錛岃繕鍖呭惈鍔ㄦ佸唴瀛樺垎閰嶇殑絀洪棿銆偮?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽姣斿錛氱嚎紼嬪爢鏍堝拰鍫嗗垎閰嶇┖闂?br />
榪涚▼浠庢潵涓嶆墽琛屼換浣曚笢瑗匡紝瀹冨彧鏄嚎紼嬬殑瀹瑰櫒銆?br />鑻ヨ浣垮畠瀹屾垚鏌愰」鎿嶄綔錛屽畠蹇呴』鎷ユ湁涓涓湪瀹冪幆澧冮噷榪愯鐨勭嚎紼嬶紝姝ょ嚎紼嬭礋璐f墽琛屽寘鍚湪榪涚▼鐨勫湴鍧絀洪棿涓殑浠g爜銆?br />
鍗曚釜榪涚▼鍙兘鍖呭惈鑻ュ共綰跨▼錛岃繖浜涚嚎紼嬮兘鏄滃悓鏃垛濇墽琛岃繘紼嬪湴鍧絀洪棿涓殑浠g爜銆?br />
姣忎釜榪涚▼鑷沖皯鎷ユ湁涓涓嚎紼嬶紝鏉ユ墽琛屽湴鍧絀洪棿涓殑浠g爜銆?br />褰撳垱寤轟竴涓繘紼嬫椂錛岀郴緇熶細鑷姩鍒涘緩榪欎釜榪涚▼鐨勭涓涓嚎紼嬶紝姝ょ嚎紼嬬О涓轟富綰跨▼銆?br />姝ゅ悗錛屼富綰跨▼鍐嶅垱寤哄叾瀹冪嚎紼嬨?br />
榪涚▼鍦板潃絀洪棿錛?br />
緋葷粺璧嬩簣姣忎釜榪涚▼鐙珛鐨勮櫄鎷熷湴鍧絀洪棿銆?br />瀵逛簬32浣嶈繘紼嬫潵璇達紝榪欎釜鍦板潃絀洪棿灝辨槸4GB銆?br />
姣忎釜榪涚▼閮芥湁瀹冪殑縐佹湁鍦板潃絀洪棿銆?br />榪涚▼A鍙兘鏈変竴涓瓨鏀懼湪A鐨勫湴鍧絀洪棿涓殑鏁版嵁緇撴瀯錛屽湴鍧鏄?x12345678錛?br />榪涚▼B鏈変竴涓畬鍏ㄤ笉鍚岀殑鏁版嵁緇撴瀯瀛樻斁鍦˙鐨勫湴鍧絀洪棿錛屽湴鍧鏄?x12345678;
褰撹繘紼婣鐨勭嚎紼嬭闂湴鍧涓?x12345678鐨勫唴瀛樻椂錛岃繖浜涚嚎紼嬭闂殑鏄繘紼婣鐨勬暟鎹粨鏋勶紱
褰撹繘紼婤鐨勭嚎紼嬭闂湴鍧涓?x12345678鐨勫唴瀛樻椂錛岃繖浜涚嚎紼嬭闂殑鏄繘紼婤鐨勬暟鎹粨鏋勶紱
榪涚▼A鐨勭嚎紼嬩笉鑳借闂繘紼婤鐨勫湴鍧絀洪棿涓殑鏁版嵁緇撴瀯錛屽弽涔嬩害鐒躲?br />
4GB鏄櫄鎷熷唴瀛樺湴鍧錛屽彧鏄唴瀛樺湴鍧鐨勪竴涓寖鍥淬?br />鍦ㄤ綘鑳芥垚鍔熻闂暟鎹屼笉浼氬嚭鐜伴潪娉曡闂箣鍓嶏紝蹇呴』璧嬩簣鐗╃悊瀵勫瓨鍣ㄣ佹垨鑰呭皢鐗╃悊瀛樺偍鍣ㄦ槧灝勫埌鍚勪釜閮ㄥ垎鐨勫湴鍧絀洪棿銆?br />
4GB铏氭嫙絀洪棿鍦板潃涓紝2GB鏄唴鏍告柟寮忓垎鍖猴紝渚涘唴鏍鎬唬鐮併佽澶囬┍鍔ㄧ▼搴忋佽澶嘔/O楂橀熺紦鍐層侀潪欏甸潰鍐呭瓨姹犵殑鍒嗛厤鍜岃繘紼嬮〉闈㈣〃絳変嬌鐢紱
鑰岀敤鎴鋒柟寮忓垎鍖轟嬌鐢ㄧ殑鍦板潃絀洪棿綰︿負2GB錛岃繖涓垎鍖烘槸榪涚▼鐨勭鏈夊湴鍧絀洪棿鎵鍦ㄧ殑鍦版柟銆?br />涓涓繘紼嬩笉鑳借鍙栥佸啓鍏ャ佹垨鑰呬互浠諱綍鏂瑰紡璁塊棶椹葷暀鍦ㄨ鍒嗗尯鐨勫彟涓涓繘紼嬬殑鏁版嵁銆?br />瀵逛簬鎵鏈夊簲鐢ㄧ▼搴忔潵璇達紝璇ュ垎鍖烘槸緇存姢榪涚▼鐨勫ぇ閮ㄥ垎鏁版嵁鐨勫湴鏂廣?br />
綰跨▼錛?br />綰跨▼鐢?閮ㄥ垎緇勬垚錛?br />1.綰跨▼鐨勫唴鏍稿璞★細
鎿嶄綔緋葷粺鐢ㄥ畠鏉ュ綰跨▼瀹炴柦綆$悊銆?br />鍐呮牳瀵硅薄涔熸槸緋葷粺鐢ㄦ潵瀛樻斁綰跨▼緇熻淇℃伅鐨勫湴鏂廣?br />2.綰跨▼鍫嗘爤錛?br />瀹冪敤鏉ョ淮鎶ょ嚎紼嬪湪鎵ц浠g爜鏃墮渶瑕佺殑鎵鏈夊弬鏁板拰灞閮ㄥ彉閲忋?br />
褰撳垱寤虹嚎紼嬫椂錛岀郴緇熷垱寤轟竴涓嚎紼嬪唴鏍稿璞°?br />璇ョ嚎紼嬪唴鏍稿璞′笉鏄嚎紼嬫湰韜紝鑰屾槸鎿嶄綔緋葷粺鐢ㄦ潵綆$悊綰跨▼鐨勮緝灝忕殑鏁版嵁緇撴灉銆?br />鍙互灝嗙嚎紼嬪唴鏍稿璞¤涓虹敱鍏充簬綰跨▼鐨勭粺璁′俊鎭粍鎴愮殑涓涓皬鍨嬫暟鎹粨鏋勩?br />
綰跨▼鎬繪槸鍦ㄦ煇涓繘紼嬬幆澧冧腑鍒涘緩銆傜郴緇熶粠榪涚▼鐨勫湴鍧絀洪棿涓垎閰嶅唴瀛橈紝渚涚嚎紼嬬殑鍫嗘爤浣跨敤銆?br />鏂扮嚎紼嬭繍琛岀殑榪涚▼鐜涓庡垱寤虹嚎紼嬬殑鐜鐩稿悓銆傚洜姝わ紝鏂扮嚎紼嬪彲浠ヨ闂繘紼嬬殑鍐呮牳瀵硅薄鐨勬墍鏈夊彞鏌勩?br />榪涚▼涓殑鎵鏈夊唴瀛樺拰鍦ㄨ繖涓浉鍚岃繘紼嬩腑鐨勬墍鏈夊叾浠栫嚎紼嬬殑鍫嗘爤銆?br />榪欎嬌寰楀崟涓繘紼嬬殑澶氫釜綰跨▼鑳藉闈炲父瀹規槗鐨勭浉浜掗氫俊銆?br />
綰跨▼鍙湁涓涓唴鏍稿璞″拰鍫嗘爤錛屼繚鐣欑殑璁板綍寰堝皯錛屾墍浠ユ墍闇鐨勫唴瀛樹篃寰堝皬銆?br />
鍥犱負綰跨▼闇瑕佺殑寮閿姣旇繘紼嬪皯錛屽洜姝ょ紪紼嬩腑緇忓父鐢ㄥ綰跨▼鏉ヨВ鍐抽棶棰橈紝閬垮厤寮鍚柊鐨勭嚎紼嬨?br />

綰跨▼榪愯錛?br />鎿嶄綔緋葷粺涓烘瘡涓繍琛岀嚎紼嬪畨鎺掍竴瀹氱殑CPU鏃墮棿鈥斺旀椂闂寸墖銆?br />緋葷粺閫氳繃涓縐嶅驚鐜殑鏂瑰紡涓虹嚎紼嬫彁渚涙椂闂寸墖錛屾瘡涓嚎紼嬪湪鑷繁鐨勬椂闂村唴榪愯錛屽洜鏃墮棿鐗囩浉褰撶煭錛?br />鎵浠ョ粰鐢ㄦ埛鐨勬劅瑙夊氨濂藉儚澶氱嚎紼嬪湪鍚屾椂榪愯涓鏍楓?br />
濡傛灉涓鍙拌綆楁満鏈夊涓狢PU錛岀嚎紼嬪氨鑳界湡姝f剰涔変笂鐨勫悓鏃惰繍琛屼簡錛屼篃灝辨槸鐪熸鐨勫綰跨▼浜嗐?/font>

浜掓枼瀵硅薄錛?br />浜掓枼瀵硅薄灞炰簬鍐呮牳瀵硅薄錛屽畠鑳藉紜繚綰跨▼鎷ユ湁瀵瑰崟涓祫婧愮殑浜掓枼璁塊棶鏉冦?br />
浜掓枼瀵硅薄鍖呭惈涓涓嬌鐢ㄦ暟閲忥紝涓涓嚎紼婭D鍜屼竴涓鏁板櫒銆?br />
ID鐢ㄤ簬鏍囩ず緋葷粺涓殑鍝釜綰跨▼褰撳墠鎷ユ湁浜掓枼瀵硅薄錛岃鏁板櫒鐢ㄤ簬鎸囨槑璇ョ嚎紼嬫嫢鏈変簰鏂ュ璞$殑嬈℃暟銆?br />


David Lee 2008-11-19 14:11 鍙戣〃璇勮
]]>
嫻呮瀽C++閲岄潰鐨勫畯(杞笘)http://m.shnenglu.com/Lee/archive/2008/11/11/66589.htmlDavid LeeDavid LeeTue, 11 Nov 2008 03:31:00 GMThttp://m.shnenglu.com/Lee/archive/2008/11/11/66589.htmlhttp://m.shnenglu.com/Lee/comments/66589.htmlhttp://m.shnenglu.com/Lee/archive/2008/11/11/66589.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/66589.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/66589.html銆銆璇村埌瀹忥紝鎭愭曞ぇ瀹墮兘鑳借鍑虹偣涓滆タ鏉ワ細涓縐嶉澶勭悊錛屾病鏈夊垎鍙鳳紙鐪熺殑鍚楋紵錛夈傜劧鍚庡憿錛?br />銆銆鍡?......鑼劧涓?.....
銆銆濂藉惂錛屾垜浠氨浠庤繖寮濮嬭璧楓?br />銆銆鏈甯歌鐨勫畯鎭愭曟槸#include浜嗭紝鍏舵灝辨槸#define榪樻湁.......
銆銆榪樻槸浠庡畯鐨勭敤閫斿垎綾誨惂錛?br />銆銆1銆?include 涓昏鐢ㄤ簬鍖呭惈寮曠敤鏂囦歡錛岃嚦浠婂叾鍦頒綅鏃犱漢鑳芥浛浠o紱
銆銆2銆佹敞閲婃帀浠g爜銆備緥濡傦細
銆銆 #if 0
銆銆 .......
銆銆 #endif;
銆銆 榪欑鏈哄埗鏄洰鍓嶆敞閲婃帀浠g爜鐨勬渶浣抽夋嫨錛屼負鎽╂墭緗楁媺鍏徃鍛樺伐鎵鏅亶閲囩敤錛?br />銆銆3銆佷唬鐮佺増鏈鐞嗐備緥濡傦細
銆銆 #ifdef DEBUG
銆銆 file://璋?/a>璇曠増鏈?br />銆銆 #else
銆銆
file://闈?/a>璋冭瘯鐗堟湰
銆銆 #endif;
銆銆4銆佸0鏄庡畯銆備緥濡傦細
銆銆 #define DECLARE_MESSAGE(x) x();~x()
file://鏈?/a>娌℃湁鍒嗗彿錛熷搱鍝?br />銆銆 //........
銆銆 class A
銆銆 {
銆銆 public:
銆銆 DECLARE_MESSAGE(A);
銆銆 ..............
銆銆 }
銆銆 鎯寵搗浠涔堜簡錛屽懙鍛碉細錛夊,VC閲岄潰鏈夊ソ澶氳繖鏍風殑涓滀笢錛屾湁絀烘垜浼氬啓銆婃垜鐨刅C鍘嗙▼銆嬶紝鍒?br />銆銆鏃跺欎細鎶奦C閲岀殑鍚勭瀹忚緇嗙殑瑙i噴涓涓嬶紝閭e彲鏄竴涓簽澶х殑宸ョ▼錛氾級
銆銆5銆佺鍙峰父閲忋備緥濡傦細
銆銆 #define PI 3.14159
銆銆6銆佸唴鑱斿嚱鏁般備緥濡傦細
銆銆 #define CLEAR(x) ((x)=0)
銆銆7銆佹硾鍨嬪嚱鏁般備緥濡?
銆銆 #define ABS(x) ((x)>0? (x):-(x))
銆銆 x=3 娌¢棶棰橈紒 x=1.3 涔熸病闂錛?br />銆銆 濡傛灉鏄繖鏍峰憿:
銆銆 #include <iostream.h>
銆銆 #define A(x) ((x)>0? (x):-(x))
銆銆 void main()
銆銆 {
銆銆int i=-1;
銆銆cout<<A(1)<<endl;
銆銆cout<<A(++i)<<endl;
銆銆 }
銆銆 鏈夐棶棰樹簡錛屼笉榪囦互鍚庡啀璇達紝澶ф璁瞔onst or inline 鏃朵細璇寸殑錛氾級
銆銆8銆佹硾鍨嬬被鍨嬨備緥濡傦細
銆銆 #define Stack(T) Stack__ ##T
銆銆 #define Stackdeclare(T) class Stack(T) {.....}
銆銆 Stackdeclare(int);
銆銆 Stackdeclare(char);
銆銆 .......
銆銆 Stack(int) s1;
銆銆 Stack(char) s2;
銆銆9銆佽娉曟墿灞曘備緥濡傦細
銆銆 Set<int> s;//鍋囪Set涓轟竴涓弿榪伴泦鍚堢殑綾?br />銆銆 int i;
銆銆 FORALL(i,s);
銆銆 .......
銆銆 瀹忔渶澶х殑闂渚挎槸鏄撳紩璧峰啿紿侊紝渚嬪錛?br />銆銆 libA.h:
銆銆 #define MACRO stuff
銆銆 鍚屾椂錛?br />銆銆 libB.h:
銆銆 #define MACRO stuff
銆銆 涓嬮潰鎴戜滑瀵逛粬浠繘琛屽紩鐢細
銆銆 user.cpp:
銆銆 #include "libA.h"
銆銆 #include "libB.h"
銆銆 .............
銆銆 緋熺硶錛屽嚭鐜頒簡閲嶅畾涔夛紒
銆銆 榪樻湁涓縐嶅啿紿佺殑鍙兘錛?br />銆銆 libB.h:錛堟病鏈夊畾涔夊畯MACRO)
銆銆 class x { void MACRO(); ...........};
銆銆 閭d箞紼嬪簭榪愯鏈熼棿錛宭ibA.h涓殑瀹忚浼氭敼鍙榣ibB.h涓殑鎴愬憳鍑芥暟鐨勫悕瀛楋紝瀵艱嚧涓嶅彲棰勬枡
銆銆鐨勭粨鏋溿?br />銆銆 瀹忕殑鍙︿竴涓棶棰橈紝渚挎槸濡?涓嚭鐜扮殑闂錛屽鏋滀綘鎶?涓殑x璁句負'a'錛岀▼搴忎篃涓嶄細緇欏嚭浠?br />銆銆浣曡鍛婏紝鎵浠ヤ粬鏄笉瀹夊叏鐨勩?br />銆銆 閽堝浠ヤ笂鐨勯棶棰橈紝鎴戜滑璇達細
銆銆 1銆佸敖鍙兘鐨勫皯鐢ㄥ叕鐢ㄥ畯,鑳芥浛鎹㈡帀灝辨浛鎹㈡帀錛?br />銆銆 2銆佸閭d簺涓嶈兘鏇挎崲鐨勫畯錛屼嬌鐢ㄥ懡鍚嶇害瀹氾紱
銆銆 1銆佺鍙峰父閲忛澶勭悊紼嬪簭鎴戜滑鍙互鐢╟onst or enum 鏉ヤ唬鏇匡細
銆銆 const int TABLESIZE=1024;
銆銆 enum { TABLESIZE=1024 }錛?br />銆銆 2銆侀潪娉涘瀷鍐呰仈鍑芥暟鐨勯澶勭悊紼嬪簭鍙互浣跨敤鐪熸鐨勫唴鑱斿嚱鏁版潵浠f浛錛?br />銆銆 inline void clear(int& x) {x=0;}
銆銆 濂ワ紝瀵逛簡錛岃繕鏈夎繖鏍蜂竴縐嶆儏鍐碉細
銆銆 #define CONTROL(c) ((c)-64)
銆銆 ..........
銆銆 switch(c)
銆銆 {
銆銆 case CONTROL('a') : ......
銆銆 case CONTROL('b') : ......
銆銆 case CONTROL('c') : ......
銆銆 case CONTROL('d') : ......
銆銆 ..........
銆銆 }
銆銆 榪欐椂鍊欏氨涓嶈兘鍗曠嫭浣跨敤鍐呰仈鍑芥暟鏉ュ彇浠d簡錛屽洜涓篶ase鏍囩紱佹鍑芥暟璋冪敤錛屾垜浠彧濂?br />銆銆鍋氬涓嬭漿鎹細
銆銆 inline char control(char c) { return c+64; }
銆銆 ...........
銆銆 switch(control(c))
銆銆 {
銆銆 case 'a':.....
銆銆 case 'b':.....
銆銆 case 'c':.....
銆銆 case 'd':.....
銆銆 ........
銆銆 }
銆銆 褰撶劧榪欐牱鍋氭槸浠ョ壓鐗叉椂闂翠綔涓轟唬浠風殑錛堜綘鎯蟲兂涓轟粈涔?)錛?br />銆銆 3銆佸浜庢硾鍨嬮澶勭悊紼嬪簭錛屾垜浠彲浠ョ敤鍑芥暟妯℃澘鎴栫被榛樻澘鏉ヤ唬鏇匡細
銆銆 template<class T>
銆銆 T ABS(const T& t) { return t>0 ? t : -t; }
銆銆 template<class T>
銆銆 Class Stack { ............ };
銆銆 4銆佹渶鍚庡浜庤娉曟墿灞曠▼搴忓嚑涔庨兘鍙互鐢ㄤ竴涓垨澶氫釜C++綾諱唬鏇匡細
銆銆 Set<int> s;
銆銆 int i;
銆銆 Set_iter<int> iter(s);
銆銆 while(iter.next(i))
銆銆 ...........
銆銆 涓庝嬌鐢ㄥ畯鐩告瘮錛屾垜浠彧鏄壓鐗蹭簡涓鐐圭▼搴忕殑綆媧佹ц屽凡銆?br />銆銆 褰撶劧騫朵笉鏄墍鏈夌殑瀹忛兘鑳芥浛鎹紙鎴戜滑涔熷茍涓嶄富寮犳浛鎹㈡帀鎵鏈夌殑瀹忥紒錛夛紝瀵逛簬涓嶈兘鏇挎崲鐨?br />銆銆瀹忥紝鎴戜滑搴旇瀵逛粬浠疄琛屽懡鍚嶇害瀹氾紝渚嬪錛?br />銆銆 #define COMPANY_XYZ_LIBABC_MACRO stuff
銆銆 鍚屾椂鎴戜滑涔熻閲囧彇涓瀹氱殑鏂規硶錛岃繘琛岄闃詫細
銆銆 #ifndef COMPANY_XYZ_LIBABC_MACRO
銆銆 #define COMPANY_XYZ_LIBABC_MACRO stuff
銆銆 #endif
銆銆 褰撶劧錛屽湪紼嬪簭搴撳疄鐜板唴閮ㄥ畾涔夌殑瀹忔病鏈夎繖涓害鏉燂細
銆銆 my.cpp:
銆銆 #define MACRO stuff
銆銆 ........
銆銆 鎴戜滑緇欏嚭鍑犱釜甯歌鐨勫畯錛?
銆銆 #define A(x) T_##x
銆銆 #define Bx) #@x
銆銆 #define Cx) #x
銆銆 鎴戜滑鍋囪錛歺=1錛屽垯鏈夛細
銆銆 A(1)=======T_1
銆銆 B(1)======'1'
銆銆 C(1)======"1"
銆銆 榪樻湁涓涓瘮杈冨父瑙佺殑瀹忥細_T
銆銆 TCHAR tStr[] = _T("t code");
銆銆 _T瀹忕殑浣滅敤灝辨槸杞崲鎴怲CHAR銆?/div>

David Lee 2008-11-11 11:31 鍙戣〃璇勮
]]>
Structure and Union鏈変粈涔堝尯鍒紵(杞?http://m.shnenglu.com/Lee/archive/2008/10/20/64491.htmlDavid LeeDavid LeeMon, 20 Oct 2008 06:39:00 GMThttp://m.shnenglu.com/Lee/archive/2008/10/20/64491.htmlhttp://m.shnenglu.com/Lee/comments/64491.htmlhttp://m.shnenglu.com/Lee/archive/2008/10/20/64491.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/64491.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/64491.html闃呰鍏ㄦ枃

David Lee 2008-10-20 14:39 鍙戣〃璇勮
]]>
璁$畻鏈鴻璦鈥斺旓紙璧勬枡鎬ц川錛?/title><link>http://m.shnenglu.com/Lee/archive/2008/10/20/64450.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Sun, 19 Oct 2008 18:13:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2008/10/20/64450.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/64450.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2008/10/20/64450.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/64450.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/64450.html</trackback:ping><description><![CDATA[ <span style="FONT-SIZE: 9pt"> <font size="4">銆銆璁$畻鏈鴻璦錛氳綆楁満璇█閫氬父鏄竴涓兘瀹屾暣銆佸噯紜拰瑙勫垯鍦拌〃杈句漢浠殑鎰忓浘<span lang="EN-US">,</span>騫剁敤浠ユ寚鎸ユ垨鎺у埗璁$畻鏈哄伐浣滅殑鈥滅鍙風郴緇熲濄?span lang="EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></font> </span> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆<span style="COLOR: red">璁$畻鏈鴻璦閫氬父鍒嗕負涓夌被錛氬嵆鏈哄櫒璇█錛屾眹緙栬璦鍜岄珮綰ц璦銆?/span>銆錛堜簡瑙e唴瀹逛竴錛?/font> <span lang="EN-US"> <br /> <br /> </span> <font size="4">銆銆<span lang="EN-US">1. </span>鏈哄櫒璇█</font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆銆鏈哄櫒璇█鏄敤浜岃繘鍒朵唬鐮佽〃紺虹殑璁$畻鏈鴻兘鐩存帴璇嗗埆鍜屾墽琛岀殑涓縐嶆満鍣ㄦ寚浠ょ殑闆嗗悎銆傚畠鏄綆楁満鐨勮璁¤呴氳繃璁$畻鏈虹殑紜歡緇撴瀯璧嬩簣璁$畻鏈虹殑鎿嶄綔鍔熻兘銆傛満鍣ㄨ璦鍏鋒湁鐏墊椿銆佺洿鎺ユ墽琛屽拰閫熷害蹇瓑鐗圭偣銆?/font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆銆鐢ㄦ満鍣ㄨ璦緙栧啓紼嬪簭<span lang="EN-US">,</span>緙栫▼浜哄憳瑕侀鍏堢啛璁版墍鐢ㄨ綆楁満鐨勫叏閮ㄦ寚浠や唬鐮佸拰浠g爜鐨勬兜涔夈傛墜緙栫▼搴忔椂<span lang="EN-US">,</span>紼嬪簭鍛樺緱鑷繁澶勭悊姣忔潯鎸囦護鍜屾瘡涓鏁版嵁鐨勫瓨鍌ㄥ垎閰嶅拰杈撳叆杈撳嚭<span lang="EN-US">,</span>榪樺緱璁頒綇緙栫▼榪囩▼涓瘡姝ユ墍浣跨敤鐨勫伐浣滃崟鍏冨鍦ㄤ綍縐嶇姸鎬併傝繖鏄竴浠跺崄鍒嗙箒鐞愮殑宸ヤ綔<span lang="EN-US">,</span>緙栧啓紼嬪簭鑺辮垂鐨勬椂闂村線寰鏄疄闄呰繍琛屾椂闂寸殑鍑犲崄鍊嶆垨鍑犵櫨鍊嶃傝屼笖<span lang="EN-US">,</span>緙栧嚭鐨勭▼搴忓叏鏄簺<span lang="EN-US">0</span>鍜?span lang="EN-US">1</span>鐨勬寚浠や唬鐮?span lang="EN-US">,</span>鐩磋鎬у樊<span lang="EN-US">,</span>榪樺鏄撳嚭閿欍傜幇鍦?span lang="EN-US">,</span>闄や簡璁$畻鏈虹敓浜у巶瀹剁殑涓撲笟浜哄憳澶?span lang="EN-US">,</span>緇濆ぇ澶氭暟紼嬪簭鍛樺凡緇忎笉鍐嶅幓瀛︿範鏈哄櫒璇█浜嗐?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆<span lang="EN-US">2.</span>姹囩紪璇█</font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆銆涓轟簡鍏嬫湇鏈哄櫒璇█闅捐銆侀毦緙栥侀毦璁板拰鏄撳嚭閿欑殑緙虹偣<span lang="EN-US">,</span>浜轟滑灝辯敤涓庝唬鐮佹寚浠ゅ疄闄呭惈涔夌浉榪戠殑鑻辨枃緙╁啓璇嶃佸瓧姣嶅拰鏁板瓧絳夌鍙鋒潵鍙栦唬鎸囦護浠g爜<span lang="EN-US">(</span>濡傜敤<span lang="EN-US">ADD</span>琛ㄧず榪愮畻絎﹀彿鈥滐紜鈥濈殑鏈哄櫒浠g爜<span lang="EN-US">),</span>浜庢槸灝變駭鐢熶簡姹囩紪璇█銆傛墍浠ヨ<span lang="EN-US">,</span>姹囩紪璇█鏄竴縐嶇敤鍔╄絎﹁〃紺虹殑浠嶇劧闈㈠悜鏈哄櫒鐨勮綆楁満璇█銆傛眹緙栬璦浜︾О絎﹀彿璇█銆傛眹緙栬璦鐢便銆銆浜庢槸閲囩敤浜嗗姪璁扮鍙鋒潵緙栧啓紼嬪簭<span lang="EN-US">,</span>姣旂敤鏈哄櫒璇█鐨勪簩榪涘埗浠g爜緙栫▼瑕佹柟渚夸簺<span lang="EN-US">,</span>鍦ㄤ竴瀹氱▼搴︿笂綆鍖栦簡緙栫▼榪囩▼銆傛眹緙栬璦鐨勭壒鐐規槸鐢ㄧ鍙蜂唬鏇夸簡鏈哄櫒鎸囦護浠g爜<span lang="EN-US">,</span>鑰屼笖鍔╄絎︿笌鎸囦護浠g爜涓涓瀵瑰簲<span lang="EN-US">,</span>鍩烘湰淇濈暀浜嗘満鍣ㄨ璦鐨勭伒媧繪с備嬌鐢ㄦ眹緙栬璦鑳介潰鍚戞満鍣ㄥ茍杈冨ソ鍦板彂鎸ユ満鍣ㄧ殑鐗規?span lang="EN-US">,</span>寰楀埌璐ㄩ噺杈冮珮鐨勭▼搴忋?/font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆銆姹囩紪璇█涓敱浜庝嬌鐢ㄤ簡鍔╄絎﹀彿<span lang="EN-US">,</span>鐢ㄦ眹緙栬璦緙栧埗鐨勭▼搴忛佸叆璁$畻鏈?span lang="EN-US">,</span>璁$畻鏈轟笉鑳借薄鐢ㄦ満鍣ㄨ璦緙栧啓鐨勭▼搴忎竴鏍風洿鎺ヨ瘑鍒拰鎵ц<span lang="EN-US">,</span>蹇呴』閫氳繃棰勫厛鏀懼叆璁$畻鏈虹殑鈥滄眹緙栫▼搴忊滅殑鍔犲伐鍜岀炕璇?span lang="EN-US">,</span>鎵嶈兘鍙樻垚鑳藉琚綆楁満璇嗗埆鍜屽鐞嗙殑浜岃繘鍒朵唬鐮佺▼搴忋傜敤姹囩紪璇█絳夐潪鏈哄櫒璇█涔﹀啓濂界殑絎﹀彿紼嬪簭縐版簮紼嬪簭<span lang="EN-US">,</span>榪愯鏃舵眹緙栫▼搴忚灝嗘簮紼嬪簭緲昏瘧鎴愮洰鏍囩▼搴忋傜洰鏍囩▼搴忔槸鏈哄櫒璇█紼嬪簭<span lang="EN-US">,</span>瀹冧竴緇忚瀹夌疆鍦ㄥ唴瀛樼殑棰勫畾浣嶇疆涓?span lang="EN-US">,</span>灝辮兘琚綆楁満鐨?span lang="EN-US">CPU</span>澶勭悊鍜屾墽琛屻?/font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆銆姹囩紪璇█鍍忔満鍣ㄦ寚浠や竴鏍?span lang="EN-US">,</span>鏄‖浠舵搷浣滅殑鎺у埗淇℃伅<span lang="EN-US">,</span>鍥犺屼粛鐒舵槸闈㈠悜鏈哄櫒鐨勮璦<span lang="EN-US">,</span>浣跨敤璧鋒潵榪樻槸姣旇緝綣佺悙璐規椂<span lang="EN-US">,</span>閫氱敤鎬т篃宸傛眹緙栬璦鏄綆綰ц璦銆備絾鏄?span lang="EN-US">,</span>姹囩紪璇█鐢ㄦ潵緙栧埗緋葷粺杞歡鍜岃繃紼嬫帶鍒惰蔣浠?span lang="EN-US">,</span>鍏剁洰鏍囩▼搴忓崰鐢ㄥ唴瀛樼┖闂村皯<span lang="EN-US">,</span>榪愯閫熷害蹇?span lang="EN-US">,</span>鏈夌潃楂樼駭璇█涓嶅彲鏇夸唬鐨勭敤閫斻?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆<span lang="EN-US">3.</span>楂樼駭璇█</font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆銆涓嶈鏄満鍣ㄨ璦榪樻槸姹囩紪璇█閮芥槸闈㈠悜紜歡鐨勫叿浣撴搷浣滅殑錛岃璦瀵規満鍣ㄧ殑榪囧垎渚濊禆錛岃姹備嬌鐢ㄨ呭繀欏誨紜歡緇撴瀯鍙婂叾宸ヤ綔鍘熺悊閮藉崄鍒嗙啛鎮夛紝榪欏闈炶綆楁満涓撲笟浜哄憳鏄毦浠ュ仛鍒扮殑<span lang="EN-US">,</span>瀵逛簬璁$畻鏈虹殑鎺ㄥ箍搴旂敤鏄笉鍒╃殑銆傝綆楁満浜嬩笟鐨勫彂灞?span lang="EN-US">,</span>淇冧嬌浜轟滑鍘誨姹備竴浜涗笌浜虹被鑷劧璇█鐩告帴榪戜笖鑳戒負璁$畻鏈烘墍鎺ュ彈鐨勮鎰忕‘瀹氥佽鍒欐槑紜佽嚜鐒剁洿瑙傚拰閫氱敤鏄撳鐨勮綆楁満璇█銆傝繖縐嶄笌鑷劧璇█鐩歌繎騫朵負璁$畻鏈烘墍鎺ュ彈鍜屾墽琛岀殑璁$畻鏈鴻璦縐伴珮綰ц璦銆傞珮綰ц璦鏄潰鍚戠敤鎴風殑璇█銆傛棤璁轟綍縐嶆満鍨嬬殑璁$畻鏈?span lang="EN-US">,</span>鍙閰嶅涓婄浉搴旂殑楂樼駭璇█鐨勭紪璇戞垨瑙i噴紼嬪簭<span lang="EN-US">,</span>鍒欑敤璇ラ珮綰ц璦緙栧啓鐨勭▼搴忓氨鍙互閫氱敤銆?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p> <font size="4"> <span style="FONT-SIZE: 9pt; COLOR: red">銆銆鐩墠琚箍娉涗嬌鐢ㄧ殑楂樼駭璇█鏈?span lang="EN-US">BASIC</span>銆?span lang="EN-US">PASCAL</span>銆?span lang="EN-US">C</span>銆?span lang="EN-US">COBOL</span>銆?span lang="EN-US">FORTRAN</span>銆?span lang="EN-US">LOGO</span>浠ュ強<span lang="EN-US">VC</span>銆?span lang="EN-US">VB</span>絳夈傝繖浜涜璦閮芥槸灞炰簬緋葷粺杞歡銆傘</span> <span style="FONT-SIZE: 9pt">錛堜簡瑙e唴瀹逛簩錛?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆璁$畻鏈哄茍涓嶈兘鐩存帴鍦版帴鍙楀拰鎵ц鐢ㄩ珮綰ц璦緙栧啓鐨勬簮紼嬪簭<span lang="EN-US">,</span>婧愮▼搴忓湪杈撳叆璁$畻鏈烘椂<span lang="EN-US">,</span>閫氳繃鈥滅炕璇戠▼搴忊濈炕璇戞垚鏈哄櫒璇█褰㈠紡鐨勭洰鏍囩▼搴?span lang="EN-US">,</span>璁$畻鏈烘墠鑳借瘑鍒拰鎵ц銆傝繖縐嶁滅炕璇戔濋氬父鏈変袱縐嶆柟寮?span lang="EN-US">,</span>鍗崇紪璇戞柟寮忓拰瑙i噴鏂瑰紡銆傜紪璇戞柟寮忔槸錛氫簨鍏堢紪濂戒竴涓О涓虹紪璇戠▼搴忕殑鏈哄櫒璇█紼嬪簭<span lang="EN-US">,</span>浣滀負緋葷粺杞歡瀛樻斁鍦ㄨ綆楁満鍐?span lang="EN-US">,</span>褰撶敤鎴風敱楂樼駭璇█緙栧啓鐨勬簮紼嬪簭杈撳叆璁$畻鏈哄悗<span lang="EN-US">,</span>緙栬瘧紼嬪簭渚挎妸婧愮▼搴忔暣涓湴緲昏瘧鎴愮敤鏈哄櫒璇█琛ㄧず鐨勪笌涔嬬瓑浠風殑鐩爣紼嬪簭<span lang="EN-US">,</span>鐒跺悗璁$畻鏈哄啀鎵ц璇ョ洰鏍囩▼搴?span lang="EN-US">,</span>浠ュ畬鎴愭簮紼嬪簭瑕佸鐞嗙殑榪愮畻騫跺彇寰楃粨鏋溿傝В閲婃柟寮忔槸錛氭簮紼嬪簭榪涘叆璁$畻鏈烘椂<span lang="EN-US">,</span>瑙i噴紼嬪簭杈規壂鎻忚竟瑙i噴浣滈愬彞杈撳叆閫愬彞緲昏瘧<span lang="EN-US">,</span>璁$畻鏈轟竴鍙ュ彞鎵ц<span lang="EN-US">,</span>騫朵笉浜х敓鐩爣紼嬪簭銆?span lang="EN-US">PASCAL</span>銆?span lang="EN-US">FORTRAN</span>銆?span lang="EN-US">COBOL</span>絳夐珮綰ц璦鎵ц緙栬瘧鏂瑰紡<span lang="EN-US">;BASIC</span>璇█鍒欎互鎵ц瑙i噴鏂瑰紡涓轟富<span lang="EN-US">;</span>鑰?span lang="EN-US">PASCAL</span>銆?span lang="EN-US">C</span>璇█鏄兘涔﹀啓緙栬瘧紼嬪簭鐨勯珮綰х▼搴忚璁¤璦銆?姣忎竴縐嶉珮綰?span lang="EN-US">(</span>紼嬪簭璁捐<span lang="EN-US">)</span>璇█<span lang="EN-US">,</span>閮芥湁鑷繁浜轟負瑙勫畾鐨勪笓鐢ㄧ鍙楓佽嫳鏂囧崟璇嶃佽娉曡鍒欏拰璇彞緇撴瀯<span lang="EN-US">(</span>涔﹀啓鏍煎紡<span lang="EN-US">)</span>銆傞珮綰ц璦涓庤嚜鐒惰璦<span lang="EN-US">(</span>鑻辮<span lang="EN-US">)</span>鏇存帴榪?span lang="EN-US">,</span>鑰屼笌紜歡鍔熻兘鐩稿垎紱?span lang="EN-US">(</span>褰誨簳鑴辯浜嗗叿浣撶殑鎸囦護緋葷粺<span lang="EN-US">),</span>渚夸簬騫垮ぇ鐢ㄦ埛鎺屾彙鍜屼嬌鐢ㄣ傞珮綰ц璦鐨勯氱敤鎬у己<span lang="EN-US">,</span>鍏煎鎬уソ<span lang="EN-US">,</span>渚夸簬縐繪銆備笅闈粙緇嶅嚑縐嶈緝鏈変唬琛ㄦх殑楂樼駭紼嬪簭璁捐璇█錛?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆鈶?span lang="EN-US">BASIC</span>璇█</font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆<span lang="EN-US">BASIC</span>璇█鍏ㄧО鏄?span lang="EN-US">Beginner</span>鈥?span lang="EN-US">s all Purpose Symbolic Instruction Code,</span>鎰忎負鈥滃垵瀛﹁呴氱敤絎﹀彿鎸囦護浠g爜鈥溿?span lang="EN-US">1964</span>騫寸敱緹庡浗杈懼皵鎽╂柉瀛﹂櫌鐨勫熀綾沖凹鍜岀鑼ㄥ畬鎴愯璁″茍鎻愬嚭浜?span lang="EN-US">BASIC</span>璇█鐨勭涓涓増鏈?span lang="EN-US">,</span>緇忚繃涓嶆柇涓板瘜鍜屽彂灞?span lang="EN-US">,</span>鐜板凡鎴愪負涓鑳藉叏縐嶅姛闈㈢殑涓皬鍨嬭綆楁満璇█銆?span lang="EN-US">BASIC</span>鏄撳銆佹槗鎳傘佹槗璁般佹槗鐢?span lang="EN-US">,</span>鏄垵瀛﹁呯殑鍏ラ棬璇█<span lang="EN-US">,</span>涔熷彲浠ヤ綔涓哄涔犲叾浠栭珮璇駭璦鐨勫熀紜銆?span lang="EN-US">BASIC</span>鏈夎В閲婃柟寮忓拰緙栬瘧鏂瑰紡涓ょ緲昏瘧紼嬪簭銆?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆鈶?span lang="EN-US">PASCAL</span>璇█</font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆<span lang="EN-US">PASCAL</span>鏄竴縐嶇粨鏋勭▼搴忚璁¤璦<span lang="EN-US">,</span>鐢辯憺澹嫃榛庝笘鑱旈偊宸ヤ笟澶у鐨勬矁鏂?span lang="EN-US">(<span id="hvzpftn" class="SpellE">N.Wirth</span>)</span>鏁欐巿鐮斿埗<span lang="EN-US">,</span>浜?span lang="EN-US">1971</span>騫存寮忓彂琛ㄣ傛槸浠?span lang="EN-US">ALGOL60</span>琛嶇敓鐨?span lang="EN-US">,</span>浣嗗姛鑳芥洿寮轟笖瀹規槗浣跨敤銆傜洰鍓?span lang="EN-US">,</span>浣滀負涓涓兘楂樻晥鐜囧疄鐜扮殑瀹炵敤璇█鍜屼竴涓瀬濂界殑鏁欏宸ュ叿<span lang="EN-US">,PASCAL</span>璇█鍦ㄩ珮鏍¤綆楁満杞歡鏁欎腑瀛︿竴鐩村浜庝富瀵煎湴浣嶃?span lang="EN-US">Pascal(<span id="hvzpftn" class="SpellE">B.Pascal</span>)</span>鏄崄涓冧笘綰硶鍥借憲鍚嶆暟瀛﹀<span lang="EN-US">,</span>浠栦簬<span lang="EN-US">1642</span>騫存浘鍙戞槑鐜頒唬鍙板紡璁$畻鏈虹殑闆忓瀷鏈衡斿姞鍑忔硶璁$畻鏈恒?/font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆<span lang="EN-US">PASCAL</span>鍏鋒湁澶ч噺鐨勬帶鍒剁粨鏋?span lang="EN-US">,</span>鍏呭垎鍙嶆槧浜嗙粨鏋勫寲紼嬪簭璁捐鐨勬濇兂鍜岃姹?span lang="EN-US">,</span>鐩磋鏄撴噦<span lang="EN-US">,</span>浣跨敤鐏墊椿<span lang="EN-US">,</span>鏃㈠彲鐢ㄤ簬縐戝璁$畻<span lang="EN-US">,</span>鍙堣兘鐢ㄦ潵緙栧啓緋葷粺杞歡<span lang="EN-US">,</span>搴旂敤鑼冩棩鍥寸泭騫挎硾銆?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆鈶墮氱敤緙栫▼璇█</font> <font size="4"> <span lang="EN-US">C<br /></span>銆銆<span lang="EN-US">C</span>璇█鏄編鍥?span lang="EN-US">AT&T</span>涓庣數璇?span lang="EN-US">) (</span>鐢墊姤鍏徃涓轟簡瀹炵幇<span lang="EN-US">UNIX</span>緋葷粺鐨勮璁℃濇兂鑰屽彂灞曡搗鏉ョ殑璇█宸ュ叿銆?span lang="EN-US">C</span>璇█鐨勪富瑕佺壒鑹叉槸鍏奸【浜嗛珮綰ц璦鍜屾眹緙栬璦鐨勭壒鐐?span lang="EN-US">,</span>綆媧併佷赴瀵屻佸彲縐繪銆傜浉褰撲簬鍏朵粬楂樼駭璇█瀛愮▼搴忕殑鍑芥暟鏄?span lang="EN-US">C</span>璇█鐨勮ˉ鍏?span lang="EN-US">,</span>姣忎竴涓嚱鏁拌В鍐充竴涓ぇ闂涓殑灝忎換鍔?span lang="EN-US">,</span>鍑芥暟浣跨▼搴忔ā鍧楀寲銆?span lang="EN-US">C</span>璇█鎻愪緵浜嗙粨鏋勫紡緙栫▼鎵闇瑕佺殑鍚勭鐜頒唬鍖栫殑鎺у埗緇撴瀯銆?/font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆<span lang="EN-US">C</span>璇█鏄竴縐嶉氱敤緙栫▼璇█<span lang="EN-US">,</span>姝h瓚婃潵瓚婂鐨勮綆楁満鐢ㄦ埛鎵鎺ㄥ磭銆備嬌鐢跡璇█緙栧啓紼嬪簭<span lang="EN-US">,</span>鏃㈡劅瑙夊埌浣跨敤楂樼駭璇█鐨勮嚜鐒?span lang="EN-US">,</span>涔熶綋浼氬埌鍒╃敤璁$畻鏈虹‖浠舵寚浠ょ殑鐩存帴<span lang="EN-US">,</span>鑰岀▼搴忓憳鍗存棤闇鍗峰叆姹囩紪璇█鐨勭箒鐞愩?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆鈶?span lang="EN-US">COBOL</span>璇█</font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆<span lang="EN-US">COBOL</span>鐨勫叏縐版槸<span lang="EN-US">Common Business Oriented Language,</span>鎰忓嵆錛氶氱敤鍟嗕笟璇█銆?/font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆鍦ㄤ紒涓氱鐞嗕腑<span lang="EN-US">,</span>鏁板艱綆楀茍涓嶅鏉?span lang="EN-US">,</span>浣嗘暟鎹鐞嗕俊鎭噺鍗村緢澶с備負涓撻棬瑙e喅緇忎紒綆$悊闂<span lang="EN-US">,</span>浜?span lang="EN-US">1959</span>騫?span lang="EN-US">,</span>鐢辯編鍥界殑涓浜涜綆楁満鐢ㄦ埛緇勭粐璁捐浜嗕笓鐢ㄤ簬鍟嗗姟澶勭悊鐨勮綆楁満璇█<span lang="EN-US">COBOL,</span>騫朵簬<span lang="EN-US">1961</span>騫寸編鍥芥暟鎹郴緇熻璦鍗忎細鍏竷銆傜粡涓嶆柇淇敼銆佷赴瀵屽畬鍠勫拰鏍囧噯鍖?span lang="EN-US">,</span>宸插彂灞曚負澶氱鐗堟湰銆?/font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆<span lang="EN-US">COBOL</span>璇█浣跨敤浜?span lang="EN-US">300</span>澶氫釜鑻辮淇濈暀瀛?span lang="EN-US">,</span>澶ч噺閲囩敤鏅氳嫳璇瘝姹囧拰鍙ュ瀷<span lang="EN-US">,COBOL</span>紼嬪簭閫氫織鏄撴噦<span lang="EN-US">,</span>绱犳湁鈥滆嫳璇璦鈥濅箣縐般?/font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆<span lang="EN-US">COBOL</span>璇█璇硶瑙勫垯涓ユ牸銆傜敤<span lang="EN-US">COBOL</span>璇█緙栧啓鐨勪換涓婧愮▼搴?span lang="EN-US">,</span>渚濋兘瑕佹鎸夋爣璇嗛儴銆佺幆澧冮儴銆佹暟鎹儴鍜岃繃紼嬮儴鍥涢儴鍒嗕功鍐?span lang="EN-US">,COBOL</span>紼嬪簭緇撴瀯鐨勨滈儴鈥濆唴鍖呭惈鈥滆妭鈥?span lang="EN-US">,</span>鈥滆妭鈥濆唴鍖呭惈鈥滄鈥?span lang="EN-US">,</span>孌靛唴鍖呭惈璇彞<span lang="EN-US">,</span>璇彞鐢卞瓧鎴栧瓧絎︿覆緇勬垚<span lang="EN-US">,</span>鏁翠釜婧愮▼搴忚薄涓媯電敱鏍瑰埌騫?span lang="EN-US">,</span>鐢卞共鍒版灊<span lang="EN-US">,</span>鐢辨灊鍒板彾鐨勬爲<span lang="EN-US">,</span>涔犳儻涓婄О涔嬩負鏍戝瀷緇撴瀯銆?/font> <span lang="EN-US"> <br /> </span> <font size="4">銆銆鐩墠<span lang="EN-US">COBOL</span>璇█涓昏搴旂敤浜庢儏鎶ユ绱€佸晢涓氭暟鎹鐞嗙瓑綆$悊棰嗗煙銆?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆甯哥敤鐨勯珮綰х▼搴忚璁¤璦<span lang="EN-US">,</span>闄や簡涓婅堪鐨勫嚑縐嶄箣澶?span lang="EN-US">,</span>榪樻湁寰堝<span lang="EN-US">,</span>濡備互鑻卞浗钁楀悕璇椾漢鎷滀雞<span lang="EN-US">(<span id="hvzpftn" class="SpellE">G.N.G.Byron</span>)</span>鐨勭嫭鐢熷コ鑹捐揪路鎷滀雞<span lang="EN-US">(<span id="hvzpftn" class="SpellE">Ada</span> Byron)</span>鐨勫悕瀛楀懡鍚嶇殑鍐涚敤璇█<span id="hvzpftn" class="SpellE"><span lang="EN-US">Ada</span></span><span lang="EN-US">,</span>娣卞彈涓佸皬瀛︾敓嬈㈣繋鐨勮璦<span lang="EN-US">LOGO</span>絳夌瓑銆?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font size="4">銆銆鐩墠<span lang="EN-US">,</span>紼嬪簭璁捐璇█鍙婄紪紼嬬幆澧冩鍚戦潰鍚戝璞¤璦鍙婂彲瑙嗗寲緙栫▼鐜鏂瑰悜鍙戝睍<span lang="EN-US">,</span>鍑虹幇浜嗚澶氱鍥涗唬璇█鍙婂叾寮鍙戝伐鍏楓傚錛氬井杞叕鍙?span lang="EN-US">(Microsoft)</span>寮鍙戠殑<span lang="EN-US">Visual</span>緋誨垪<span lang="EN-US">(VC++</span>銆?span lang="EN-US">VB</span>銆?span lang="EN-US">FoxPro)</span>緙栫▼宸?/font> <span lang="EN-US"> <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?> <v:shapetype id="_x0000_t75" path=" m@4@5 l@4@11@9@11@9@5 xe" stroked="f" filled="f" o:spt="75" o:preferrelative="t" coordsize="21600,21600"> <font size="4"> <v:stroke joinstyle="miter"> </v:stroke> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0 "> </v:f> <v:f eqn="sum @0 1 0 "> </v:f> <v:f eqn="sum 0 0 @1 "> </v:f> <v:f eqn="prod @2 1 2 "> </v:f> <v:f eqn="prod @3 21600 pixelWidth "> </v:f> <v:f eqn="prod @3 21600 pixelHeight "> </v:f> <v:f eqn="sum @0 0 1 "> </v:f> <v:f eqn="prod @6 1 2 "> </v:f> <v:f eqn="prod @7 21600 pixelWidth "> </v:f> <v:f eqn="sum @8 21600 0 "> </v:f> <v:f eqn="prod @7 21600 pixelHeight "> </v:f> <v:f eqn="sum @10 21600 0 "> </v:f> </v:formulas> <v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"> </v:path> <o:lock v:ext="edit" aspectratio="t"> </o:lock> </font> </v:shapetype> <v:shape id="_x0000_i1032" style="WIDTH: 12pt; HEIGHT: 12pt" coordsize="21600,21600" type="#_x0000_t75"> <v:imagedata src="yuyan.files/image001.png" o:title=""> </v:imagedata> </v:shape> </span> <font size="4">鍏峰強<span lang="EN-US">Power Builder</span>絳?span lang="EN-US">,</span>鐩墠宸茬粡鍦ㄥ浗鍐呭寰楀埌浜嗗箍娉涚殑搴旂敤銆?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <img src ="http://m.shnenglu.com/Lee/aggbug/64450.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2008-10-20 02:13 <a href="http://m.shnenglu.com/Lee/archive/2008/10/20/64450.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MFC妗嗘灦鍏崇郴鍥?/title><link>http://m.shnenglu.com/Lee/archive/2008/09/21/62376.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Sat, 20 Sep 2008 16:21:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2008/09/21/62376.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/62376.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2008/09/21/62376.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/62376.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/62376.html</trackback:ping><description><![CDATA[ <p> <img height="686" src="file:///C:/Documents%20and%20Settings/Administrator/妗岄潰/59_36494_7602cdbb3156f36.jpg" width="539" /> </p> <img src ="http://m.shnenglu.com/Lee/aggbug/62376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2008-09-21 00:21 <a href="http://m.shnenglu.com/Lee/archive/2008/09/21/62376.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀛︿範VC MFC寮鍙戝繀欏諱簡瑙g殑甯哥敤瀹忓拰鎸囦護http://m.shnenglu.com/Lee/archive/2008/09/19/62305.htmlDavid LeeDavid LeeFri, 19 Sep 2008 12:56:00 GMThttp://m.shnenglu.com/Lee/archive/2008/09/19/62305.htmlhttp://m.shnenglu.com/Lee/comments/62305.htmlhttp://m.shnenglu.com/Lee/archive/2008/09/19/62305.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/62305.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/62305.html 1銆侊純include鎸囦護聽聽
鍖呭惈鎸囧畾鐨勬枃浠堵犅?/font>

2銆?define鎸囦護聽聽聽
棰勫畾涔?閫氬父鐢ㄥ畠鏉ュ畾涔夊父閲?鍖呮嫭鏃犲弬閲忎笌甯﹀弬閲?錛屼互鍙婄敤鏉ュ疄鐜伴偅浜涒滆〃闈技鍜屽杽銆佽儗鍚庝竴闀夸覆鈥濈殑瀹忥紝瀹冩湰韜茍涓嶅湪緙栬瘧榪囩▼涓繘琛岋紝鑰屾槸鍦ㄨ繖涔嬪墠(棰勫鐞嗚繃紼?灝卞凡緇忓畬鎴愪簡

3銆?typedef鎸囦護
甯哥敤鏉ュ畾涔変竴涓爣璇嗙鍙婂叧閿瓧鐨勫埆鍚嶅畠鏄璦緙栬瘧榪囩▼鐨勪竴閮ㄥ垎錛屼絾瀹冨茍涓嶅疄闄呭垎閰嶅唴瀛樼┖闂淬?

4銆?ifndef聽聽 #else聽聽 #endif鎸囦護聽聽
鏉′歡緙栬瘧銆備竴鑸儏鍐典笅錛屾簮紼嬪簭涓墍鏈夌殑琛岄兘鍙傚姞緙栬瘧銆備絾鏄湁鏃跺笇鏈涘鍏朵腑涓閮ㄥ垎鍐呭鍙湪婊¤凍涓瀹氭潯浠舵墠榪涜緙栬瘧錛屼篃灝辨槸瀵逛竴閮ㄥ垎鍐呭鎸囧畾緙栬瘧鐨勬潯浠訛紝榪欏氨鏄滄潯浠剁紪璇戔濄傛湁鏃訛紝甯屾湜褰撴弧瓚蟲煇鏉′歡鏃跺涓緇勮鍙ヨ繘琛岀紪璇戯紝鑰屽綋鏉′歡涓嶆弧瓚蟲椂鍒欑紪璇戝彟涓緇勮鍙ャ偮犅?br />鏉′歡緙栬瘧鍛戒護鏈甯歌鐨勫艦寮忎負錛毬犅?br />#ifdef 鏍囪瘑絎β犅?br />聽聽 紼嬪簭孌?
#else
聽聽 紼嬪簭孌?聽聽
#endif聽聽
瀹冪殑浣滅敤鏄細褰撴爣璇嗙宸茬粡琚畾涔夎繃(涓鑸槸鐢?define鍛戒護瀹氫箟)錛屽垯瀵圭▼搴忔1榪涜緙栬瘧錛屽惁鍒欑紪璇戠▼搴忔2銆?

5銆?Pragma 鎸囦護聽聽
鍦ㄦ墍鏈夌殑棰勫鐞嗘寚浠や腑錛?Pragma 鎸囦護鍙兘鏄渶澶嶆潅鐨勪簡錛屽畠鐨勪綔鐢ㄦ槸璁懼畾緙栬瘧鍣ㄧ殑鐘舵佹垨鑰呮槸鎸囩ず緙栬瘧鍣ㄥ畬鎴愪竴浜涚壒瀹氱殑鍔ㄤ綔銆傚叾鏍煎紡涓鑸負聽聽
#Pragma Para聽聽
鍏朵腑Para 涓哄弬鏁幫紝涓嬮潰鏉ョ湅涓浜涘父鐢ㄧ殑鍙傛暟銆?
l聽聽聽聽聽聽聽聽聽 message 鍙傛暟銆傚畠鑳藉鍦ㄧ紪璇戜俊鎭緭鍑虹獥鍙d腑杈撳嚭鐩稿簲鐨勪俊鎭紝榪欏浜庢簮浠g爜淇℃伅鐨勬帶鍒舵槸闈炲父閲嶈鐨勩傚叾浣跨敤鏂規硶涓猴細聽聽
#Pragma message(鈥滄秷鎭枃鏈?聽聽
褰撶紪璇戝櫒閬囧埌榪欐潯鎸囦護鏃跺氨鍦ㄧ紪璇戣緭鍑虹獥鍙d腑灝嗘秷鎭枃鏈墦鍗板嚭鏉ャ偮犅?br />褰撴垜浠湪紼嬪簭涓畾涔変簡璁稿瀹忔潵鎺у埗婧愪唬鐮佺増鏈殑鏃跺欙紝鎴戜滑鑷繁鏈夊彲鑳介兘浼氬繕璁版湁娌℃湁姝g‘鐨勮緗繖浜涘畯錛屾鏃舵垜浠彲浠ョ敤榪欐潯鎸囦護鍦ㄧ紪璇戠殑鏃跺欏氨榪涜媯鏌ャ傚亣璁炬垜浠笇鏈涘垽鏂嚜宸辨湁娌℃湁鍦ㄦ簮浠g爜鐨勪粈涔堝湴鏂瑰畾涔変簡_X86榪欎釜瀹忓彲浠ョ敤涓嬮潰鐨勬柟娉?
#ifdef _X86
聽聽聽聽聽聽聽聽 #Pragma message(鈥淿X86 macro activated!鈥?
聽聽聽聽聽聽聽聽 #endif聽聽聽
褰撴垜浠畾涔変簡_X86榪欎釜瀹忎互鍚庯紝搴旂敤紼嬪簭鍦ㄧ紪璇戞椂灝變細鍦ㄧ紪璇戣緭鍑虹獥鍙i噷鏄劇ず鈥淿X86 macro activated!鈥濄傛垜浠氨涓嶄細鍥犱負涓嶈寰楄嚜宸卞畾涔夌殑涓浜涚壒瀹氱殑瀹忚屾姄鑰蟲尃鑵簡聽聽
l聽聽聽聽聽聽聽聽聽 鍙︿竴涓嬌鐢ㄥ緱姣旇緝澶氱殑pragma鍙傛暟鏄痗ode_seg銆傛牸寮忓錛?
#pragma code_seg( ["section-name"[,"section-class"] ] )聽聽
瀹冭兘澶熻緗▼搴忎腑鍑芥暟浠g爜瀛樻斁鐨勪唬鐮佹錛屽綋鎴戜滑寮鍙戦┍鍔ㄧ▼搴忕殑鏃跺欏氨浼氫嬌鐢ㄥ埌瀹冦偮犅?br />l聽聽聽聽聽聽聽聽聽 #pragma once聽聽
鍙鍦ㄥご鏂囦歡鐨勬渶寮濮嬪姞鍏ヨ繖鏉℃寚浠ゅ氨鑳藉淇濊瘉澶存枃浠惰緙栬瘧涓嬈★紝榪欐潯鎸囦護瀹為檯涓婂湪VC6涓氨宸茬粡鏈変簡錛屼絾鏄冭檻鍒板吋瀹規у茍娌℃湁澶鐨勪嬌鐢ㄥ畠銆偮犅?br />l聽聽聽聽聽聽聽聽聽 #pragma hdrstop聽聽
琛ㄧず棰勭紪璇戝ご鏂囦歡鍒版涓烘錛屽悗闈㈢殑澶存枃浠朵笉榪涜棰勭紪璇戙侭CB鍙互棰勭紪璇戝ご鏂囦歡浠ュ姞蹇摼鎺ョ殑閫熷害錛屼絾濡傛灉鎵鏈夊ご鏂囦歡閮借繘琛岄緙栬瘧鍙堝彲鑳藉崰澶紓佺洏絀洪棿錛屾墍 浠ヤ嬌鐢ㄨ繖涓夐」鎺掗櫎涓浜涘ご鏂囦歡銆傛湁鏃跺崟鍏冧箣闂存湁渚濊禆鍏崇郴錛屾瘮濡傚崟鍏傾渚濊禆鍗曞厓B錛屾墍浠ュ崟鍏傿瑕佸厛浜庡崟鍏傾緙栬瘧銆備綘鍙互鐢?pragma startup鎸?瀹氱紪璇戜紭鍏堢駭錛屽鏋滀嬌鐢ㄤ簡#pragma package(smart_init) 錛孊CB灝變細鏍規嵁浼樺厛綰х殑澶у皬鍏堝悗緙栬瘧銆偮犅?br />l聽聽聽聽聽聽聽聽聽 #pragma resource "*.dfm"聽聽
琛ㄧず鎶?.dfm鏂囦歡涓殑璧勬簮鍔犲叆宸ョ▼銆?.dfm涓寘鎷獥浣撳瑙傜殑瀹氫箟銆偮犅?br />l聽聽聽聽聽聽聽聽聽 #pragma warning( disable : 4507 34; once : 4385; error : 164 )
絳変環浜庯細聽聽
#pragma warning(disable:4507 34) // 涓嶆樉紺?507鍜?4鍙瘋鍛婁俊鎭?
聽聽聽聽聽聽聽聽 #pragma warning(once:4385) // 4385鍙瘋鍛婁俊鎭粎鎶ュ憡涓嬈?
聽聽聽聽聽聽聽聽 #pragma warning(error:164) // 鎶?64鍙瘋鍛婁俊鎭綔涓轟竴涓敊璇?
鍚屾椂榪欎釜pragma warning 涔熸敮鎸佸涓嬫牸寮忥細
#pragma warning( push [ ,n ] )
#pragma warning( pop )
榪欓噷n浠h〃涓涓鍛婄瓑綰?1---4)銆?
#pragma warning( push )淇濆瓨鎵鏈夎鍛婁俊鎭殑鐜版湁鐨勮鍛婄姸鎬併?
#pragma warning( push, n)淇濆瓨鎵鏈夎鍛婁俊鎭殑鐜版湁鐨勮鍛婄姸鎬侊紝騫朵笖鎶婂叏灞璀﹀憡
絳夌駭璁懼畾涓簄銆?
#pragma warning( pop )鍚戞爤涓脊鍑烘渶鍚庝竴涓鍛婁俊鎭紝鍦ㄥ叆鏍堝拰鍑烘爤涔嬮棿鎵浣滅殑
涓鍒囨敼鍔ㄥ彇娑堛備緥濡傦細
#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
//.......
#pragma warning( pop )
鍦ㄨ繖孌典唬鐮佺殑鏈鍚庯紝閲嶆柊淇濆瓨鎵鏈夌殑璀﹀憡淇℃伅(鍖呮嫭4705錛?706鍜?707)銆?
l聽聽聽聽聽聽聽聽聽 pragma comment(...)
璇ユ寚浠ゅ皢涓涓敞閲婅褰曟斁鍏ヤ竴涓璞℃枃浠舵垨鍙墽琛屾枃浠朵腑銆?
甯哥敤鐨刲ib鍏抽敭瀛楋紝鍙互甯垜浠繛鍏ヤ竴涓簱鏂囦歡銆?
姣忎釜緙栬瘧紼嬪簭鍙互鐢?pragma鎸囦護嬋媧繪垨緇堟璇ョ紪璇戠▼搴忔敮鎸佺殑涓浜涚紪璇戝姛鑳姐備緥濡傦紝瀵瑰驚鐜紭鍖栧姛鑳斤細
#pragma loop_opt(on) // 嬋媧?
#pragma loop_opt(off) // 緇堟
鏈夋椂錛岀▼搴忎腑浼氭湁浜涘嚱鏁頒細浣跨紪璇戝櫒鍙戝嚭浣犵啛鐭ヨ屾兂蹇界暐鐨勮鍛婏紝濡傗淧arameter xxx is never used in function xxx鈥濓紝鍙互榪欐牱錛?
#pragma warn 鈥?00 // Turn off the warning message for warning #100
int insert_record(REC *r)
{ /* function body */ }
#pragma warn +100 // Turn the warning message for warning #100 back on
鍑芥暟浼氫駭鐢熶竴鏉℃湁鍞竴鐗瑰緛鐮?00鐨勮鍛婁俊鎭紝濡傛鍙殏鏃剁粓姝㈣璀﹀憡銆?
姣忎釜緙栬瘧鍣ㄥ#pragma鐨勫疄鐜頒笉鍚岋紝鍦ㄤ竴涓紪璇戝櫒涓湁鏁堝湪鍒殑緙栬瘧鍣ㄤ腑鍑犱箮鏃犳晥銆傚彲浠庣紪璇戝櫒鐨勬枃妗d腑鏌ョ湅銆?

6銆佸畯錛歘_LINE__聽聽 鍜宊_FILE__
聽聽聽聽 瀹氫箟婧愮▼搴忔枃浠跺悕鍜屼唬鐮佽錛岃繖瀵逛簬璋冭瘯璺熻釜浠g爜閿欒琛屽緢鏈夊府鍔┿?
__TIME__聽聽聽聽聽聽聽聽聽聽 錛氱紪璇戞椂闂?
__DATE__聽聽聽聽聽聽 錛氱紪璇戞棩鏈?
__TIMESTAMP__ 錛氭枃浠朵慨鏀規椂闂?

7銆佽皟璇曞畯錛欰SSERT()銆乂ERIFY()銆乀RACE()
榪欎笁涓畯鍦―ebug鐜涓嬬壒鍒湁鏁堬紝甯哥敤浜庝唬鐮佺殑璺熻釜璋冭瘯銆傚畠浠槸鍚﹁搗浣滅敤鍙栧喅浜庢槸鍚﹀畾涔変簡棰勫畾涔変簡瀹?_DEBUG
l聽聽聽聽聽聽聽聽聽 ASSERT
ASSERT(booleanExpression)
璇存槑錛?
璁$畻鍙橀噺鐨勫箋傚鏋滅粨鏋勭殑鍊間負0錛岄偅涔堟瀹忎究鎵撳嵃涓涓瘖鏂秷鎭茍涓旂▼搴忚繍琛屽け璐ャ傚鏋滄潯浠朵負闈?錛岄偅涔堜粈涔堜篃涓嶅仛銆傝瘖鏂秷鎭殑褰㈠紡涓猴細 assertion failed in file in line 鍏朵腑name鏄厓鏂囦歡鍚嶏紝num鏄簮鏂囦歡涓繍琛屽け璐ョ殑涓柇鍙楓?鍦≧elease 鐗堜腑錛孉SSERT涓嶈綆楄〃杈懼紡鐨勫間篃灝變笉涓柇紼嬪簭銆傚鏋滃繀欏昏綆楁琛ㄨ揪寮忕殑鍊間笖涓嶇鐜濡備綍閭d箞鐢╒ERIFY浠f浛ASSERT銆?
榪欎釜瀹忛氬父鍘熸潵鍒ゆ柇紼嬪簭涓槸鍚﹀嚭鐜頒簡鏄庢樉闈炴硶鐨勬暟鎹紝濡傛灉鍑虹幇浜嗙粓姝㈢▼搴忎互鍏嶅鑷翠弗閲嶅悗鏋滐紝鍚屾椂涔熶究浜庢煡鎵鵑敊璇?
ASSERT_VAILD
ASSERT_VAILD(pObject)
璇存槑錛?
鐢ㄤ簬媯嫻嬪叧浜庡璞$殑鍐呴儴鐘舵佺殑鏈夋晥鎬с侫SSERT_VALID璋冪敤姝ゅ璞$殑AssertValid鎴愬憳鍑芥暟錛堟妸瀹冧滑浣滀負鑷繁鐨勫彉閲忔潵浼犻掞級銆傚湪 Release鐗堜腑ASSERT_VALID浠涔堜篃涓嶅仛銆傚湪DEBUG鐗堜腑錛屼粬媯鏌ユ寚閽堬紝浠ヤ笉鍚屼簬NULL鐨勬柟寮忚繘琛屾鏌ワ紝騫惰皟鐢ㄥ璞¤嚜宸辯殑 AssertValid鎴愬憳鍑芥暟銆傚鏋滆繖浜涙嫻嬩腑鏈変換浣曚竴涓け璐ョ殑璇濓紝閭d箞浠栦細浠ヤ笌ASSERT鐩稿悓鐨勬柟娉曟樉紺轟竴涓鍛婄殑娑堟伅銆?
l聽聽聽聽聽聽聽聽聽 VERIFY
VERIFY(booleanExpression)
璇存槑錛?
鍦∕FC鐨凞EBUG鐗堜腑錛孷ERIFY瀹忚綆楀畠鐨勫彉閲忓箋傚鏋滅粨鏋滀負0錛岄偅涔堝畯鎵撳嵃涓涓瘖鏂秷鎭茍涓紼嬪簭銆傚鏋滄潯浠朵笉涓?錛岄偅涔堜粈涔堝伐浣滀篃涓嶄綔銆傝瘖鏂?鏈夊涓嬪艦寮忥細 assertion failed in file in line 鍏朵腑name鏄簮鏂囦歡鐨勫悕瀛楋紝num鏄湪婧愭枃浠朵腑澶辮觸鐨勪腑姝㈣鍙楓傚湪 MFC鐨凴elease鐗堜腑錛孷ERIFY璁$畻琛ㄨ揪寮忓間絾涓嶆墦鍗版垨涓紼嬪簭銆備緥濡傦細濡傛灉琛ㄨ揪寮忔槸涓嚱鏁拌皟鐢紝閭d箞璋冪敤鎴愬姛銆?
l聽聽聽聽聽聽聽聽聽 TRACE
TRACE(exp)
璇存槑錛?
鎶婁竴涓牸寮忓寲瀛楃涓查佸埌杞偍璁懼錛屼緥濡傦紝鏂囦歡鎴栬皟璇曠洃瑙嗗櫒錛屽姛鑳戒笂鍜宲rintf鐩鎬技錛屽彲浠ヨ灝辨槸璋冭瘯鐜涓媝rintf鐨勪竴涓嫹璐濄俆RACE瀹忔槸涓涓?鍦ㄧ▼搴忚繍琛屾椂璺熻釜鍙橀噺鍊肩殑鏂逛究褰㈠紡銆傚湪DEBUG鐜涓紝TRACE瀹忚緭鍑哄埌afxDump銆傚湪Release鐗堜腑浠栦笉鍋氫換浣曞伐浣溿傚彟澶栬繕鏈変竴緇勫彲浠ュ甫鍙?鏁扮殑鐩鎬技鐨勫畯錛歍RACE0銆乀RACE1銆乀RACE2鍜孴RACE3銆傛彁渚涙牸寮忓錛?
TRACE0(exp)
TRACE1(exp,param1)
TRACE2(exp,param1,param2)
TRACE3(exp,param1,param2,param3)
涓嶵RACE鐩鎬技錛屼絾瀹冩妸璺熻釜瀛楃涓叉斁鍦ㄤ唬鐮佹涓紝鑰屼笉鏄疍GROUP錛屽洜姝や嬌鐢ㄥ皯鐨凞GROUP絀洪棿銆傝繖浜涘畯鐨勭敤娉曞拰printf綾諱技銆?

8銆佹秷鎭鐞嗗畯錛欴ECLARE_MESSAGE_MAP 銆丅EGIN_MESSAGE_MAP銆丒ND_MESSAGE_MAP
DECLARE_MESSAGE_MAP()
璇存槑錛?
鐢ㄦ埛紼嬪簭涓殑姣忎釜CCmdTarget媧劇敓綾誨繀欏繪彁渚涙秷鎭槧灝勪互澶勭悊娑堟伅銆傚湪綾誨畾涔夌殑鏈熬浣跨敤DECLARE_MESSAGE_MAP瀹忋傛帴鐫錛屽湪瀹氫箟綾?鎴愬憳鍑芥暟鐨?CPP鏂囦歡涓紝浣跨敤BEGIN_MESSAGE_MAP瀹忥紝姣忎釜鐢ㄦ埛娑堟伅澶勭悊鍑芥暟鐨勫畯欏逛笅闈㈢殑鍒楄〃浠ュ強END_MESSAGE_MAP瀹忋?
娉ㄩ噴錛?
濡傛灉鍦―ECLARE_MESSAGE_MAP涔嬪悗瀹氫箟浠諱綍涓涓垚鍛橈紝閭d箞蹇呴』涓轟粬浠寚瀹氫竴涓柊瀛樺彇綾誨瀷錛堝叕鍏辯殑錛岀鏈夌殑錛屼繚鎶ょ殑錛夈?
BEGIN_MESSAGE_MAP(the class,baseclass)
END_MESSAGE_MAP
璇存槑錛?
浣跨敤BEGIN_MESSAGE_MAP寮濮嬬敤鎴鋒秷鎭槧灝勭殑瀹氫箟銆傚湪瀹氫箟鐢ㄦ埛綾誨嚱鏁扮殑宸ュ叿錛?cpp錛夋枃浠朵腑錛屼互BEGIN_MESSAGE_MAP瀹忓紑濮嬫秷鎭槧灝勶紝鐒跺悗涓烘瘡涓秷鎭鐞嗗嚱鏁板鍔犲畯欏癸紝鎺ョ潃浠ND_MESSAGE_MAP瀹忓畬鎴愭秷鎭槧灝勩?

9銆佹秷鎭槧灝勫畯錛歄N_COMMAND 銆丱N_CONTROL銆丱N_MESSAGE銆丱N_VBXEVENT銆?/strong>ON_Update_COMMAND_UI鍜孫N_REGISTERED_MESSAGE
ON_COMMAND(id,memberFxn)
璇存槑錛?
姝ゅ畯閫氳繃ClassWizard鎴栨墜宸ユ彃鍏ヤ竴涓秷鎭槧灝勩傚畠琛ㄦ槑閭d釜鍑芥暟灝嗕粠涓涓懡浠ょ敤鎴鋒帴鍙o紙渚嬪涓涓彍鍗曢」鎴杢oolbar鎸夐挳錛夊鐞嗕竴涓懡浠ゆ秷鎭?褰撲竴涓懡浠ゅ璞¢氳繃鎸囧畾鐨処D鎺ュ彈鍒頒竴涓猈indows WM_COMMAND娑堟伅鏃訛紝ON_COMMAND灝嗚皟鐢ㄦ垚鍛樺嚱鏁癿emberFxn澶勭悊姝ゆ秷 鎭傚湪鐢ㄦ埛鐨勬秷鎭槧灝勪腑錛屽浜庢瘡涓彍鍗曟垨鍔犻熷櫒鍛戒護錛堝繀欏昏鏄犲皠鍒頒竴涓秷鎭鐞嗗嚱鏁幫級搴旇紜疄鏈変竴涓狾N_COMMAND瀹忚鍙ャ?
ON_CONTROL(wNotifyCode,id,memberFxn)
璇存槑錛?
琛ㄦ槑鍝釜鍑芥暟灝嗗鐞嗕竴涓父瑙勬帶鍒惰〃紺烘秷鎭傛帶鍒舵爣璇嗘秷鎭槸閭d簺浠庝竴涓帶鍒跺か鍙戦佸埌姣嶇獥鍙g殑娑堟伅銆?
ON_MESSAGE(message,memberFxn)
璇存槑錛?
鎸囨槑鍝釜鍑芥暟灝嗗鐞嗕竴鐢ㄦ埛瀹氫箟娑堟伅銆傜敤鎴峰畾涔夋秷鎭氬父瀹氫箟鍦╓M_USER鍒?x7FF鑼冨洿鍐呫傜敤鎴峰畾涔夋秷鎭槸閭d簺涓嶆槸鏍囧噯 Windows WM_MESSAGE娑堟伅鐨勪換浣曟秷鎭傚湪鐢ㄦ埛鐨勬秷鎭槧灝勪腑錛屾瘡涓繀欏昏鏄犲皠鍒頒竴涓秷鎭鐞嗗嚱鏁般傜敤鎴峰畾涔夋秷鎭簲璇ユ湁涓涓?ON_MESSAGE瀹忚鍙ャ?
ON_Update_COMMAND_UI(id錛宮emberFxn)
璇存槑錛?
姝ゅ畯閫氬父閫氳繃ClassWizard琚彃鍏ヤ竴涓秷鎭槧灝勶紝浠ユ寚鏄庡摢涓嚱鏁板皢澶勭悊涓涓敤鎴鋒帴鍙d釜鏇存敼鍛戒護娑堟伅銆傚湪鐢ㄦ埛鐨勬秷鎭槧灝勪腑錛屾瘡涓敤鎴鋒帴鍙f洿鏀瑰懡浠わ紙姣旇琚槧灝勫埌涓涓秷鎭鐞嗗嚱鏁幫級搴旇鏈変竴涓狾N_Update_COMMAND_UI瀹忚鍙ャ?
ON_VBXEVENT(wNotifyCode,memberFxn)
璇存槑錛?
姝ゅ畯閫氬父閫氳繃ClassWizard琚彃鍏ヤ竴涓秷鎭槧灝勶紝浠ユ寚鏄庡摢涓嚱鏁板皢澶勭悊涓涓潵鑷猇BX鎺у埗鐨勬秷鎭傚湪鐢ㄦ埛鐨勬秷鎭槧灝勪腑姣忎釜琚槧灝勫埌涓娑堟伅澶勭悊鍑芥暟鐨刅BX鎺у埗娑堟伅搴旇鏈変竴涓畯璇彞銆?
ON_REGISTERED_MESSAGE(nmessageVarible,memberFxn)
璇存槑錛?
Windows鐨凴egisterWindowsMesage鍑芥暟鐢ㄤ簬瀹氫箟涓涓柊紿楀彛娑堟伅錛屾娑堟伅淇濊瘉鍦ㄦ暣涓郴緇熶腑鏄敮涓鐨勩傛瀹忚〃鏄庡摢涓嚱鏁板鐞嗗凡娉ㄥ唽娑堟伅銆傚彉閲弉MessageViable搴斾互NEAR淇グ絎︽潵瀹氫箟銆?/font>

10銆丏EBUG_NEW
#define new DEBUG_NEW
璇存槑錛?
甯姪鏌ユ壘鍐呭瓨閿欒銆傜敤鎴峰湪紼嬪簭涓嬌鐢―EBUG_NEW,鐢ㄦ埛閫氬父浣跨敤new榪愮畻絎︽潵浠庡爢涓婂垎閰嶃傚湪Debug妯″紡涓嬶紙浣嗗畾涔変簡涓涓狣EBUG絎﹀彿錛夛紝 DEBUG_NEW涓哄畠鍒嗛厤鐨勬瘡涓璞¤褰曟枃浠跺悕鍜岃鍙楓傜劧鍚庯紝鍦ㄧ敤鎴蜂嬌鐢–MemoryState::DumpAllObjectSince鎴愬憳鍑芥暟 鏃訛紝姣忎釜浠EBUG_NEW鍒嗛厤鐨勫璞″垎閰嶇殑鍦版柟鏄劇ず鍑烘枃浠跺悕鍜岃鍙楓備負浜嗕嬌鐢―EBUG_NEW,搴斿湪鐢ㄦ埛鐨勮祫婧愭枃浠朵腑鎻掑叆浠ヤ笅鎸囦護錛?#define new DEBUG_NEW 涓鏃︾敤鎴鋒彃鍏ユ湰鎸囦護錛岄澶勭悊紼嬪簭灝嗗湪浣跨敤new鐨勫湴鏂規彃鍏EBUG_NEW錛岃孧FC浣滃叾浣欑殑宸ヤ綔銆備絾 鐢ㄦ埛緙栬瘧鑷繁鐨勭▼搴忕殑涓涓彂琛岀増鏃訛紝DEBUG_NEW渚胯繘琛岀畝鍗曠殑new鎿嶄綔錛岃屼笖涓嶄駭鐢熸枃浠跺悕鍜岃鍙鋒秷鎭?

11銆佸紓甯稿畯錛歍RY銆丆ATCH 銆乀HROW銆丄ND_CATCH銆乀HROW_LAST鍜孍ND_CATCH
TRY
璇存槑錛?
浣跨敤姝ゅ畯寤虹珛涓TRY鍧椼備竴涓猅RY璇嗗埆涓涓彲鎺掗櫎寮傚父鐨勪唬鐮佸潡銆傝繖浜涘紓甯稿湪闅忓悗鐨凜ATCH鍜孉ND_CATCH鍧楀鐞嗐備紶閫掓槸鍏佽鐨勶細寮傚父鍙互浼犻掍竴涓閮═RY鍧楋紝鎴栬呭拷鐣ュ畠浠垨鑰呬嬌鐢═HROW_LAST瀹忋?
CATCH(exception_class,exception_object_pointer_name)
璇存槑錛?
浣跨敤姝ょ敤瀹氫箟涓涓唬鐮佸潡錛屾浠g爜鐢ㄦ潵鑾峰彇褰撳墠TRY鍧椾腑閮戒竴涓紓甯哥被鍨嬨傚紓甯稿鐞嗕唬鐮佸彲浠ヨ闂紓甯稿璞★紝濡備綍鍚堥傜殑璇濓紝灝變細寰楀埌鍏充簬寮傚父鐨勭壒孌婂師鍥犵殑鏇村 娑堟伅銆傝皟鐢═HROW_LAST瀹忎互鎶婂鐞嗚繃紼嬩竴涓嬩竴涓閮ㄥ紓甯告鏋訛紝濡傛灉exception-class鏄被CExceptioon,閭d箞浼氳幏鍙栨墍鏈夊紓 甯哥被鍨嬨傜敤鎴峰彲浠ヤ嬌鐢–Object::IsKindOf鎴愬憳鍑芥暟浠ョ‘瀹氶偅涓壒鍒紓甯歌鎺掗櫎銆備竴縐嶈幏鍙栧紓甯哥殑鏈濂芥柟寮忔槸浣跨敤欏哄簭鐨凙ND_CATCH璇?鍙ワ紝姣忎釜甯︿竴涓笉鍚岀殑寮傚父綾誨瀷銆傛寮傚父綾誨瀷鐨勬寚閽堢敱瀹忓畾涔夛紝鐢ㄦ埛涓嶅繀瀹氫箟銆?
娉ㄩ噴錛?
姝ATCH鍧楄瀹氫箟浣滀竴涓狢++鑼冨洿錛堢敱鑺辨嫭鍙鋒弿榪幫級銆傚鐢ㄦ埛鍦ㄦ鑼冨洿瀹氫箟鍙橀噺錛岄偅涔堝畠浠彧鍦ㄥ悆鑼冨洿鍐呭彲浠ヨ闂備粬榪樺彲浠ョ敤浜庡紓甯稿璞$殑鎸囬拡鍚嶃?
THROW(exception_object_pointer)
璇存槑錛?
媧懼嚭鎸囧畾鐨勫紓甯搞俆HROW涓柇紼嬪簭鐨勮繍琛岋紝鎶婃帶鍒朵紶閫掔粰鐢ㄦ埛紼嬪簭涓殑鐩稿叧鐨凜ATCH鍧椼傚鏋滅敤鎴鋒病鏈夋彁渚汣ATCH鍧楋紝閭d箞鎺у埗琚紶閫掑埌涓涓狹FC妯″潡錛屼粬鎵撳嵃鍑轟竴涓敊璇茍緇堟榪愯銆?
AND_CATCH(exception_class,exception _object_point_name)
璇存槑錛?
瀹氫箟涓涓唬鐮佸潡錛屽畠鐢ㄤ簬鑾峰彇搴熼櫎褰撳墠TRY鍧椾腑鐨勯檮鍔犲紓甯哥被鍨嬨備嬌鐢–ATCH瀹忎互鑾峰緱涓涓紓甯哥被鍨嬶紝鐒跺悗浣跨敤AND_CATCH瀹忚幏寰楅殢鍚庣殑寮傚父澶勭悊浠?鐮佸彲浠ヨ闂紓甯稿璞★紙鑻ュ悎閫傜殑璇?宸插緱鍒板叧浜庡紓甯哥殑鐗瑰埆鍘熷洜鐨勬洿澶氭秷鎭傚湪AND_CATCH鍧椾腑璋冪敤THROW_LAST瀹忎互渚挎妸澶勭悊榪囩▼縐誨埌涓嬩釜澶栭儴 寮傚父妗嗘灦銆侫ND_CATCH鍙爣璁癈ATCH鎴朅ND_CATCH鍧楃殑鏈熬銆?
娉ㄩ噴錛?
AND_CATCH鍧楄瀹氫箟鎴愪負涓涓狢++浣滅敤鍩燂紙鐢辮姳鎷彿鏉ユ弿榪幫級銆傝嫢鐢ㄦ埛鍦ㄦ浣滅敤鍩熷畾涔夊彉閲忥紝閭d箞璁頒綇浠栦滑鍙湪姝や綔鐢ㄥ煙涓彲浠ヨ闂備粬涔熺敤浜巈xception_object_pointer_name鍙橀噺銆?
THROW_LAST()
璇存槑錛?
姝ゅ畯鍏佽鐢ㄦ埛媧懼嚭涓涓眬閮ㄥ緩绔嬬殑寮傚父銆傚鏋滅敤鎴瘋瘯鍥炬帓闄や竴涓垰鍙戠幇鐨勫紓甯革紝閭d箞涓鑸寮傚父灝嗘孩鍑哄茍琚垹闄ゃ備嬌鐢═HROW_LAST,姝ゅ紓甯歌鐩存帴浼犻佸埌涓嬩竴涓狢ATCH澶勭悊紼嬪簭銆?
END_CATCH
璇存槑錛?
鏍囪瘑鏈鍚庣殑CATCH鎴朅ND_CATCH鍧楃殑鏈熬銆?

12銆丏ECLARE_DYNAMIC 銆両MPLEMENT_DYNAMIC
DECLARE_DYNAMIC(class_name)
璇存槑錛?
浣嗕粠CObject媧劇敓涓涓被鏃訛紝姝ゅ畯澧炲姞鍏充簬涓涓璞$被鐨勮闂繍琛屾椂闂村姛鑳姐傛妸DECLARE_DYNAMIC瀹忓姞鍏ョ被鐨勫ご鏂囦歡涓紝鐒跺悗鍦ㄥ叏閮ㄩ渶瑕佽闂?姝ょ被瀵硅薄鐨?CPP鏂囦歡涓兘鍖呭惈姝ゆā鍧椼傚鏋滃儚鎵鎻忚堪閭f牱浣跨敤DELCARE_DYNAMIC鍜孖MPLEMENT_DYNAMIC瀹忥紝閭d箞鐢ㄦ埛渚垮彲浣跨敤 RUNTIME_CLASS瀹忓拰CObject::IsKindOf鍑芥暟浠ュ湪榪愯鏃墮棿鍐沖畾瀵硅薄綾匯傚鏋淒ECLARE_DYNAMIC鍖呭惈鍦ㄧ被瀹氫箟涓紝閭?涔圛MPLEMETN_DYNAMIC蹇呴』鍖呭惈鍦ㄧ被宸ュ叿涓偮犅?br />IMPLEMENT_DYNAMIC(class_name,base_class_name)
璇存槑錛?
閫氳繃榪愯鏃跺湪涓茶緇撴瀯涓負鍔ㄦ丆Object媧劇敓綾昏闂被鍚嶅拰浣嶇疆鏉ヤ駭鐢熷繀瑕佺殑C++浠g爜銆傚湪.CPP鏂囦歡涓嬌鐢↖MPLEMENT_DYNAMIC瀹忥紝鎺ョ潃涓嬈¢摼鎺ョ粨鏋滃璞′唬鐮?

13銆丏ECLARE_DYNCreate銆両MPLEMENT_DYNCreate
DECLARE_DYNCreate(class_name)
璇存槑錛?
浣跨敤DECLARE_DYNCRETE瀹忎互渚垮厑璁窩Object媧劇敓綾葷殑瀵硅薄鍦ㄨ繍琛屾椂鍒昏嚜鍔ㄥ緩绔嬨備嬌鐢ㄦ鍔熻兘鑷姩寤虹珛鏂板璞★紝渚嬪錛屼絾瀹冨湪涓茶鍖栬繃紼嬩腑浠?紓佺洏璇諱竴涓璞℃椂錛屾枃浠跺強瑙嗗浘鍜屾鏋剁獥搴旇鏀寔鍔ㄦ佸緩绔嬶紝鍥犱負妗嗘灦闇瑕佽嚜鍔ㄥ緩绔嬪畠銆傛妸DECLARE_DYNCreate瀹忓姞鍏ョ被鐨?H鏂囦歡涓紝鐒跺悗鍦ㄥ叏 閮ㄩ渶瑕佽闂綾誨璞$殑.CPP鏂囦歡涓寘鍚繖涓妯″紡銆傚鏋淒ECLARE_DYNCreate鍖呭惈鍦ㄧ被瀹氫箟涓紝閭d箞IMPLEMENT_DYNCreate 蹇呴』鍖呭惈鍦ㄧ被宸ュ叿涓?
IMPLEMENT_DYNCreate(class_name,base_class_name)
璇存槑錛?
閫氳繃DECLARE_DYNCreate瀹忔潵浣跨敤IMPLEMENT_DYNCreate瀹忥紝浠ュ厑璁窩Object媧劇敓綾誨璞″湪榪愯鏃惰嚜鍔ㄥ緩绔嬨備富鏈轟嬌鐢?姝ゅ姛鑳借嚜鍔ㄥ緩绔嬪璞★紝渚嬪錛屼絾瀹冨湪涓茶鍖栬繃紼嬩腑浠庣鐩樿鍘諱竴涓璞℃椂錛屼粬鍦ㄧ被宸ュ叿閲屽姞鍏MPLEMENT_DYNCreate瀹忋傝嫢鐢ㄦ埛浣跨敤 DECLARE_DYNCreate鍜孖MPLEMENT_DYNCreate瀹?閭d箞鎺ョ潃浣跨敤RUNTIME_CLASS瀹忓拰CObject:: IsKindOf鎴愬憳鍑芥暟浠ュ湪榪愯鏃剁‘瀹氬璞$被銆傝嫢declare_dyncreate鍖呭惈鍦ㄥ畾涔変腑錛岄偅涔圛MPLEMENT_DYNCreate蹇呴』鍖?鍚湪綾誨伐鍏蜂腑銆?

14銆丏ECLARE_SERIAL銆両MPLEMENT_SERIAL
DECLARE_SERIAL(class_name)
璇存槑錛?
DECLARE_SERIAL涓轟竴涓彲浠ヤ覆琛屽寲鐨凜Object媧劇敓綾諱駭鐢熷繀瑕佺殑C++鏍囬浠g爜銆備覆琛屽寲鏄妸鏌愪釜瀵硅薄鐨勫唴瀹逛粠涓涓枃浠惰鍑哄拰鍐欏叆涓鏂囦歡銆?鍦?H鏂囦歡涓嬌鐢―ECLARE_SERIAL瀹忥紝鎺ョ潃鍦ㄩ渶瑕佽闂綾誨璞$殑鍏ㄩ儴.CPP鏂囦歡涓寘鍚鏂囦歡銆傚鏋淒ECLARE_SERIAL鍖呭惈鍦ㄧ被瀹?涔変腑錛岄偅涔圛MPLEMENT_SERIAL蹇呴』鍖呭惈鍦ㄧ被宸ュ叿涓侱ECLARE_SERIAL瀹忓寘鍚叏閮―ECLARE_DYNAMIC, IMPLEMENT_DYCreate鐨勫姛鑳姐?
IMPLEMENT_SERIAL(class_name,base_class_name,wSchema)
璇存槑錛?
閫氳繃榪愯鏃跺湪涓茶緇撴瀯涓姩鎬丆Object媧劇敓綾昏闂被鍚嶅拰浣嶇疆鏉ュ緩绔嬪繀瑕佺殑C++浠g爜銆傚湪.CPP鏂囦歡涓嬌鐢↖MPLEMENT_SERIAL瀹忥紝鐒跺悗涓嬈¢摼鎺ョ粨鏋滃璞′唬鐮併?

15銆丷UNTIME_CLASS
RUNTIME_CLASS(class_name)
璇存槑錛?
浣跨敤姝ゅ畯浠巆++綾誨悕涓幏鍙栬繍琛屾椂綾葷粨鏋勩俁UNTIME_CLASS涓虹敱class_name鎸囧畾鐨勭被榪斿洖涓涓寚閽堝埌CRuntimeClass緇撴瀯銆?鍙湁浠ECLARE_DYNAMIC銆丏ECLARE_DYNCreate鎴朌ECLARE_SERIAL瀹氫箟鐨凜Object媧劇敓綾繪墠榪斿洖鍒頒竴涓?CRuntimeClass緇撴瀯鐨勬寚閽堛?/font>



David Lee 2008-09-19 20:56 鍙戣〃璇勮
]]>
MFC搴旂敤紼嬪簭涓寚閽堢殑浣跨敤(杞笘)http://m.shnenglu.com/Lee/archive/2008/09/19/62236.htmlDavid LeeDavid LeeThu, 18 Sep 2008 17:13:00 GMThttp://m.shnenglu.com/Lee/archive/2008/09/19/62236.htmlhttp://m.shnenglu.com/Lee/comments/62236.htmlhttp://m.shnenglu.com/Lee/archive/2008/09/19/62236.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/62236.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/62236.html2) 鍦ˋpp涓幏寰桵ainFrame鎸囬拡
3) 鍦╒iew涓幏寰桵ainFrame鎸囬拡
4) 鑾峰緱View錛堝凡寤虹珛錛夋寚閽?br />5) 鑾峰緱褰撳墠鏂囨。鎸囬拡
6) 鑾峰緱鐘舵佹爮涓庡伐鍏鋒爮鎸囬拡
7) 鑾峰緱鐘舵佹爮涓庡伐鍏鋒爮鍙橀噺
8) 鍦∕ainframe鑾峰緱鑿滃崟鎸囬拡
9) 鍦ㄤ換浣曠被涓幏寰楀簲鐢ㄧ▼搴忕被
10) 浠庢枃妗g被鍙栧緱瑙嗗浘綾葷殑鎸囬拡(1)
11) 鍦ˋpp涓幏寰楁枃妗fā鏉挎寚閽?br />12) 浠庢枃妗fā鏉胯幏寰楁枃妗g被鎸囬拡
13) 鍦ㄦ枃妗g被涓幏寰楁枃妗fā鏉挎寚閽?br />14) 浠庢枃妗g被鍙栧緱瑙嗗浘綾葷殑鎸囬拡(2)
15) 浠庝竴涓鍥劇被鍙栧緱鍙︿竴瑙嗗浘綾葷殑鎸囬拡

VC涓紪紼嬪浜庡垰鍒氬紑濮嬪涔犵殑鍚屽錛屾渶澶х殑闅滅鍜岄棶棰樺氨鏄秷鎭満鍒跺拰鎸囬拡鑾峰彇涓?br />鎿嶄綔銆傚叾瀹炶繖浜涘唴瀹瑰熀鏈笂鏄瘡鏈琕C瀛︿範宸ュ叿涔︿笂蹇呰鐨勫唴瀹癸紝鑰屼笖閫氳繃MSDN寰堝
闂閮借兘瑙e喅銆備笅闈㈡枃瀛椾富瑕佹槸涓漢鍦ㄧ紪紼嬩腑鎸囬拡浣跨敤鐨勪竴浜涗綋浼氾紝璇寸殑涓嶅綋鐨勫湴
鏂硅鎸囨銆備竴鑸垜浠嬌鐢ㄧ殑妗嗘灦鏄疺C鎻愪緵鐨刉izard鐢熸垚鐨凪FC App Wizard(exe)妗嗘灦錛?br />鏃犺鏄鏂囨。榪樻槸鍗曟枃妗o紝閮藉瓨鍦ㄦ寚閽堣幏鍙栧拰鎿嶄綔闂銆備笅闈㈣繖鑺傚唴瀹逛富瑕佹槸涓鑸?br />鐨勬鏋訛紝鐒跺悗鍐嶈澶氱嚎紼嬩腑鐨勬寚閽堜嬌鐢ㄣ備嬌鐢ㄥ埌鐨勭被闇瑕佸寘鍚搷搴旂殑澶存枃浠躲傞鍏?br />涓鑸幏寰楁湰綾?瑙嗭紝鏂囨。錛屽璇濇閮芥敮鎸?瀹炰緥鎸囬拡this錛岀敤this鐨勭洰鐨勶紝涓昏鍙互閫?br />榪囩被涓殑鍑芥暟鍚戝叾浠栫被鎴栬呭嚱鏁頒腑鍙戞寚閽堬紝浠ヤ究浜庡湪闈炴湰綾諱腑鎿嶄綔鍜屼嬌鐢ㄦ湰綾諱腑鐨?br />鍔熻兘銆?br />
1錛?鍦╒iew涓幏寰桪oc鎸囬拡 CYouSDIDoc *pDoc=GetDocument();涓涓鍙兘鏈変竴涓枃
妗c?br /> 2) 鍦ˋpp涓幏寰桵ainFrame鎸囬拡
CWinApp 涓殑 m_pMainWnd鍙橀噺灝辨槸MainFrame鐨勬寚閽?br />涔熷彲浠ワ細 CMainFrame *pMain =(CMainFrame *)AfxGetMainWnd();
3) 鍦╒iew涓幏寰桵ainFrame鎸囬拡 CMainFrame *pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd;
4) 鑾峰緱View錛堝凡寤虹珛錛夋寚閽?CMainFrame *pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd;
CyouView *pView=(CyouView *)pMain->GetActiveView();
5) 鑾峰緱褰撳墠鏂囨。鎸囬拡 CDocument * pCurrentDoc =(CFrameWnd *)m_pMainWnd->GetActiveDocument();
6) 鑾峰緱鐘舵佹爮涓庡伐鍏鋒爮鎸囬拡 CStatusBar * pStatusBar錛?CStatusBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);
CToolBar * pToolBar=(CtoolBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR);

7) 濡傛灉妗嗘灦涓姞鍏ュ伐鍏鋒爮鍜岀姸鎬佹爮鍙橀噺榪樺彲浠ヨ繖鏍?
(CMainFrame *)GetParent()->m_wndToolBar;
(CMainFrame *)GetParent()->m_wndStatusBar;

8) 鍦∕ainframe鑾峰緱鑿滃崟鎸囬拡 CMenu *pMenu=m_pMainWnd->GetMenu();
9) 鍦ㄤ換浣曠被涓幏寰楀簲鐢ㄧ▼搴忕被
鐢∕FC鍏ㄥ眬鍑芥暟AfxGetApp()鑾峰緱銆?br />
10) 浠庢枃妗g被鍙栧緱瑙嗗浘綾葷殑鎸囬拡
鎴戞槸浠巋ttp://download.cqcnc.com/soft/program/article/vc/vc405.html瀛﹀埌鐨勶紝
浠庢枃妗h幏寰楄鍥劇被鎸囬拡鐩殑涓鑸負浜嗘帶鍒跺悓涓鏂囨。鐨勫涓鍥劇殑瀹氫綅闂錛屾垜鐨勪綋浼?br />鐗瑰埆鏄枃瀛楀鐞咰EditView褰撲駭鐢熷涓鍥劇被鏃訛紝榪欎釜鍔熻兘鏄潪甯擱渶瑕佺殑銆?
CDocument綾繪彁渚涗簡涓や釜鍑芥暟鐢ㄤ簬瑙嗗浘綾葷殑瀹氫綅錛?br />GetFirstViewPosition()鍜孏etNextView()
virtual POSITION GetFirstViewPosition() const;
virtual CView* GetNextView(POSITION& rPosition) const;

娉ㄦ剰錛欸etNextView()鎷彿涓殑鍙傛暟鐢ㄧ殑鏄紩鐢ㄦ柟寮忥紝鍥犳鎵ц鍚庡煎彲鑳芥敼鍙樸?br />GetFirstViewPosition()鐢ㄤ簬榪斿洖絎竴涓鍥句綅緗紙榪斿洖鐨勫茍闈炶鍥劇被鎸囬拡錛岃屾槸涓
涓狿OSITION綾誨瀷鍊鹼級錛孏etNextView()鏈変袱涓姛鑳斤細榪斿洖涓嬩竴涓鍥劇被鐨勬寚閽堜互鍙婄敤
寮曠敤璋冪敤鐨勬柟寮忔潵鏀瑰彉浼犲叆鐨凱OSITION綾誨瀷鍙傛暟鐨勫箋傚緢鏄庢樉錛屽湪Test紼嬪簭涓紝鍙湁
涓涓鍥劇被錛屽洜姝ゅ彧闇灝嗚繖涓や釜鍑芥暟璋冪敤涓嬈″嵆鍙緱鍒癈TestView鐨勬寚閽堝涓嬶紙闇瀹?br />涔変竴涓狿OSITION緇撴瀯鍙橀噺鏉ヨ緟鍔╂搷浣滐級錛?
CTestView* pTestView;
POSITION pos=GetFirstViewPosition();
pTestView=GetNextView(pos);

榪欐牱錛屼究鍙埌浜咰TestView綾葷殑鎸囬拡pTestView.鎵ц瀹屽嚑鍙ュ悗錛屽彉閲弍os=NULL,鍥犱負娌?br />鏈変笅涓涓鍥劇被錛岃嚜鐒朵篃娌℃湁涓嬩竴涓鍥劇被鐨凱OSITION.浣嗘槸榪欏嚑鏉¤鍙ュお綆鍗曪紝涓?br />鍏鋒湁澶己鐨勯氱敤鎬у拰瀹夊叏鐗瑰緛錛涘綋璞″墠闈㈣鐨勯偅鏍鳳紝褰撹鍦ㄥ涓鍥句負涓繑鍥炴煇涓寚
瀹氱被鐨勬寚閽堟椂錛屾垜浠渶瑕侀亶鍘嗘墍鏈夎鍥劇被錛岀洿鍒版壘鍒版寚瀹氱被涓烘銆傚垽鏂竴涓被鎸囬拡鎸?br />鍚戠殑鏄惁鏌愪釜綾葷殑瀹炰緥鏃訛紝鍙敤IsKindOf()鎴愬憳鍑芥暟鏃惰媯鏌ワ紝濡傦細
pView->IsKindOf(RUNTIME_CLASS(CTestView));
鍗沖彲媯鏌View鎵鎸囨槸鍚︽槸CTestView綾匯?br />
鏈変簡浠ヤ笂鍩虹錛屾垜浠凡緇忓彲浠ヤ粠鏂囨。綾誨彇寰椾換浣曠被鐨勬寚閽堛備負浜嗘柟渚匡紝鎴戜滑灝嗗叾浣?br />涓轟竴涓枃妗g被鐨勬垚鍛樺嚱鏁幫紝瀹冩湁涓涓弬鏁幫紝琛ㄧず瑕佽幏寰楀摢涓被鐨勬寚閽堛傚疄鐜板涓嬶細
CView* CTestDoc::GetView(CRuntimeClass* pClass)
{
CView* pView;
POSITION pos=GetFirstViewPosition();

while(pos!=NULL){
pView=GetNextView(pos);
if(!pView->IsKindOf(pClass))
break;
}

if(!pView->IsKindOf(pClass)){
AfxMessageBox("Connt Locate the View.\r\n http://www.VCKBASE.com");
return NULL;
}

return pView;
}

鍏朵腑鐢ㄤ簡涓ゆ瑙嗗浘綾葷殑鎴愬憳鍑芥暟IsKindOf()鏉ュ垽鏂紝鏄洜涓洪鍑簑hile寰幆鏈変笁縐?br />鍙兘錛?br />
1.pos涓篘ULL錛屽嵆宸茬粡涓嶅瓨鍦ㄤ笅涓涓鍥劇被渚涙搷浣滐紱
2.pView宸茬鍚堣姹傘?br />
1鍜?鍚屾槸婊¤凍銆傝繖鏄洜涓篏etNextView()鐨勫姛鑳芥槸灝嗗綋鍓嶈鍥炬寚閽堟敼鍙樻垚涓涓鍥?br />鐨勪綅緗悓鏃惰繑鍥炲綋鍓嶈鍥炬寚閽堬紝鍥犳pos鏄痯View鐨勪笅涓涓鍥劇被鐨凱OSITION,瀹屽叏
鏈夊彲鑳芥棦鏄痯os==NULL鍙堟槸pView絎﹀悎闇瑕併傚綋鎵闇鐨勮鍥炬槸鏈鍚庝竴涓鍥炬槸鏈鍚庝竴
涓鍥劇被鏃跺氨濡傚紩銆傚洜姝ら渶閲囩敤涓ゆ鍒ゆ柇銆?br />浣跨敤璇ュ嚱鏁板簲閬靛驚濡備笅鏍煎紡錛堜互鍙栧緱CTestView鎸囬拡涓轟緥錛夛細
CTestView* pTestView=(CTestView*)GetView(RUNTIME_CLASS(CTestView));
RUNTIME_CLASS鏄竴涓畯錛屽彲浠ョ畝鍗曞湴鐞嗚В瀹冪殑浣滅敤錛氬皢綾葷殑鍚嶅瓧杞寲涓?br />CRuntimeClass涓烘寚閽堛傝嚦浜庡己鍒剁被鍨嬭漿鎹篃鏄負浜嗗畨鍏ㄧ壒鎬ц冭檻鐨勶紝鍥犱負浠庡悓涓涓?br />鍩虹被涔嬮棿鐨勬寚閽堢被鍨嬫槸浜掔浉鍏煎鐨勩傝繖縐嶅己鍒剁被鍨嬭漿鎹篃璁稿茍涓嶅繀瑕侊紝浣嗚兘閬垮厤涓
浜涘彲鑳藉嚭鐜扮殑楹葷儲銆?br />
3.浠庝竴涓鍥劇被鍙栧緱鍙︿竴瑙嗗浘綾葷殑鎸囬拡 緇煎悎1鍜?錛屽緢瀹規槗寰楀嚭瑙嗗浘綾諱箣闂翠簰鐩歌幏寰?br />鎸囬拡鐨勬柟娉曪細灝辨槸鐢ㄦ枃妗g被浣滀腑杞紝鍏堢敤1鐨勬柟娉曞緱鍒版枃妗g被鐨勬寚閽堬紝鍐嶇敤2鐨勬柟娉曪紝
浠ユ枃妗g被鐨勮鍥懼畾浣嶅嚱鏁板彇寰楀彟涓涓鍥劇被銆傚悓鏍鳳紝鍙互瀹炵幇鎴愪竴涓嚱鏁幫細
錛堝亣璁捐浠嶤TestAView涓彇寰楁寚鍚戝叾瀹冭鍥劇被鐨勬寚閽堬級
CView* CTestAView::GetView(CRuntimeClass* pClass)
{
CTestDoc* pDoc=(CTestDoc*)GetDocument();
CView* pView;
POSITION pos=pDoc->GetFirstViewPosition();
while(pos!=NULL){
pView=pDoc->GetNextView(pos);
if(!pView->IsKindOf(pClass))
break;
}
if(!pView->IsKindOf(pClass)){
AfxMessageBox("Connt Locate the View.");
return NULL;
}

return pView;
}
榪欎釜鍑芥暟鍜?涓殑GetView()鐩告瘮錛屼竴鏄浜嗙涓鍙ヤ互鍙栧緱鏂囨。綾繪寚閽堬紝浜屾槸鍦?br />GetFirstViewPosition()鍜孏etNextView()鍓嶅姞涓婁簡鏂囨。綾繪寚閽堬紝浠ヨ〃紺哄畠浠槸鏂囨。
綾繪垚鍛樺嚱鏁般傛湁浜嗘鍑芥暟錛涘綋瑕佷粠CTestAView涓彇寰桟TestBView鐨勬寚閽堟椂錛屽彧闇濡?br />涓嬶細CTestBView* pTestbView=(CTestView*)GetView(RUNTIME_CLASS(CTestBView));

11錛夊浜庡崟鏂囨。涓篃鍙互鍔犲叆澶氫釜鏂囨。妯℃澘錛屼絾鏄竴鑸殑寮鍙戝氨浣跨敤MDI鏂瑰紡寮鍙?
澶氭枃妗fā鏉匡紝鍏舵柟娉曚笌涓婅堪瑙嗗浘鐨勮幏鍙栨柟娉曞緢鎺ヨ繎錛岃繖閲岀◢鍋氳В閲婏紝濡傛灉涓嶆竻妤氾紝
璇鋒煡闃匨SDN錛岋紙浠ヤ笅鍥涗釜鍐呭錛?1銆?2銆?3銆?4錛夋潵婧愶細
http://sanjianxia.myrice.com/vc/vc45.htm錛?

鍙互鐢–WinApp::GetFirstDocTemplatePostion鑾峰緱搴旂敤紼嬪簭娉ㄥ唽鐨勭涓涓枃妗fā鏉?
鐨勪綅緗紱鍒╃敤璇ュ兼潵璋冪敤CWinApp::GetNextDocTemplate鍑芥暟錛岃幏寰楃涓涓?
CDocTemplate瀵硅薄鎸囬拡銆?POSITION GetFirstDocTemplate( ) const; 
CDocTemplate *GetNextDocTemplate( POSITION & pos ) const;

絎簩涓嚱鏁拌繑鍥炵敱pos 鏍囪瘑鐨勬枃妗fā鏉褲侾OSITION鏄疢FC瀹氫箟鐨勪竴涓敤浜庤凱浠f垨瀵硅薄
鎸囬拡媯绱㈢殑鍊箋傞氳繃榪欎袱涓嚱鏁幫紝搴旂敤紼嬪簭鍙互閬嶅巻鏁翠釜鏂囨。妯℃澘鍒楄〃銆傚鏋滆媯绱?
鐨勬枃妗fā鏉挎槸妯℃澘鍒楄〃涓殑鏈鍚庝竴涓紝鍒檖os鍙傛暟琚疆涓篘ULL銆?

 12錛変竴涓枃妗fā鏉垮彲浠ユ湁澶氫釜鏂囨。錛屾瘡涓枃妗fā鏉塊兘淇濈暀騫剁淮鎶や簡涓涓墍鏈夊搴旀枃
妗g殑鎸囬拡鍒楄〃銆?
鐢–DocTemplate::GetFirstDocPosition鍑芥暟鑾峰緱涓庢枃妗fā鏉跨浉鍏崇殑鏂囨。闆嗗悎涓涓
涓枃妗g殑浣嶇疆錛屽茍鐢≒OSITION鍊間綔涓篊DocTemplate::GetNextDoc鐨勫弬鏁版潵閲嶅閬嶅巻涓?
妯℃澘鐩稿叧鐨勬枃妗e垪琛ㄣ傚嚱鏁板師褰負錛?
viaual POSITION GetFirstDocPosition( ) const = 0; 
visual CDocument *GetNextDoc(POSITION & rPos) const = 0;  

濡傛灉鍒楄〃涓虹┖錛屽垯rPos琚疆涓篘ULL. 

 13錛夊湪鏂囨。涓彲浠ヨ皟鐢–Document::GetDocTemplate鑾峰緱鎸囧悜璇ユ枃妗fā鏉跨殑鎸囬拡銆?
鍑芥暟鍘熷艦濡備笅錛?CDocTemplate * GetDocTemplate ( ) const; 
濡傛灉璇ユ枃妗d笉灞炰簬鏂囨。妯℃澘綆$悊錛屽垯榪斿洖鍊間負NULL銆?

 14)涓涓枃妗e彲浠ユ湁澶氫釜瑙嗐傛瘡涓涓枃妗i兘淇濈暀騫剁淮鎶や竴涓墍鏈夌浉鍏寵鐨勫垪琛ㄣ?
CDocument::AddView灝嗕竴涓榪炴帴鍒版枃妗d笂錛屽皢璇ヨ鍔犲叆鍒版枃妗g浉鑱旂郴鐨勮鐨勫垪琛?
涓紝騫跺皢瑙嗙殑鏂囨。鎸囬拡鎸囧悜璇ユ枃妗c傚綋鏈塅ile/New銆丗ile/Open銆乄indows/New鎴?
Window/Split鐨勫懡浠よ屽皢涓涓柊鍒涘緩鐨勮鐨勫璞¤繛鎺ュ埌鏂囨。涓婃椂錛?MFC浼氳嚜鍔ㄨ皟鐢?
璇ュ嚱鏁幫紝妗嗘灦閫氳繃鏂囨。/瑙嗙殑緇撴瀯灝嗘枃妗e拰瑙嗚仈緋昏搗鏉ャ傚綋鐒訛紝紼嬪簭鍛樹篃鍙互鏍規嵁鑷?
宸辯殑闇瑕佽皟鐢ㄨ鍑芥暟銆?
Virtual POSITION GetFirstViewPosition( ) const; 
Virtual CView * GetNextView( POSITION &rPosition) cosnt; 

搴旂敤紼嬪簭鍙互璋冪敤CDocument::GetFirstViewPosition榪斿洖涓庤皟鐢ㄦ枃妗g浉鑱旂郴鐨勮鐨?
鍒楄〃涓殑絎竴涓鐨勪綅緗紝騫惰皟鐢–Document::GetNextView榪斿洖鎸囧畾浣嶇疆鐨勮錛屽茍灝?
rPositon鐨勫肩疆涓哄垪琛ㄤ腑涓嬩竴涓鐨凱OSITION鍊箋傚鏋滄壘鍒扮殑瑙嗕負鍒楄〃涓殑鏈鍚庝竴涓?
瑙嗭紝鍒欏皢rPosition緗負NULL. 

 15)浠庝竴涓鍥劇被鍙栧緱鍙︿竴瑙嗗浘綾葷殑鎸囬拡
榪欎釜搴旂敤鍦ㄥ瑙嗙殑搴旂敤紼嬪簭涓緢澶氳錛屼竴鑸鏋滆嚜宸卞湪涓葷▼搴忔垨鑰呬富妗嗘灦涓仛濂藉彉
閲忚鍙鳳紝涔熷彲浠ヨ幏寰楋紝榪樻湁姣旇緝閫氱敤鐨勫氨鏄敤鏂囨。綾諱綔涓漿錛屼互鏂囨。綾葷殑瑙嗗浘閬嶅巻
瀹氫綅錛屽彇寰楀彟涓涓鍥劇被銆傝繖涓姛鑳戒粠鏈枃絎?0欏逛腑鍙互寰楀埌銆?
璁塊棶搴旂敤紼嬪簭鐨勫叾瀹冪被

鑾峰緱CWinApp:
	-鍦–MainFrame,CChildFrame,CDocument,CView涓洿鎺ヨ皟鐢ˋfxGetApp()鎴栫敤theApp
	-鍦ㄥ叾瀹冪被涓彧鑳界敤AfxGetApp()

鑾峰緱CMainFrame:
	-鍦–MinApp涓敤AfxGetMainWnd()鎴栬卪_pMainWnd
	-鍦–ChildFrame涓彲鐢℅etParentFrame()
	-鍦ㄥ叾瀹冪被涓敤AfxGetMainWnd()

鑾峰緱CChildFrame:
	-鍦–View涓敤GetParentFrame()
	-鍦–MainFrame涓敤MDIGetActive()鎴朑etActiveFrame()
	-鍦ㄥ叾瀹冪被涓敤AfxGetMainWnd()->MDIGetActive()鎴朅fxGetMainWnd()->GetActiveFrame()

鑾峰緱CDocument:
	-鍦–View涓敤GetDocument()
	-鍦–ChildFrame涓敤GetActiveView()->GetDocument()
	-鍦–MainFrame涓敤
		-if SDI:GetActiveView()->GetDocument()
		-if MDI:MDIGetActive()->GetActiveView()->GetDocument()
	-鍦ㄥ叾瀹冪被涓?
		-if SDI:AfxGetMainWnd()->GetActiveView()->GetDocument()
		-if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()

鑾峰緱CView:
	-鍦–Document涓?POSITION pos = GetFirstViewPosition();GetNextView(pos)
	-鍦–ChildFrame涓?GetActiveView()
	-鍦–MainFrame涓?
		-if SDI:GetActiveView()
		-if MDI:MDIGetActive()->GetActiveView()
	-鍦ㄥ叾瀹冪被涓?
		-if SDI:AfxGetMainWnd()->GetActiveView()
		-if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()
璁塊棶搴旂敤紼嬪簭鐨勫叾瀹冪被

鑾峰緱CWinApp:
	-鍦–MainFrame,CChildFrame,CDocument,CView涓洿鎺ヨ皟鐢ˋfxGetApp()鎴栫敤theApp
	-鍦ㄥ叾瀹冪被涓彧鑳界敤AfxGetApp()

鑾峰緱CMainFrame:
	-鍦–MinApp涓敤AfxGetMainWnd()鎴栬卪_pMainWnd
	-鍦–ChildFrame涓彲鐢℅etParentFrame()
	-鍦ㄥ叾瀹冪被涓敤AfxGetMainWnd()

鑾峰緱CChildFrame:
	-鍦–View涓敤GetParentFrame()
	-鍦–MainFrame涓敤MDIGetActive()鎴朑etActiveFrame()
	-鍦ㄥ叾瀹冪被涓敤AfxGetMainWnd()->MDIGetActive()鎴朅fxGetMainWnd()->GetActiveFrame()

鑾峰緱CDocument:
	-鍦–View涓敤GetDocument()
	-鍦–ChildFrame涓敤GetActiveView()->GetDocument()
	-鍦–MainFrame涓敤
		-if SDI:GetActiveView()->GetDocument()
		-if MDI:MDIGetActive()->GetActiveView()->GetDocument()
	-鍦ㄥ叾瀹冪被涓?
		-if SDI:AfxGetMainWnd()->GetActiveView()->GetDocument()
		-if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()

鑾峰緱CView:
	-鍦–Document涓?POSITION pos = GetFirstViewPosition();GetNextView(pos)
	-鍦–ChildFrame涓?GetActiveView()
	-鍦–MainFrame涓?
		-if SDI:GetActiveView()
		-if MDI:MDIGetActive()->GetActiveView()
	-鍦ㄥ叾瀹冪被涓?
		-if SDI:AfxGetMainWnd()->GetActiveView()
		-if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()



David Lee 2008-09-19 01:13 鍙戣〃璇勮
]]>
WTL鐨勫畨瑁呫佷嬌鐢╗杞琞http://m.shnenglu.com/Lee/archive/2008/09/18/62228.htmlDavid LeeDavid LeeThu, 18 Sep 2008 14:24:00 GMThttp://m.shnenglu.com/Lee/archive/2008/09/18/62228.htmlhttp://m.shnenglu.com/Lee/comments/62228.htmlhttp://m.shnenglu.com/Lee/archive/2008/09/18/62228.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/62228.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/62228.html
WTL鍏ㄧО涓篧indow Template Library,涓涓瀯鏋朵簬ATL涔嬩笂鐨凜++綾誨簱,瀹冨寘瑁呬簡澶у鏁扮殑紿楀彛鎺у埗.浠庣綉涓婄湅鐨?涔熷彧鏄釜澶ф鐨勪簡瑙?鍏堝畨瑁呬簡寮勪釜Hello World璇曡瘯鍚?鍛靛懙
1,瀹夎
聽聽 1.1 涓嬩釜WTL瀹夎鍖?鍏跺疄涓婁釜鍘嬬緝鍖?鐜板湪鏈鏂扮殑鏄?.0鐗?榛樿瑙e帇鐩綍涓篊:\WTL80,鍏朵腑80涓虹増鏈彿,濡傛灉涓嬬殑鏄?.5鍒欎負C:\WTL75
聽聽 1.2 鑷姩瀹夎
聽聽 鍦ㄧ洰褰旵:\WTL80\AppWiz鏈夊洓涓狫S鏂囦歡,閫夋嫨涓涓綘鏈哄瓙涓婂畨瑁呯殑VC鐗堟湰,鐐瑰嚮鐩稿簲鐨凧S鑴氭湰榪涜瀹夎鍗沖彲,濡俈S2005鐨刅C鐗堟湰涓?.0,鍒欑浉搴旀枃浠朵負setup80.js
聽聽 1.3 鎵嬪姩瀹夎
聽聽 鑷姩瀹夎鏈夋椂瀹夎涓嶆垚鍔?濡傜偣鍑繪枃浠跺悗鍗存墦寮浜嗕竴涓浜嬫湰,鍏跺疄鎵嬪姩瀹夎涔熸尯涓嶉敊鐨?
聽聽 灝咰:\WTL80\AppWiz\Files鐩綍涓嬬殑涓変釜WTLAppWiz.*鏂囦歡鑰冨埌VC瀹夎鐩綍鐨剉cprojects鐩綍涓?濡侲:\Program Files\Microsoft Visual Studio 8\VC\vcprojects, 鎵撳紑WTLAppWiz.vsz,鍘熸枃浠朵負:


聽聽 VSWIZARD 7.0
聽聽 Wizard=VsWizard.VsWizardEngine

聽聽 Param="WIZARD_NAME = WTLAppWiz"
聽聽 Param="WIZARD_VERSION = 7.0"
聽聽 Param="ABSOLUTE_PATH = ."
聽聽 Param="FALLBACK_LCID = 1033"
聽聽 灝嗗叾鏀逛負
聽聽 VSWIZARD 7.0
聽聽 Wizard=VsWizard.VsWizardEngine.8.0

聽聽 Param="WIZARD_NAME = WTLAppWiz"
聽聽 Param="WIZARD_VERSION = 7.0"
聽聽 Param="ABSOLUTE_PATH = C:\WTL80\AppWiz\Files"
聽聽 Param="FALLBACK_LCID = 1033"

聽聽 鍏朵腑Wizard鍚庨潰闇鍔犱笂WTL鐨勭増鏈彿,鍚﹀垯鑳藉湪VC閲岀湅鍒癢TL欏圭洰,浣嗗叾鍚戝鏃犳硶宸ヤ綔

聽聽 Param ="ABSOLUTE_PATH鍚庡姞涓奧TL瑙e帇鐨勮礬寰?/p>

聽聽 鏂板皢欏圭洰鏃墮夋嫨WTL欏圭洰,鎺ラ粯璁ら夐」鐢熸垚欏圭洰錛岀紪璇戞椂浼氭姤'atlapp.h': No such file or directory閿欒銆傞渶瑕佸姞涓涓紪璇戣礬寰勶紝宸ュ叿-->閫夐」-->欏圭洰鍜岃В鍐蟲柟妗?->VC鐩綍錛屽湪宸﹁竟閫夋嫨鍖呭惈鏂囦歡錛屾妸WTL瑙e帇鐩綍涓嬬殑C:\WTL80\include璺緞鍔犱笂

聽聽 濡傛灉緙栬瘧鏃舵姤浠ヤ笅涓や釜Bug錛?/p>

聽聽 閿欒 1 fatal error CVT1100: 閲嶅鐨勮祫婧愩倀ype:MANIFEST, name:1, language:0x0409 CVTRES
聽聽 閿欒 2 fatal error LNK1123: 杞崲鍒?COFF 鏈熼棿澶辮觸: 鏂囦歡鏃犳晥鎴栨崯鍧?sdf
聽聽聽 鍒欒鏄庤祫婧愭枃浠舵湁闂錛屽叿浣撶殑鍘熷洜鏈煡錛屼粠緗戜笂鎵炬垜璧勬枡鐪嬶紝鏈変互涓嬪洓縐嶈В鍐蟲柟娉曪細

聽聽 1錛屽伐紼嬪睘鎬?>閰嶇疆灞炴?> 娓呭崟宸ュ叿->杈撳叆鍜岃緭鍑?>宓屽叆娓呭崟錛岄夋嫨[鍚

聽聽聽 2錛屾墦寮rc鏂囦歡錛屾壘MANIFEST錛屾墍灞炴鎴栬鍏ㄥ幓鎺?/p>

聽聽 3錛屾墦寮姝ら」鐩睘鎬ч〉錛岄摼鎺ュ櫒-->宓屽叆鐨?IDL-->綾誨瀷搴撹祫婧?ID 璁句竴涓粠1-65535鐨勫?/p>

聽聽 4錛岄」鐩睘鎬ч〉閾炬帴鍣?->娓呭崟 鏂囦歡-->鐢熸垚娓呭崟鏂囦歡 閫夐」璁劇疆涓簄o



David Lee 2008-09-18 22:24 鍙戣〃璇勮
]]>C++ 鍛藉悕瑙勫垯 (杞?http://m.shnenglu.com/Lee/archive/2008/09/16/62003.htmlDavid LeeDavid LeeTue, 16 Sep 2008 12:40:00 GMThttp://m.shnenglu.com/Lee/archive/2008/09/16/62003.htmlhttp://m.shnenglu.com/Lee/comments/62003.htmlhttp://m.shnenglu.com/Lee/archive/2008/09/16/62003.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/62003.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/62003.html聽聽聽 鈥滃寛鐗欏埄鈥濇硶鏈澶х殑緙虹偣鏄儲鐞愶紝渚嬪

聽聽聽 int i, j, k;

聽聽聽 float x, y, z;

聽聽聽 鍊樿嫢閲囩敤鈥滃寛鐗欏埄鈥濆懡鍚嶈鍒欙紝鍒欏簲褰撳啓鎴?/p>

聽聽聽 int iI, iJ, ik; // 鍓嶇紑 i琛ㄧずint綾誨瀷

聽聽聽 float fX, fY, fZ; // 鍓嶇紑 f琛ㄧずfloat綾誨瀷

聽聽聽 濡傛鐑︾悙鐨勭▼搴忎細璁╃粷澶у鏁扮▼搴忓憳鏃犳硶蹇嶅彈銆?/p>

聽聽聽 鎹冨療錛屾病鏈変竴縐嶅懡鍚嶈鍒欏彲浠ヨ鎵鏈夌殑紼嬪簭鍛樿禐鍚岋紝紼嬪簭璁捐鏁欑涔︿竴鑸兘涓嶆寚瀹氬懡鍚嶈鍒欍傚懡鍚嶈鍒欏杞歡浜у搧鑰岃█騫朵笉鏄滄垚璐ユ偁鍏斥濈殑浜嬶紝鎴戜滑涓嶈鍖栧お澶氱簿鍔涜瘯鍥懼彂鏄庝笘鐣屼笂鏈濂界殑鍛藉悕瑙勫垯錛岃屽簲褰撳埗瀹氫竴縐嶄護澶у鏁伴」鐩垚鍛樻弧鎰忕殑鍛藉悕瑙勫垯錛屽茍鍦ㄩ」鐩腑璐交瀹炴柦銆?/p>

聽聽聽 3.1 鍏辨ц鍒?br />聽聽聽 鏈妭璁鴻堪鐨勫叡鎬ц鍒欐槸琚ぇ澶氭暟紼嬪簭鍛橀噰綰崇殑錛屾垜浠簲褰撳湪閬靛驚榪欎簺鍏辨ц鍒欑殑鍓嶆彁涓嬶紝鍐嶆墿鍏呯壒瀹氱殑瑙勫垯錛屽3.2鑺傘?/p>


聽聽聽 l 銆愯鍒?-1-1銆戞爣璇嗙搴斿綋鐩磋涓斿彲浠ユ嫾璇伙紝鍙湜鏂囩煡鎰忥紝涓嶅繀榪涜鈥滆В鐮佲濄?/p>

聽聽聽 鏍囪瘑絎︽渶濂介噰鐢ㄨ嫳鏂囧崟璇嶆垨鍏剁粍鍚堬紝渚夸簬璁板繂鍜岄槄璇匯傚垏蹇屼嬌鐢ㄦ眽璇嫾闊蟲潵鍛藉悕銆傜▼搴忎腑鐨勮嫳鏂囧崟璇嶄竴鑸笉浼氬お澶嶆潅錛岀敤璇嶅簲褰撳噯紜備緥濡備笉瑕佹妸CurrentValue鍐欐垚NowValue銆?/p>


聽聽聽 l 銆愯鍒?-1-2銆戞爣璇嗙鐨勯暱搴﹀簲褰撶鍚堚渕in-length && max-information鈥濆師鍒欍?/p>

聽聽聽 鍑犲崄騫村墠鑰丄NSI C瑙勫畾鍚嶅瓧涓嶅噯瓚呰繃6涓瓧絎︼紝鐜頒粖鐨?a class="channel_keylink" target="_blank">C++/C涓嶅啀鏈夋闄愬埗銆備竴鑸潵璇達紝闀垮悕瀛楄兘鏇村ソ鍦拌〃杈懼惈涔夛紝鎵浠ュ嚱鏁板悕銆佸彉閲忓悕銆佺被鍚嶉暱杈懼崄鍑犱釜瀛楃涓嶈凍涓烘傞偅涔堝悕瀛楁槸鍚﹁秺闀跨害濂斤紵涓嶈寰? 渚嬪鍙橀噺鍚峬axval灝辨瘮maxValueUntilOverflow濂界敤銆傚崟瀛楃鐨勫悕瀛椾篃鏄湁鐢ㄧ殑錛屽父瑙佺殑濡俰,j,k,m,n,x,y,z絳夛紝瀹冧滑閫氬父鍙敤浣滃嚱鏁板唴鐨勫眬閮ㄥ彉閲忋?/p>


聽聽聽 l 銆愯鍒?-1-3銆戝懡鍚嶈鍒欏敖閲忎笌鎵閲囩敤鐨勬搷浣滅郴緇熸垨寮鍙戝伐鍏風殑椋庢牸淇濇寔涓鑷淬?/p>

聽聽聽 渚嬪Windows搴旂敤紼嬪簭鐨勬爣璇嗙閫氬父閲囩敤鈥滃ぇ灝忓啓鈥濇販鎺掔殑鏂瑰紡錛屽AddChild銆傝孶nix搴旂敤紼嬪簭鐨勬爣璇嗙閫氬父閲囩敤鈥滃皬鍐欏姞涓嬪垝綰庫濈殑鏂瑰紡錛屽add_child銆傚埆鎶婅繖涓ょ被椋庢牸娣峰湪涓璧風敤銆?/p>


聽聽聽 l 銆愯鍒?-1-4銆戠▼搴忎腑涓嶈鍑虹幇浠呴潬澶у皬鍐欏尯鍒嗙殑鐩鎬技鐨勬爣璇嗙銆?/p>

聽聽聽 渚嬪錛?/p>

聽聽聽 int x, X; // 鍙橀噺x 涓?X 瀹規槗娣鋒穯

聽聽聽 void foo(int x); // 鍑芥暟foo 涓嶧OO瀹規槗娣鋒穯

聽聽聽 void FOO(float x);


聽聽聽 l 銆愯鍒?-1-5銆戠▼搴忎腑涓嶈鍑虹幇鏍囪瘑絎﹀畬鍏ㄧ浉鍚岀殑灞閮ㄥ彉閲忓拰鍏ㄥ眬鍙橀噺錛屽敖綆′袱鑰呯殑浣滅敤鍩熶笉鍚岃屼笉浼氬彂鐢熻娉曢敊璇紝浣嗕細浣夸漢璇В銆?br />
聽 l 銆愯鍒?-1-6銆戝彉閲忕殑鍚嶅瓧搴斿綋浣跨敤鈥滃悕璇嶁濇垨鑰呪滃艦瀹硅瘝錛嬪悕璇嶁濄?

聽聽聽 渚嬪錛?/p>

聽聽聽 float value;

聽聽聽 float oldValue;

聽聽聽 float newValue;


聽聽聽 l 銆愯鍒?-1-7銆戝叏灞鍑芥暟鐨勫悕瀛楀簲褰撲嬌鐢ㄢ滃姩璇嶁濇垨鑰呪滃姩璇嶏紜鍚嶈瘝鈥濓紙鍔ㄥ璇嶇粍錛夈傜被鐨勬垚鍛樺嚱鏁板簲褰撳彧浣跨敤鈥滃姩璇嶁濓紝琚渷鐣ユ帀鐨勫悕璇嶅氨鏄璞℃湰韜?/p>

聽聽聽 渚嬪錛?/p>

聽聽聽 DrawBox(); // 鍏ㄥ眬鍑芥暟

聽聽聽 box->Draw(); // 綾葷殑鎴愬憳鍑芥暟


聽聽聽 l 銆愯鍒?-1-8銆戠敤姝g‘鐨勫弽涔夎瘝緇勫懡鍚嶅叿鏈変簰鏂ユ剰涔夌殑鍙橀噺鎴栫浉鍙嶅姩浣滅殑鍑芥暟絳夈?/p>

聽聽聽 渚嬪錛?/p>

聽聽聽 int minValue;

聽聽聽 int maxValue;


聽聽聽 int SetValue(鈥?;

聽聽聽 int GetValue(鈥?;


聽聽聽 2 銆愬緩璁?-1-1銆戝敖閲忛伩鍏嶅悕瀛椾腑鍑虹幇鏁板瓧緙栧彿錛屽Value1,Value2絳夛紝闄ら潪閫昏緫涓婄殑紜渶瑕佺紪鍙楓傝繖鏄負浜嗛槻姝㈢▼搴忓憳鍋鋒噿錛屼笉鑲負鍛藉悕鍔ㄨ剳絳嬭屽鑷翠駭鐢熸棤鎰忎箟鐨勫悕瀛楋紙鍥犱負鐢ㄦ暟瀛楃紪鍙鋒渶鐪佷簨錛夈?/p>

聽聽聽 3.2 綆鍗曠殑Windows搴旂敤紼嬪簭鍛藉悕瑙勫垯
聽聽聽 浣滆呭鈥滃寛鐗欏埄鈥濆懡鍚嶈鍒欏仛浜嗗悎鐞嗙殑綆鍖栵紝涓嬭堪鐨勫懡鍚嶈鍒欑畝鍗曟槗鐢紝姣旇緝閫傚悎浜嶹indows搴旂敤杞歡鐨勫紑鍙戙?/p>


聽聽聽 l 銆愯鍒?-2-1銆戠被鍚嶅拰鍑芥暟鍚嶇敤澶у啓瀛楁瘝寮澶寸殑鍗曡瘝緇勫悎鑰屾垚銆?/p>

聽聽聽 渚嬪錛?/p>

聽聽聽 class Node; // 綾誨悕

聽聽聽 class LeafNode; // 綾誨悕

聽聽聽 void Draw(void); // 鍑芥暟



David Lee 2008-09-16 20:40 鍙戣〃璇勮
]]>
鎸囬拡錛?0錛夋寚閽堢殑瀹夊叏闂錛堣漿錛?/title><link>http://m.shnenglu.com/Lee/archive/2008/09/16/61927.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Mon, 15 Sep 2008 18:02:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2008/09/16/61927.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/61927.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2008/09/16/61927.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/61927.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/61927.html</trackback:ping><description><![CDATA[鐪嬩笅闈㈢殑渚嬪瓙錛?br />渚嬪崄鍏細<br />char s='a';<br />int *ptr;<br />ptr=(int *)&s;<br />*ptr=1298錛?br />鎸囬拡ptr 鏄竴涓猧nt *綾誨瀷鐨勬寚閽堬紝瀹冩寚鍚戠殑綾誨瀷鏄痠nt銆傚畠鎸囧悜<br />鐨勫湴鍧灝辨槸s 鐨勯鍦板潃銆傚湪32 浣嶇▼搴忎腑錛宻 鍗犱竴涓瓧鑺傦紝int 綾誨瀷鍗犲洓<br />涓瓧鑺傘傛渶鍚庝竴鏉¤鍙ヤ笉浣嗘敼鍙樹簡s 鎵鍗犵殑涓涓瓧鑺傦紝榪樻妸鍜宻 鐩鎬復鐨?br />楂樺湴鍧鏂瑰悜鐨勪笁涓瓧鑺備篃鏀瑰彉浜嗐傝繖涓変釜瀛楄妭鏄共浠涔堢殑錛熷彧鏈夌紪璇戠▼<br />搴忕煡閬擄紝鑰屽啓紼嬪簭鐨勪漢鏄笉澶彲鑳界煡閬撶殑銆備篃璁歌繖涓変釜瀛楄妭閲屽瓨鍌ㄤ簡闈?br />甯擱噸瑕佺殑鏁版嵁錛屼篃璁歌繖涓変釜瀛楄妭閲屾濂芥槸紼嬪簭鐨勪竴鏉′唬鐮侊紝鑰岀敱浜庝綘瀵?br />鎸囬拡鐨勯┈铏庡簲鐢紝榪欎笁涓瓧鑺傜殑鍊艱鏀瑰彉浜嗭紒榪欎細閫犳垚宕╂簝鎬х殑閿欒銆?br />璁╂垜浠啀鏉ョ湅涓渚嬶細<br />渚嬪崄涔濓細<br />char a;<br />int *ptr=&a;<br />ptr++;<br />*ptr=115;<br />璇ヤ緥瀛愬畬鍏ㄥ彲浠ラ氳繃緙栬瘧錛屽茍鑳芥墽琛屻備絾鏄湅鍒版病鏈夛紵絎? 鍙ュ鎸?br />閽坧tr 榪涜鑷姞1 榪愮畻鍚庯紝ptr 鎸囧悜浜嗗拰鏁村艦鍙橀噺a 鐩擱偦鐨勯珮鍦板潃鏂瑰悜<br />鐨勪竴鍧楀瓨鍌ㄥ尯銆傝繖鍧楀瓨鍌ㄥ尯閲屾槸浠涔堬紵鎴戜滑涓嶇煡閬撱傛湁鍙兘瀹冩槸涓涓潪<br />甯擱噸瑕佺殑鏁版嵁錛岀敋鑷沖彲鑳芥槸涓鏉′唬鐮併傝岀4 鍙ョ珶鐒跺線榪欑墖瀛樺偍鍖洪噷鍐?br />鍏ヤ竴涓暟鎹紒榪欐槸涓ラ噸鐨勯敊璇傛墍浠ュ湪浣跨敤鎸囬拡鏃訛紝紼嬪簭鍛樺績閲屽繀欏婚潪<br />甯告竻妤氾細鎴戠殑鎸囬拡絀剁珶鎸囧悜浜嗗摢閲屻傚湪鐢ㄦ寚閽堣闂暟緇勭殑鏃跺欙紝涔熻娉?br />鎰忎笉瑕佽秴鍑烘暟緇勭殑浣庣鍜岄珮绔晫闄愶紝鍚﹀垯涔熶細閫犳垚綾諱技鐨勯敊璇?br />鍦ㄦ寚閽堢殑寮哄埗綾誨瀷杞崲錛歱tr1=(TYPE *)ptr2 涓紝濡傛灉sizeof(ptr2<br />鐨勭被鍨?澶т簬sizeof(ptr1 鐨勭被鍨?錛岄偅涔堝湪浣跨敤鎸囬拡ptr1 鏉ヨ闂畃tr2<br />鎵鎸囧悜鐨勫瓨鍌ㄥ尯鏃舵槸瀹夊叏鐨勩傚鏋渟izeof(ptr2 鐨勭被鍨? 灝忎簬<br />sizeof(ptr1 鐨勭被鍨?錛岄偅涔堝湪浣跨敤鎸囬拡ptr1 鏉ヨ闂畃tr2 鎵鎸囧悜鐨勫瓨<br />鍌ㄥ尯鏃舵槸涓嶅畨鍏ㄧ殑銆傝嚦浜庝負浠涔堬紝璇昏呯粨鍚堜緥鍗佸叓鏉ユ兂涓鎯籌紝搴旇浼氭槑<br />鐧界殑銆?img src ="http://m.shnenglu.com/Lee/aggbug/61927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2008-09-16 02:02 <a href="http://m.shnenglu.com/Lee/archive/2008/09/16/61927.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎸囬拡錛?錛夋寚閽堢被鍨嬭漿鎹紙杞級http://m.shnenglu.com/Lee/archive/2008/09/15/61887.htmlDavid LeeDavid LeeMon, 15 Sep 2008 13:32:00 GMThttp://m.shnenglu.com/Lee/archive/2008/09/15/61887.htmlhttp://m.shnenglu.com/Lee/comments/61887.htmlhttp://m.shnenglu.com/Lee/archive/2008/09/15/61887.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/61887.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/61887.html閽堬紝璧嬪煎彿鐨勫彸杈規槸涓涓寚閽堣〃杈懼紡銆傚湪鎴戜滑鍓嶉潰鎵涓劇殑渚嬪瓙涓紝緇濆ぇ
澶氭暟鎯呭喌涓嬶紝鎸囬拡鐨勭被鍨嬪拰鎸囬拡琛ㄨ揪寮忕殑綾誨瀷鏄竴鏍風殑錛屾寚閽堟墍鎸囧悜鐨?br />綾誨瀷鍜屾寚閽堣〃杈懼紡鎵鎸囧悜鐨勭被鍨嬫槸涓鏍風殑銆?br />渚嬪崄浜旓細
float f=12.3;
float *fptr=&f;
int *p;
鍦ㄤ笂闈㈢殑渚嬪瓙涓紝鍋囧鎴戜滑鎯寵鎸囬拡p 鎸囧悜瀹炴暟f錛屽簲璇ユ庝箞鍔烇紵
鏄敤涓嬮潰鐨勮鍙ュ悧錛?br />p=&f;
涓嶅銆傚洜涓烘寚閽坧 鐨勭被鍨嬫槸int *錛屽畠鎸囧悜鐨勭被鍨嬫槸int銆傝〃杈懼紡
&f 鐨勭粨鏋滄槸涓涓寚閽堬紝鎸囬拡鐨勭被鍨嬫槸float *,瀹冩寚鍚戠殑綾誨瀷鏄痜loat銆?br />涓よ呬笉涓鑷達紝鐩存帴璧嬪肩殑鏂規硶鏄笉琛岀殑銆傝嚦灝戝湪鎴戠殑MSVC++6.0 涓婏紝瀵?br />鎸囬拡鐨勮祴鍊艱鍙ヨ姹傝祴鍊煎彿涓よ竟鐨勭被鍨嬩竴鑷達紝鎵鎸囧悜鐨勭被鍨嬩篃涓鑷達紝鍏?br />瀹冪殑緙栬瘧鍣ㄤ笂鎴戞病璇曡繃錛屽ぇ瀹跺彲浠ヨ瘯璇曘備負浜嗗疄鐜版垜浠殑鐩殑錛岄渶瑕佽繘
琛?寮哄埗綾誨瀷杞崲"錛?br />p=(int*)&f;
濡傛灉鏈変竴涓寚閽坧錛屾垜浠渶瑕佹妸瀹冪殑綾誨瀷鍜屾墍鎸囧悜鐨勭被鍨嬫敼涓?br />TYEP *TYPE錛?閭d箞璇硶鏍煎紡鏄細 (TYPE *)p錛?br />榪欐牱寮哄埗綾誨瀷杞崲鐨勭粨鏋滄槸涓涓柊鎸囬拡錛岃鏂版寚閽堢殑綾誨瀷鏄?br />TYPE *錛屽畠鎸囧悜鐨勭被鍨嬫槸TYPE錛屽畠鎸囧悜鐨勫湴鍧灝辨槸鍘熸寚閽堟寚鍚戠殑鍦板潃銆?br />鑰屽師鏉ョ殑鎸囬拡p 鐨勪竴鍒囧睘鎬ч兘娌℃湁琚慨鏀廣傦紙鍒囪錛?br />涓涓嚱鏁板鏋滀嬌鐢ㄤ簡鎸囬拡浣滀負褰㈠弬錛岄偅涔堝湪鍑芥暟璋冪敤璇彞鐨勫疄鍙傚拰
褰㈠弬鐨勭粨鍚堣繃紼嬩腑錛屽繀欏諱繚璇佺被鍨嬩竴鑷達紝鍚﹀垯闇瑕佸己鍒惰漿鎹?br />渚嬪崄鍏細
void fun(char*);
int a=125,b;
fun((char*)&a);
void fun(char*s)
{
charc;
c=*(s+3);*(s+3)=*(s+0);*(s+0)=c;
c=*(s+2);*(s+2)=*(s+1);*(s+1)=c;
}
娉ㄦ剰榪欐槸涓涓?2 浣嶇▼搴忥紝鏁卛nt 綾誨瀷鍗犱簡鍥涗釜瀛楄妭錛宑har 綾誨瀷鍗犱竴涓?br />瀛楄妭銆傚嚱鏁癴un 鐨勪綔鐢ㄦ槸鎶婁竴涓暣鏁扮殑鍥涗釜瀛楄妭鐨勯『搴忔潵涓鍊掋傛敞鎰?br />鍒頒簡鍚楋紵鍦ㄥ嚱鏁拌皟鐢ㄨ鍙ヤ腑錛屽疄鍙?amp;a 鐨勭粨鏋滄槸涓涓寚閽堬紝瀹冪殑綾誨瀷鏄?br />int *錛屽畠鎸囧悜鐨勭被鍨嬫槸int銆傚艦鍙傝繖涓寚閽堢殑綾誨瀷鏄痗har *錛屽畠鎸囧悜
鐨勭被鍨嬫槸char銆傝繖鏍鳳紝鍦ㄥ疄鍙傚拰褰㈠弬鐨勭粨鍚堣繃紼嬩腑錛屾垜浠繀欏昏繘琛屼竴
嬈′粠int *綾誨瀷鍒癱har *綾誨瀷鐨勮漿鎹€傜粨鍚堣繖涓緥瀛愶紝鎴戜滑鍙互榪欐牱鏉?br />鎯寵薄緙栬瘧鍣ㄨ繘琛岃漿鎹㈢殑榪囩▼錛氱紪璇戝櫒鍏堟瀯閫犱竴涓復鏃舵寚閽坈har *temp錛?br />鐒跺悗鎵цtemp=(char *)&a錛屾渶鍚庡啀鎶妕emp 鐨勫間紶閫掔粰s銆傛墍浠ユ渶鍚庣殑
緇撴灉鏄細s 鐨勭被鍨嬫槸char *,瀹冩寚鍚戠殑綾誨瀷鏄痗har錛屽畠鎸囧悜鐨勫湴鍧灝辨槸
a 鐨勯鍦板潃銆?br />鎴戜滑宸茬粡鐭ラ亾錛屾寚閽堢殑鍊煎氨鏄寚閽堟寚鍚戠殑鍦板潃錛屽湪32 浣嶇▼搴忎腑錛?br />鎸囬拡鐨勫煎叾瀹炴槸涓涓?2 浣嶆暣鏁般傞偅鍙笉鍙互鎶婁竴涓暣鏁板綋浣滄寚閽堢殑鍊?br />鐩存帴璧嬬粰鎸囬拡鍛紵灝辮薄涓嬮潰鐨勮鍙ワ細
unsigned int a;
TYPE *ptr; //TYPE 鏄痠nt錛宑har 鎴栫粨鏋勭被鍨嬬瓑絳夌被鍨嬨?br />a=20345686;
ptr=20345686; //鎴戜滑鐨勭洰鐨勬槸瑕佷嬌鎸囬拡ptr 鎸囧悜鍦板潃20345686
ptr=a; //鎴戜滑鐨勭洰鐨勬槸瑕佷嬌鎸囬拡ptr 鎸囧悜鍦板潃20345686
緙栬瘧涓涓嬪惂銆傜粨鏋滃彂鐜板悗闈袱鏉¤鍙ュ叏鏄敊鐨勩傞偅涔堟垜浠殑鐩殑灝變笉鑳?br />杈懼埌浜嗗悧錛熶笉錛岃繕鏈夊姙娉曪細
unsigned int a;
TYPE *ptr; //TYPE 鏄痠nt錛宑har 鎴栫粨鏋勭被鍨嬬瓑絳夌被鍨嬨?br />a=N //N 蹇呴』浠h〃涓涓悎娉曠殑鍦板潃錛?br />ptr=(TYPE*)a錛?//鍛靛懙錛岃繖灝卞彲浠ヤ簡銆?br />涓ユ牸璇存潵榪欓噷鐨?TYPE *)鍜屾寚閽堢被鍨嬭漿鎹腑鐨?TYPE *)榪樹笉涓鏍楓傝繖閲?br />鐨?TYPE*)鐨勬剰鎬濇槸鎶婃棤絎﹀彿鏁存暟a 鐨勫煎綋浣滀竴涓湴鍧鏉ョ湅寰呫備笂闈㈠己
璋冧簡a 鐨勫煎繀欏諱唬琛ㄤ竴涓悎娉曠殑鍦板潃錛屽惁鍒欑殑璇濓紝鍦ㄤ綘浣跨敤ptr 鐨勬椂鍊欙紝
灝變細鍑虹幇闈炴硶鎿嶄綔閿欒銆?br />鎯蟲兂鑳戒笉鑳藉弽榪囨潵錛屾妸鎸囬拡鎸囧悜鐨勫湴鍧鍗蟲寚閽堢殑鍊煎綋浣滀竴涓暣鏁板彇
鍑烘潵銆傚畬鍏ㄥ彲浠ャ備笅闈㈢殑渚嬪瓙婕旂ず浜嗘妸涓涓寚閽堢殑鍊煎綋浣滀竴涓暣鏁板彇鍑?br />鏉ワ紝鐒跺悗鍐嶆妸榪欎釜鏁存暟褰撲綔涓涓湴鍧璧嬬粰涓涓寚閽堬細
渚嬪崄涓冿細
int a=123,b;
int *ptr=&a;
char *str;
b=(int)ptr; //鎶婃寚閽坧tr 鐨勫煎綋浣滀竴涓暣鏁板彇鍑烘潵銆?br />str=(char*)b; //鎶婅繖涓暣鏁扮殑鍊煎綋浣滀竴涓湴鍧璧嬬粰鎸囬拡str銆?br />鐜板湪鎴戜滑宸茬粡鐭ラ亾浜嗭紝鍙互鎶婃寚閽堢殑鍊煎綋浣滀竴涓暣鏁板彇鍑烘潵錛屼篃鍙?br />浠ユ妸涓涓暣鏁板煎綋浣滃湴鍧璧嬬粰涓涓寚閽堛?img src ="http://m.shnenglu.com/Lee/aggbug/61887.html" width = "1" height = "1" />

David Lee 2008-09-15 21:32 鍙戣〃璇勮
]]>
鎸囬拡錛?錛?鎸囬拡鍜屽嚱鏁扮殑鍏崇郴錛堣漿錛?/title><link>http://m.shnenglu.com/Lee/archive/2008/09/11/61572.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Thu, 11 Sep 2008 04:02:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2008/09/11/61572.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/61572.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2008/09/11/61572.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/61572.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/61572.html</trackback:ping><description><![CDATA[鍙互鎶婁竴涓寚閽堝0鏄庢垚涓轟竴涓寚鍚戝嚱鏁扮殑鎸囬拡銆?br />int fun1(char *,int);<br />int (*pfun1)(char *,int);<br />pfun1=fun1;<br />int a=(*pfun1)("abcdefg",7); //閫氳繃鍑芥暟鎸囬拡璋冪敤鍑芥暟銆?br />鍙互鎶婃寚閽堜綔涓哄嚱鏁扮殑褰㈠弬銆傚湪鍑芥暟璋冪敤璇彞涓紝鍙互鐢ㄦ寚閽堣〃杈懼紡鏉?br />浣滀負瀹炲弬銆?br />渚嬪崄鍥涳細<br />int fun(char *);<br />inta;<br />char str[]="abcdefghijklmn";<br />a=fun(str);<br />int fun(char *s)<br />{<br />int num=0;<br />for(int i=0;;)<br />{<br />num+=*s;s++;<br />}<br />return num;<br />}<br /><br />榪欎釜渚嬪瓙涓殑鍑芥暟fun 緇熻涓涓瓧絎︿覆涓悇涓瓧絎︾殑ASCII 鐮佸間箣<br />鍜屻傚墠闈㈣浜嗭紝鏁扮粍鐨勫悕瀛椾篃鏄竴涓寚閽堛傚湪鍑芥暟璋冪敤涓紝褰撴妸str<br />浣滀負瀹炲弬浼犻掔粰褰㈠弬s 鍚庯紝瀹為檯鏄妸str 鐨勫間紶閫掔粰浜唖錛宻 鎵鎸囧悜鐨?br />鍦板潃灝卞拰str 鎵鎸囧悜鐨勫湴鍧涓鑷達紝浣嗘槸str 鍜宻 鍚勮嚜鍗犵敤鍚勮嚜鐨勫瓨鍌ㄧ┖<br />闂淬傚湪鍑芥暟浣撳唴瀵箂 榪涜鑷姞1 榪愮畻錛屽茍涓嶆剰鍛崇潃鍚屾椂瀵箂tr 榪涜浜嗚嚜<br />鍔? 榪愮畻銆?img src ="http://m.shnenglu.com/Lee/aggbug/61572.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2008-09-11 12:02 <a href="http://m.shnenglu.com/Lee/archive/2008/09/11/61572.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎸囬拡錛?錛?鎸囬拡鍜岀粨鏋勭被鍨嬬殑鍏崇郴錛堣漿錛?/title><link>http://m.shnenglu.com/Lee/archive/2008/09/11/61566.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Thu, 11 Sep 2008 02:33:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2008/09/11/61566.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/61566.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2008/09/11/61566.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/61566.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/61566.html</trackback:ping><description><![CDATA[鍙互澹版槑涓涓寚鍚戠粨鏋勭被鍨嬪璞$殑鎸囬拡銆?br />渚嬪崄浜岋細<br />struct MyStruct<br />{<br />int a;<br />int b;<br />int c;<br />};<br />struct MyStruct ss={20,30,40};<br />//澹版槑浜嗙粨鏋勫璞s錛屽茍鎶妔s 鐨勬垚鍛樺垵濮嬪寲涓?0錛?0 鍜?0銆?br />struct MyStruct *ptr=&ss;<br />//澹版槑浜嗕竴涓寚鍚戠粨鏋勫璞s 鐨勬寚閽堛傚畠鐨勭被鍨嬫槸<br />//MyStruct *,瀹冩寚鍚戠殑綾誨瀷鏄疢yStruct銆?br />int *pstr=(int*)&ss;<br />//澹版槑浜嗕竴涓寚鍚戠粨鏋勫璞s 鐨勬寚閽堛備絾鏄痯str 鍜?br />//瀹冭鎸囧悜鐨勭被鍨媝tr 鏄笉鍚岀殑銆?br />璇烽棶鎬庢牱閫氳繃鎸囬拡ptr 鏉ヨ闂畇s 鐨勪笁涓垚鍛樺彉閲忥紵<br />絳旀錛?br />ptr->a; //鎸囧悜榪愮畻絎︼紝鎴栬呭彲浠ヨ繖浠?*ptr).a,寤鴻浣跨敤鍓嶈?br />ptr->b;<br />ptr->c;<br />鍙堣闂庢牱閫氳繃鎸囬拡pstr 鏉ヨ闂畇s 鐨勪笁涓垚鍛樺彉閲忥紵<br />絳旀錛?br />*pstr錛?//璁塊棶浜唖s 鐨勬垚鍛榓銆?br />*(pstr+1); //璁塊棶浜唖s 鐨勬垚鍛榖銆?br />*(pstr+2) //璁塊棶浜唖s 鐨勬垚鍛榗銆?br />铏界劧鎴戝湪鎴戠殑MSVC++6.0 涓婅皟寮忚繃涓婅堪浠g爜錛屼絾鏄鐭ラ亾錛岃繖鏍蜂嬌<br />鐢╬str 鏉ヨ闂粨鏋勬垚鍛樻槸涓嶆瑙勭殑錛屼負浜嗚鏄庝負浠涔堜笉姝h錛岃鎴戜滑<br />鐪嬬湅鎬庢牱閫氳繃鎸囬拡鏉ヨ闂暟緇勭殑鍚勪釜鍗曞厓: (灝嗙粨鏋勪綋鎹㈡垚鏁扮粍)<br />渚嬪崄涓夛細<br />int array[3]={35,56,37};<br />int *pa=array;<br />閫氳繃鎸囬拡pa 璁塊棶鏁扮粍array 鐨勪笁涓崟鍏冪殑鏂規硶鏄細<br />*pa; //璁塊棶浜嗙0 鍙峰崟鍏?br />*(pa+1); //璁塊棶浜嗙1 鍙峰崟鍏?br />*(pa+2); //璁塊棶浜嗙2 鍙峰崟鍏?br />浠庢牸寮忎笂鐪嬪掓槸涓庨氳繃鎸囬拡璁塊棶緇撴瀯鎴愬憳鐨勪笉姝h鏂規硶鐨勬牸寮忎竴<br />鏍楓?br />鎵鏈夌殑C/C++緙栬瘧鍣ㄥ湪鎺掑垪鏁扮粍鐨勫崟鍏冩椂錛屾繪槸鎶婂悇涓暟緇勫崟鍏冨瓨<br />鏀懼湪榪炵畫鐨勫瓨鍌ㄥ尯閲岋紝鍗曞厓鍜屽崟鍏冧箣闂存病鏈夌┖闅欍備絾鍦ㄥ瓨鏀劇粨鏋勫璞$殑<br />鍚勪釜鎴愬憳鏃訛紝鍦ㄦ煇縐嶇紪璇戠幆澧冧笅錛屽彲鑳戒細闇瑕佸瓧瀵歸綈鎴栧弻瀛楀榻愭垨鑰呮槸<br />鍒殑浠涔堝榻愶紝闇瑕佸湪鐩擱偦涓や釜鎴愬憳涔嬮棿鍔犺嫢騫蹭釜"濉厖瀛楄妭"錛岃繖灝卞<br />鑷村悇涓垚鍛樹箣闂村彲鑳戒細鏈夎嫢騫蹭釜瀛楄妭鐨勭┖闅欍?br />鎵浠ワ紝鍦ㄤ緥鍗佷簩涓紝鍗充嬌*pstr 璁塊棶鍒頒簡緇撴瀯瀵硅薄ss 鐨勭涓涓垚<br />鍛樺彉閲廰錛屼篃涓嶈兘淇濊瘉*(pstr+1)灝變竴瀹氳兘璁塊棶鍒扮粨鏋勬垚鍛榖銆傚洜涓烘垚鍛?br />a 鍜屾垚鍛榖 涔嬮棿鍙兘浼氭湁鑻ュ共濉厖瀛楄妭錛岃涓嶅畾*(pstr+1)灝辨濂借闂?br />鍒頒簡榪欎簺濉厖瀛楄妭鍛€傝繖涔熻瘉鏄庝簡鎸囬拡鐨勭伒媧繪с傝鏄綘鐨勭洰鐨勫氨鏄兂<br />鐪嬬湅鍚勪釜緇撴瀯鎴愬憳涔嬮棿鍒板簳鏈夋病鏈夊~鍏呭瓧鑺傦紝鍢匡紝榪欏掓槸涓笉閿欑殑鏂規硶銆?br />涓嶈繃鎸囬拡璁塊棶緇撴瀯鎴愬憳鐨勬紜柟娉曞簲璇ユ槸璞′緥鍗佷簩涓嬌鐢ㄦ寚閽坧tr 鐨?br />鏂規硶銆?img src ="http://m.shnenglu.com/Lee/aggbug/61566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2008-09-11 10:33 <a href="http://m.shnenglu.com/Lee/archive/2008/09/11/61566.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>(杞?鎸囬拡(6) 鏁扮粍鍜屾寚閽堢殑鍏崇郴http://m.shnenglu.com/Lee/archive/2008/09/09/61433.htmlDavid LeeDavid LeeTue, 09 Sep 2008 15:48:00 GMThttp://m.shnenglu.com/Lee/archive/2008/09/09/61433.htmlhttp://m.shnenglu.com/Lee/comments/61433.htmlhttp://m.shnenglu.com/Lee/archive/2008/09/09/61433.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/61433.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/61433.html渚嬩節錛?br />intarray[10]={0,1,2,3,4,5,6,7,8,9},value;
value=array[0]; //涔熷彲鍐欐垚錛歷alue=*array;
value=array[3]; //涔熷彲鍐欐垚錛歷alue=*(array+3);
value=array[4]; //涔熷彲鍐欐垚錛歷alue=*(array+4);
涓婁緥涓紝涓鑸岃█鏁扮粍鍚峚rray 浠h〃鏁扮粍鏈韓錛岀被鍨嬫槸int[10]錛屼絾濡?br />鏋滄妸array 鐪嬪仛鎸囬拡鐨勮瘽錛屽畠鎸囧悜鏁扮粍鐨勭0 涓崟鍏冿紝綾誨瀷鏄痠nt* 錛?br />鎵鎸囧悜鐨勭被鍨嬫槸鏁扮粍鍗曞厓鐨勭被鍨嬪嵆int銆傚洜姝?array 絳変簬0 灝變竴鐐逛篃涓?br />濂囨簡銆傚悓鐞嗭紝array+3 鏄竴涓寚鍚戞暟緇勭3 涓崟鍏冪殑鎸囬拡錛屾墍浠?br />*(array+3)絳変簬3銆傚叾瀹冧緷姝ょ被鎺ㄣ?br />渚嬪崄錛?br />char *str[3]={
"Hello,thisisasample!",
"Hi,goodmorning.",
"Helloworld"
};
chars[80]錛?br />strcpy(s,str[0]); //涔熷彲鍐欐垚strcpy(s,*str);
strcpy(s,str[1]); //涔熷彲鍐欐垚strcpy(s,*(str+1));
strcpy(s,str[2]); //涔熷彲鍐欐垚strcpy(s,*(str+2));
涓婁緥涓紝str 鏄竴涓笁鍗曞厓鐨勬暟緇勶紝璇ユ暟緇勭殑姣忎釜鍗曞厓閮芥槸涓涓寚閽堬紝
榪欎簺鎸囬拡鍚勬寚鍚戜竴涓瓧絎︿覆銆傛妸鎸囬拡鏁扮粍鍚峴tr 褰撲綔涓涓寚閽堢殑璇濓紝瀹?br />鎸囧悜鏁扮粍鐨勭0 鍙峰崟鍏冿紝瀹冪殑綾誨瀷鏄痗har **錛屽畠鎸囧悜鐨勭被鍨嬫槸char *銆?br />*str 涔熸槸涓涓寚閽堬紝瀹冪殑綾誨瀷鏄痗har *錛屽畠鎵鎸囧悜鐨勭被鍨嬫槸char錛屽畠
鎸囧悜鐨勫湴鍧鏄瓧絎︿覆"Hello,thisisasample!"鐨勭涓涓瓧絎︾殑鍦板潃錛屽嵆
'H'鐨勫湴鍧銆傛敞鎰?瀛楃涓茬浉褰撲簬鏄竴涓暟緇?鍦ㄥ唴瀛樹腑浠ユ暟緇勭殑褰㈠紡鍌?br />瀛?鍙笉榪囧瓧絎︿覆鏄竴涓暟緇勫父閲?鍐呭涓嶅彲鏀瑰彉,涓斿彧鑳芥槸鍙沖?濡傛灉
鐪嬫垚鎸囬拡鐨勮瘽,浠栧嵆鏄父閲忔寚閽?涔熸槸鎸囬拡甯擱噺.
str+1 涔熸槸涓涓寚閽堬紝瀹冩寚鍚戞暟緇勭殑絎? 鍙峰崟鍏冿紝瀹冪殑綾誨瀷鏄痗har**錛?br />瀹冩寚鍚戠殑綾誨瀷鏄痗har*銆?br />*(str+1)涔熸槸涓涓寚閽堬紝瀹冪殑綾誨瀷鏄痗har*錛屽畠鎵鎸囧悜鐨勭被鍨嬫槸char錛?br />瀹冩寚鍚?Hi,goodmorning."鐨勭涓涓瓧絎?H'
涓嬮潰鎬葷粨涓涓嬫暟緇勭殑鏁扮粍鍚?鏁扮粍涓偍瀛樼殑涔熸槸鏁扮粍)鐨勯棶棰?
澹版槑浜嗕竴涓暟緇凾YPE array[n]錛屽垯鏁扮粍鍚嶇Оarray 灝辨湁浜嗕袱閲嶅惈涔夛細
絎竴錛屽畠浠h〃鏁翠釜鏁扮粍錛屽畠鐨勭被鍨嬫槸TYPE[n]錛涚浜岋紝瀹冩槸涓涓父閲?br />鎸囬拡錛岃鎸囬拡鐨勭被鍨嬫槸TYPE*錛岃鎸囬拡鎸囧悜鐨勭被鍨嬫槸TYPE錛屼篃灝辨槸鏁扮粍
鍗曞厓鐨勭被鍨嬶紝璇ユ寚閽堟寚鍚戠殑鍐呭瓨鍖哄氨鏄暟緇勭0 鍙峰崟鍏冿紝璇ユ寚閽堣嚜宸卞崰
鏈夊崟鐙殑鍐呭瓨鍖猴紝娉ㄦ剰瀹冨拰鏁扮粍絎? 鍙峰崟鍏冨崰鎹殑鍐呭瓨鍖烘槸涓嶅悓鐨勩傝
鎸囬拡鐨勫兼槸涓嶈兘淇敼鐨勶紝鍗崇被浼糰rray++鐨勮〃杈懼紡鏄敊璇殑銆?br />鍦ㄤ笉鍚岀殑琛ㄨ揪寮忎腑鏁扮粍鍚峚rray 鍙互鎵紨涓嶅悓鐨勮鑹層?br />鍦ㄨ〃杈懼紡sizeof(array)涓紝鏁扮粍鍚峚rray 浠h〃鏁扮粍鏈韓錛屾晠榪欐椂
sizeof 鍑芥暟嫻嬪嚭鐨勬槸鏁翠釜鏁扮粍鐨勫ぇ灝忋?br />鍦ㄨ〃杈懼紡*array 涓紝array 鎵紨鐨勬槸鎸囬拡錛屽洜姝よ繖涓〃杈懼紡鐨勭粨鏋滃氨鏄?br />鏁扮粍絎? 鍙峰崟鍏冪殑鍊箋俿izeof(*array)嫻嬪嚭鐨勬槸鏁扮粍鍗曞厓鐨勫ぇ灝忋?br />琛ㄨ揪寮廰rray+n錛堝叾涓璶=0錛?錛?錛?....錛変腑錛宎rray 鎵紨鐨勬槸鎸?br />閽堬紝鏁卆rray+n 鐨勭粨鏋滄槸涓涓寚閽堬紝瀹冪殑綾誨瀷鏄疶YPE *錛屽畠鎸囧悜鐨勭被
鍨嬫槸TYPE錛屽畠鎸囧悜鏁扮粍絎琻 鍙峰崟鍏冦傛晠sizeof(array+n)嫻嬪嚭鐨勬槸鎸囬拡
綾誨瀷鐨勫ぇ灝忋傚湪32 浣嶇▼搴忎腑緇撴灉鏄?
渚嬪崄涓:
int array[10];
int (*ptr)[10];
ptr=&array;錛?br />涓婁緥涓璸tr 鏄竴涓寚閽堬紝瀹冪殑綾誨瀷鏄痠nt(*)[10]錛屼粬鎸囧悜鐨勭被鍨嬫槸
int[10] 錛屾垜浠敤鏁翠釜鏁扮粍鐨勯鍦板潃鏉ュ垵濮嬪寲瀹冦傚湪璇彞ptr=&array
涓紝array 浠h〃鏁扮粍鏈韓銆?br />鏈妭涓彁鍒頒簡鍑芥暟sizeof()錛岄偅涔堟垜鏉ラ棶涓闂紝sizeof(鎸囬拡鍚嶇О)
嫻嬪嚭鐨勭┒绔熸槸鎸囬拡鑷韓綾誨瀷鐨勫ぇ灝忓憿榪樻槸鎸囬拡鎵鎸囧悜鐨勭被鍨嬬殑澶у皬錛?br />絳旀鏄墠鑰呫備緥濡傦細
int(*ptr)[10];
鍒欏湪32 浣嶇▼搴忎腑錛屾湁錛?br />sizeof(int(*)[10])==4
sizeof(int[10])==40
sizeof(ptr)==4
瀹為檯涓婏紝sizeof(瀵硅薄)嫻嬪嚭鐨勯兘鏄璞¤嚜韜殑綾誨瀷鐨勫ぇ灝忥紝鑰屼笉鏄埆鐨?br />浠涔堢被鍨嬬殑澶у皬銆?img src ="http://m.shnenglu.com/Lee/aggbug/61433.html" width = "1" height = "1" />

David Lee 2008-09-09 23:48 鍙戣〃璇勮
]]>
寮曠敤鐨勪綔鐢?錛堣漿錛?/title><link>http://m.shnenglu.com/Lee/archive/2008/09/06/61093.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Sat, 06 Sep 2008 01:51:00 GMT</pubDate><guid>http://m.shnenglu.com/Lee/archive/2008/09/06/61093.html</guid><wfw:comment>http://m.shnenglu.com/Lee/comments/61093.html</wfw:comment><comments>http://m.shnenglu.com/Lee/archive/2008/09/06/61093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Lee/comments/commentRss/61093.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Lee/services/trackbacks/61093.html</trackback:ping><description><![CDATA[ <div class="hvzpftn" id="BlogArticleDetail" style="FONT-SIZE: 14px">鍒嗘瀽浠ヤ笅紼嬪簭鐨勬墽琛岀粨鏋?<br />#include<iostream.h> <br />class Sample <br />{ <br />int x,y; <br />public: <br />Sample(){x=y=0;} <br />Sample(int i,int j){x=i;y=j;} <br />void copy(Sample &s); <br />void setxy(int i,int j){x=i;y=j;} <br />void print(){cout<<"x="<<x<<",y="<<y<<endl;} <br />}; <br />void Sample::copy(Sample &s) <br />{ <br />x=s.x;y=s.y; <br />} <br />void func(Sample s1,Sample &s2) <br />{ <br />s1.setxy(10,20); <br />s2.setxy(30,40); <br />} <br />void main() <br />{ <br />Sample p(1,2),q; <br />q.copy(p); <br />func(p,q); <br />p.print(); <br />q.print(); <br />} <br />瑙o細 <br />鏈璇存槑瀵硅薄寮曠敤浣滀負鍑芥暟鍙傛暟鐨勪綔鐢ㄣ係ample綾諱腑鐨刢opy()鎴愬憳鍑芥暟榪涜瀵硅薄鎷瘋礉銆傚湪main()涓厛寤虹珛瀵硅薄p鍜宷錛宲涓巕瀵硅薄鐨剎,y鍊肩浉鍚?璋冪敤func()鍑芥暟錛岀敱浜庣2涓弬鏁頒負寮曠敤綾誨瀷錛屾晠瀹炲弬鍙戠敓鏀瑰彉錛涜岀1涓弬鏁頒笉鏄紩鐢ㄧ被鍨嬶紝瀹炲弬涓嶅彂鐢熸敼鍙樸傛墍浠ヨ緭鍑轟負錛?<br />x=1,y=2 <br />x=30,y=40 <br /><br />===============================================================================================<br /><br />浼楁墍鍛ㄧ煡錛屽紩鐢ㄤ綔涓哄嚱鏁板弬鏁板彲浠ラ伩鍏嶅弬鏁板璞$殑棰濆鎷瘋礉錛屽浜庨潪鍐呯疆綾誨瀷錛屼竴鑸岃█鍙互鑾峰緱鏇撮珮鐨勬晥鐜囷紝鍚屾椂姣旀寚閽堟洿瀹夊叏錛岃涔変篃鏇存竻鏅般?br />聽聽 浣嗘槸闄ゆ涔嬪寮曠敤鏈変粈涔堢壒鍒殑浣滅敤鍛紵<br />聽聽 鍦ㄥ悓涓涓綔鐢ㄥ煙鐨勫紩鐢紝灝卞儚榪欐牱錛?br />聽聽 void f()<br />聽聽 {<br />聽聽 int i = 0;<br />聽聽 int &ri = i; //榪欓噷銆?br />聽聽 //...<br />聽聽 }<br />聽聽 <br />聽聽 浜嬪疄涓婏紝鍦╢鐨勫唴閮紝闇瑕佹搷浣渋鐨勫湴鏂癸紝瀹屽叏鍙互鐩存帴浣跨敤i錛岃屼笉蹇呰浣跨敤ri闂存帴鎿嶄綔錛屼嬌鐢╥鍦ㄨ涔変笂鏇存槑紜傝屾販鍚堜嬌鐢╥鍜宺i鍙嶅掑鏄撳紩璧烽昏緫鐨勬販涔便?br />聽聽 浼間箮榪欐槸涓涓浮鑲嬶紝浣嗘槸鍏跺疄涓嶆槸銆? <p>聽聽 榪欓噷寮曠敤涔懼潳涓絎戞枃绔犱腑鐨勪緥瀛愶細<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 渚嬩竴銆佺敤C瀹忥紝涔﹀啓浠g爜鏇寸畝媧?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 榪欐浠g爜鍐欑綉緇滅▼搴忕殑鏈嬪弸閮藉緢鐪肩啛錛屾槸Net/3涓璵buf鐨勫疄鐜般?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 struct mbuf<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 struct m_hdr mhdr;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 union {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 struct <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 struct pkthdr MH_pkthdr; /* M_PKTHDR set */<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 union <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 struct m_ext MH_ext; /* M_EXT set */<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 char MH_databuf[MHLEN];<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 } MH_dat;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 } MH;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 char M_databuf[MLEN];聽聽聽聽聽聽聽 /* !M_PKTHER, !M_EXT*/<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 } M_dat;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 };<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 涓婇潰鐨勪唬鐮侊紝鍋囧鎴戞兂璁塊棶鏈閲屽眰鐨凪H_databuf錛岄偅涔堟垜蹇呴』鍐橫_dat.MH.MH_dat.MH_databuf; 榪欐槸涓嶆槸寰堥暱錛屽緢闅懼啓鍛錛熻繖鏍風殑浠g爜闃呰璧鋒潵涔熶笉鏄庝簡銆傚叾瀹烇紝瀵逛簬MH_pkthdr銆丮H_ext銆丮H_databuf鏉ヨ錛岃櫧鐒朵笉鏄湪涓涓粨鏋勫眰嬈′笂錛屼絾鏄鏋滄垜浠珯鍦╩buf涔嬪鏉ョ湅錛屽畠浠兘鏄痬buf鐨勫睘鎬э紝瀹屽叏鍙互鍘嬫墎鍒頒竴涓鉤闈笂鍘葷湅銆傛墍浠ワ紝婧愮爜涓湁榪欎箞涓緇勫畯錛?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 #define m_next聽聽聽聽聽 m_hdr.mh_next<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 #define m_len聽聽聽聽聽聽 m_hdr.mh_len<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 #define m_data聽聽聽聽聽 m_hdr.mh_data<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ... ...<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 #define m_pkthdr聽聽聽 M_dat.MH.MH_pkthdr<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 #define m_pktdat聽聽聽 M_dat.MH.MH_dat.MH_databuf<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ... ...<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 榪欐牱鍐欒搗浠g爜鏉ワ紝鏄笉鏄緢綺劇粌鍛紒</p><p>聽聽聽 榪欓噷鐢ㄥ畯寰堝閥濡欑殑瑙e喅浜嗚闂繁灞傛暟鎹殑闂錛屼絾鏄畯鐨勫浐鏈夌己鐐逛篃琚紩鍏ヤ簡浠g爜涓紝鍚屾椂錛屽鏋滃叾浠栧湴鏂規棤鎰忎腑寮曠敤浜嗚繖涓畯瀹氫箟鐨勫ご鏂囦歡錛岃屼笖鎭板ソ浣跨敤浜嗗悕涓簃_pktdat鐨勬暟鎹垚鍛橈紝閭h繖涓畯甯︽潵鐨勫悗鏋滃彲灝變笉鏄垜浠兂瑕佺殑浜嗐?br />聽聽聽 浜嬪疄涓婄敤寮曠敤涔熷彲浠ヨ揪鍒扮被浼肩殑鏁堟灉錛屼笉榪囧繀欏繪槸鍦ㄤ嬌鐢ㄧ殑鏃跺欍傜敱浜庡紩鐢ㄤ笉鏄爣鍑咰鐨勭粍鎴愰儴鍒嗭紝鎵浠ヨ繖鍙槸涓涓狢++鎶宸с?br />聽聽聽 //鍋囧浠g爜鏄繖鏍風殑錛?br />聽聽聽 mbuf m; //榪欓噷鐨刴buf灝辨槸鍓嶉潰鐨剆truct mbuf銆?br />聽聽聽聽聽聽聽聽聽聽聽 //濡傛灉瑕佷嬌鐢∕H_ext鎴愬憳錛屽彲浠ヨ繖鏍鳳細<br />聽聽聽 m_ext &MH_ext = m.M_dat.MH.MH_dat.MH_ext;<br />聽聽聽 //鐒跺悗浣犵殑浠g爜涓氨鍙互鐩存帴浣跨敤MH_ext浣滀負m.M_dat.MH.MH_dat.MH_ext鐨勬浛浠e搧浜嗐?br />聽聽聽 涔熻鐪嬭搗鏉ヤ笉鏄緢鑷劧錛屼笉榪囪繖鏃犵枒鏄竴縐嶅緢鐩存帴鐨勬柟娉曘備綘榪樺彲浠ラ氳繃涓涓猚onst寮曠敤鏉ュ湪閫昏緫涓婇伩鍏嶆棤鎰忕殑鍐欐搷浣溿?br />聽聽聽 瀹為檯鐨勨滈潰鍚戝璞♀濈殑C++浠g爜涓紝涓嶆帹鑽愮洿鎺ユ暟鎹垚鍛樼殑璁塊棶錛屽彇鑰屼唬涔嬬殑鏄嬌鐢℅et()鍜孲et()鏂規硶瀛樺彇鏁版嵁錛屾湁浜涗漢鍙嬌鐢℅et錛岄氳繃榪斿洖涓涓垚鍛樼殑寮曠敤鏉ヨ揪鍒拌鍐欐暟鎹垚鍛樼殑鍙岄噸鐩殑錛岃繖鏃跺欙紝浣犲彲浠ュ湪澶栭儴瀹氫箟涓涓紩鐢ㄦ帴鍙楀嚱鏁扮殑榪斿洖錛屼粠鑰岄伩鍏嶆瘡嬈¢兘瑕佸啓(XXX.Get()).Get()榪欑鎷栨矒鐨勮鍙ユ潵璁塊棶涓涓繁灞傜殑鎴愬憳銆?br />聽聽聽 <br />聽聽聽 寮曠敤鐨勫彟涓涓綔鐢紝灝辨槸鈥滃埆鍚嶁濄傚埆鍚嶆槸寮曠敤鐨勫彟涓縐嶇炕璇戯紝寰堟槑紜殑琛ㄨ揪浜嗗紩鐢ㄧ殑鍙︿竴涓綔鐢ㄣ?br />聽聽聽 浠呬粎鏄負浜嗕唬鐮佺殑鍙鎬э細<br />聽聽聽 //涓嬮潰鐨勪唬鐮?br />聽聽聽 int i = 0,j = 0;<br />聽聽聽 //...<br />聽聽聽 for( i = 0; i < 10; i++)<br />聽聽聽聽聽聽聽 for( j = 0; j < 10; j++ )<br />聽聽聽聽聽聽聽聽聽聽聽 a[i][j] = 0;<br />聽聽聽 //浣犺兘鏄庣櫧榪欐浠g爜鐨勫惈涔夊槢錛熸湁鐐瑰洶闅撅紝i鍜宩鐨勫惈涔夋槸涓嶆槑紜殑錛屾棤娉曚竴鐪肩湅閫忋?br />聽聽聽 鍋囧鏀規垚榪欐牱錛?br />聽聽聽 const int width = 10;<br />聽聽聽 const int height = 10;<br />聽聽聽 //...<br />聽聽聽 int i = 0,j = 0;<br />聽聽聽 //...<br />聽聽聽 int &line = i;<br />聽聽聽 int &row = j;<br />聽聽聽 for(line = 0;line < height;line++)<br />聽聽聽聽聽聽聽 for(row = 0;row < width;row++)<br />聽聽聽聽聽聽聽聽聽聽聽 a[line][row] = 0;<br />聽聽聽 //鏄笉鏄ソ浜嗕竴鐐癸紵<br />聽聽聽 //榪欏茍涓嶆槸涓涓吀鍨嬬殑渚嬪瓙錛屽洜涓篿鍜宩鐨勫畾涔夋槸浠繪剰鐨勶紝鏌愪簺鎯呭喌浣犲繀欏諱嬌鐢ㄥ埆浜虹粰瀹氱殑鍚嶇О寰堥儊闂風殑鍙橀噺錛岃屼粬浠張蹇呴』鐢ㄦ潵琛ㄨ揪鎴劧涓嶅悓鐨勫惈涔夛紝榪欐椂鍊欎竴涓紩鐢ㄥ線寰鍙互璁╀綘娓呯埥寰堝銆?br />聽聽聽 <br />聽聽聽 鍐嶇湅涓嬮潰榪欎釜渚嬪瓙錛?br />聽聽聽 class CA<br />聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int m_i;<br />聽聽聽聽聽聽聽 public:<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int &i;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int const &c_i;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 CA():i(m_i),c_i(m_i){};<br />聽聽聽聽聽聽聽 };<br />聽聽聽 榪欐槸涓涓畝鍗曠殑綾伙紝涓庢墍璋撶殑鈥滈潰鍚戝璞♀濈殑鏂規硶涓嶅悓錛岃繖閲屼嬌鐢ㄥ紩鐢ㄥ疄鐜板唴閮ㄦ暟鎹殑鍏敤鎺ュ彛銆傝繖涓墜娉曠敤鏉ュ搴?涔懼潳涓絎?鐨勫彟涓孌佃瘽錛?br />聽聽聽聽聽聽聽聽 榪欏氨鏄伓璇寸殑PME妯″瀷鐨勯棶棰樹簡錛宒elphi銆乯ava銆乧#涔嬬被鐨勮璦閮芥彁渚涗竴縐嶅彨鍋氬睘鎬х殑璇硶錛屽ぇ姒傛槸榪欎釜鏍峰瓙鐨勶細</p><p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 class A<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 property int x<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 get {return x;}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 set {x = value;}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 };<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 A a;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 榪欐牱, 灝卞彲浠ヨ繖涔堣闂簡 a.x = 8; int b = a.x;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 榪欐瘮鐢?a.setx(8); b=a.getx()錛涚洿瑙傚浜嗐?/p><p>聽聽聽 浣犲彲浠ョ敤 CA a; a.i璁塊棶CA鐨勭鏈夋暟鎹垚鍛橈紝杈懼埌鍍忓睘鎬ф柟娉曢偅鏍風殑鏁堟灉銆備絾鏄繖涓柟娉曞湪VC6涓嬬殑琛ㄧ幇鍗翠笉灝藉浜烘剰錛屽洜涓哄畠瀛樺偍浜嗕竴涓寚閽堢敤鏉ュ彇浠h娉曚笂鐨勫紩鐢紝榪欏鑷寸被浣撶Н涓嶅繀瑕佺殑鎵╁紶錛屾槸鎴戜滑鎵涓嶅笇鏈涚湅鍒扮殑銆備篃璁稿湪瀹炵幇涓婄‘瀹炲瓨鍦ㄩ毦搴︼紝涓嶈繃榪樻槸甯屾湜鏈夋洿濂界殑緙栬瘧鍣ㄨ兘瀹炵幇鐪熸鎰忎箟鐨勫紩鐢ㄦ帴鍙c?br />聽聽聽 榪欎釜渚嬪瓙鍏跺疄鏄笂闈㈡繁灞傛暟鎹垚鍛樿闂殑涓涓紩鐢熾?br />聽聽聽 寮曠敤錛屼綔涓篊++鐨勪竴涓壒孌婃墜娉曪紝涔熻榪樻湁寰堝涓嶄負浜虹煡鐨勪綔鐢ㄧ瓑寰呮垜浠幓鍙戞帢鍛綖<br />聽聽聽 <br />聽聽聽 娉細鏂囦腑鐨勪唬鐮佸茍鏈粡榪囦弗鏍兼祴璇曪紝鏈夊叴瓚g殑璇昏呭彲浠ヨ嚜宸辨祴璇曚唬鐮佺殑鏈夋晥鎬с?br />聽聽聽 鏈枃寮曠敤鐨劼?涔懼潳涓絎?鐨勫唴瀹瑰潎鍑鴻嚜錛?br />聽聽聽 <a >http://blog.vckbase.com/smileonce/archive/2005/03/27/4081.html</a></p></div> <img src ="http://m.shnenglu.com/Lee/aggbug/61093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Lee/" target="_blank">David Lee</a> 2008-09-06 09:51 <a href="http://m.shnenglu.com/Lee/archive/2008/09/06/61093.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++ 榪愮畻絎︿紭鍏堢駭鍒楄〃 http://m.shnenglu.com/Lee/archive/2008/09/04/60962.htmlDavid LeeDavid LeeThu, 04 Sep 2008 14:15:00 GMThttp://m.shnenglu.com/Lee/archive/2008/09/04/60962.htmlhttp://m.shnenglu.com/Lee/comments/60962.htmlhttp://m.shnenglu.com/Lee/archive/2008/09/04/60962.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/60962.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/60962.html Precedence Operator Description Example Associativity 1 ()
[]
->
.
::
++
-- Grouping operator
Array access
Member access from a pointer
Member access from an object
Scoping operator
Post-increment
Post-decrement (a + b) / 4;
array[4] = 2;
ptr->age = 34;
obj.age = 34;
Class::age = 2;
for( i = 0; i < 10; i++ ) ...
for( i = 10; i > 0; i-- ) ... left to right 2 !
~
++
--
-
+
*
&
(type)
sizeof Logical negation
Bitwise complement
Pre-increment
Pre-decrement
Unary minus
Unary plus
Dereference
Address of
Cast to a given type
Return size in bytes if( !done ) ...
flags = ~flags;
for( i = 0; i < 10; ++i ) ...
for( i = 10; i > 0; --i ) ...
int i = -1;
int i = +1;
data = *ptr;
address = &obj;
int i = (int) floatNum;
int size = sizeof(floatNum); right to left 3 ->*
.* Member pointer selector
Member pointer selector ptr->*var = 24;
obj.*var = 24; left to right 4 *
/
% Multiplication
Division
Modulus int i = 2 * 4;
float f = 10 / 3;
int rem = 4 % 3; left to right 5 +
- Addition
Subtraction int i = 2 + 3;
int i = 5 - 1; left to right 6 <<
>> Bitwise shift left
Bitwise shift right int flags = 33 << 1;
int flags = 33 >> 1; left to right 7 <
<=
>
>= Comparison less-than
Comparison less-than-or-equal-to
Comparison greater-than
Comparison geater-than-or-equal-to if( i < 42 ) ...
if( i <= 42 ) ...
if( i > 42 ) ...
if( i >= 42 ) ... left to right 8 ==
!= Comparison equal-to
Comparison not-equal-to if( i == 42 ) ...
if( i != 42 ) ... left to right 9 & Bitwise AND flags = flags & 42; left to right 10 ^ Bitwise exclusive OR flags = flags ^ 42; left to right 11 | Bitwise inclusive (normal) OR flags = flags | 42; left to right 12 && Logical AND if( conditionA && conditionB ) ... left to right 13 || Logical OR if( conditionA || conditionB ) ... left to right 14 ? : Ternary conditional (if-then-else) int i = (a > b) ? a : b; right to left 15 =
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>= Assignment operator
Increment and assign
Decrement and assign
Multiply and assign
Divide and assign
Modulo and assign
Bitwise AND and assign
Bitwise exclusive OR and assign
Bitwise inclusive (normal) OR and assign
Bitwise shift left and assign
Bitwise shift right and assign int a = b;
a += 3;
b -= 4;
a *= 5;
a /= 2;
a %= 3;
flags &= new_flags;
flags ^= new_flags;
flags |= new_flags;
flags <<= 2;
flags >>= 2; right to left 16 , Sequential evaluation operator for( i = 0, j = 0; i < 10; i++, j++ ) ... left to right http://www.cppreference.com/operator_precedence.html

David Lee 2008-09-04 22:15 鍙戣〃璇勮
]]>
(杞?鎸囬拡錛?錛夋寚閽堣〃杈懼紡http://m.shnenglu.com/Lee/archive/2008/09/04/60895.htmlDavid LeeDavid LeeThu, 04 Sep 2008 05:03:00 GMThttp://m.shnenglu.com/Lee/archive/2008/09/04/60895.htmlhttp://m.shnenglu.com/Lee/comments/60895.htmlhttp://m.shnenglu.com/Lee/archive/2008/09/04/60895.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/60895.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/60895.html涓涓〃杈懼紡鐨勭粨鏋滃鏋滄槸涓涓寚閽堬紝閭d箞榪欎釜琛ㄨ揪寮忓氨鍙寚閽堣〃寮忋?br />涓嬮潰鏄竴浜涙寚閽堣〃杈懼紡鐨勪緥瀛愶細
渚嬩竷錛?br />int a,b;
int array[10];
int *pa;
pa=&a; //&a 鏄竴涓寚閽堣〃杈懼紡銆?br />Int **ptr=&pa; //&pa 涔熸槸涓涓寚閽堣〃杈懼紡銆?br />*ptr=&b; //*ptr 鍜?amp;b 閮芥槸鎸囬拡琛ㄨ揪寮忋?br />pa=array;
pa++; //榪欎篃鏄寚閽堣〃杈懼紡銆?br />渚嬪叓錛?br />char *arr[20];
char **parr=arr; //濡傛灉鎶奱rr 鐪嬩綔鎸囬拡鐨勮瘽錛宎rr 涔熸槸鎸囬拡琛ㄨ揪寮?br />char *str;
str=*parr; //*parr 鏄寚閽堣〃杈懼紡
str=*(parr+1); //*(parr+1)鏄寚閽堣〃杈懼紡
str=*(parr+2); //*(parr+2)鏄寚閽堣〃杈懼紡
鐢變簬鎸囬拡琛ㄨ揪寮忕殑緇撴灉鏄竴涓寚閽堬紝鎵浠ユ寚閽堣〃杈懼紡涔熷叿鏈夋寚閽堟墍
鍏鋒湁鐨勫洓涓绱狅細鎸囬拡鐨勭被鍨嬶紝鎸囬拡鎵鎸囧悜鐨勭被鍨嬶紝鎸囬拡鎸囧悜鐨勫唴瀛樺尯錛?br />鎸囬拡鑷韓鍗犳嵁鐨勫唴瀛樸?br />濂戒簡錛屽綋涓涓寚閽堣〃杈懼紡鐨勭粨鏋滄寚閽堝凡緇忔槑紜湴鍏鋒湁浜嗘寚閽堣嚜韜崰
鎹殑鍐呭瓨鐨勮瘽錛岃繖涓寚閽堣〃杈懼紡灝辨槸涓涓乏鍊鹼紝鍚﹀垯灝變笉鏄竴涓乏鍊箋?br />鍦ㄤ緥涓冧腑錛?amp;a 涓嶆槸涓涓乏鍊鹼紝鍥犱負瀹冭繕娌℃湁鍗犳嵁鏄庣‘鐨勫唴瀛樸?ptr 鏄?br />涓涓乏鍊鹼紝鍥犱負*ptr 榪欎釜鎸囬拡宸茬粡鍗犳嵁浜嗗唴瀛橈紝鍏跺疄*ptr 灝辨槸鎸囬拡pa錛?br />鏃㈢劧pa 宸茬粡鍦ㄥ唴瀛樹腑鏈変簡鑷繁鐨勪綅緗紝閭d箞*ptr 褰撶劧涔熸湁浜嗚嚜宸辯殑浣?br />緗?img src ="http://m.shnenglu.com/Lee/aggbug/60895.html" width = "1" height = "1" />

David Lee 2008-09-04 13:03 鍙戣〃璇勮
]]>
錛堣漿錛? 鎸囬拡錛?錛?榪愮畻絎?amp;鍜?http://m.shnenglu.com/Lee/archive/2008/08/31/60547.htmlDavid LeeDavid LeeSun, 31 Aug 2008 14:42:00 GMThttp://m.shnenglu.com/Lee/archive/2008/08/31/60547.htmlhttp://m.shnenglu.com/Lee/comments/60547.htmlhttp://m.shnenglu.com/Lee/archive/2008/08/31/60547.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/60547.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/60547.html&a 鐨勮繍綆楃粨鏋滄槸涓涓寚閽堬紝鎸囬拡鐨勭被鍨嬫槸a 鐨勭被鍨嬪姞涓?錛屾寚閽堟墍
鎸囧悜鐨勭被鍨嬫槸a 鐨勭被鍨嬶紝鎸囬拡鎵鎸囧悜鐨勫湴鍧鍢涳紝閭e氨鏄痑 鐨勫湴鍧銆?br />*p 鐨勮繍綆楃粨鏋滃氨浜旇姳鍏棬浜嗐傛諱箣*p 鐨勭粨鏋滄槸p 鎵鎸囧悜鐨勪笢瑗匡紝
榪欎釜涓滆タ鏈夎繖浜涚壒鐐癸細瀹冪殑綾誨瀷鏄痯 鎸囧悜鐨勭被鍨嬶紝瀹冩墍鍗犵敤鐨勫湴鍧鏄痯
鎵鎸囧悜鐨勫湴鍧銆?br />渚嬪叚錛?br />int a=12; int b; int *p; int **ptr;
p=&a; //&a 鐨勭粨鏋滄槸涓涓寚閽堬紝綾誨瀷鏄痠nt*錛屾寚鍚戠殑綾誨瀷鏄?br />//int錛屾寚鍚戠殑鍦板潃鏄痑 鐨勫湴鍧銆?br />*p=24; //*p 鐨勭粨鏋滐紝鍦ㄨ繖閲屽畠鐨勭被鍨嬫槸int錛屽畠鎵鍗犵敤鐨勫湴鍧鏄?br />//p 鎵鎸囧悜鐨勫湴鍧錛屾樉鐒訛紝*p 灝辨槸鍙橀噺a銆?br />ptr=&p; //&p 鐨勭粨鏋滄槸涓寚閽堬紝璇ユ寚閽堢殑綾誨瀷鏄痯 鐨勭被鍨嬪姞涓?錛?br />//鍦ㄨ繖閲屾槸int **銆傝鎸囬拡鎵鎸囧悜鐨勭被鍨嬫槸p 鐨勭被鍨嬶紝榪?br />//閲屾槸int*銆傝鎸囬拡鎵鎸囧悜鐨勫湴鍧灝辨槸鎸囬拡p 鑷繁鐨勫湴鍧銆?br />*ptr=&b; //*ptr 鏄釜鎸囬拡錛?amp;b 鐨勭粨鏋滀篃鏄釜鎸囬拡錛屼笖榪欎袱涓寚閽?br />//鐨勭被鍨嬪拰鎵鎸囧悜鐨勭被鍨嬫槸涓鏍風殑錛屾墍浠ョ敤&b 鏉ョ粰*ptr 璧?br />//鍊煎氨鏄鏃犻棶棰樼殑浜嗐?br />**ptr=34; //*ptr 鐨勭粨鏋滄槸ptr 鎵鎸囧悜鐨勪笢瑗匡紝鍦ㄨ繖閲屾槸涓涓寚閽堬紝
//瀵硅繖涓寚閽堝啀鍋氫竴嬈?榪愮畻錛岀粨鏋滄槸涓涓猧nt 綾誨瀷鐨勫彉閲忋?img src ="http://m.shnenglu.com/Lee/aggbug/60547.html" width = "1" height = "1" />

David Lee 2008-08-31 22:42 鍙戣〃璇勮
]]>
錛堣漿錛?鎸囬拡錛?錛夋寚閽堢殑綆楁湳榪愮畻http://m.shnenglu.com/Lee/archive/2008/08/31/60544.htmlDavid LeeDavid LeeSun, 31 Aug 2008 14:19:00 GMThttp://m.shnenglu.com/Lee/archive/2008/08/31/60544.htmlhttp://m.shnenglu.com/Lee/comments/60544.htmlhttp://m.shnenglu.com/Lee/archive/2008/08/31/60544.html#Feedback0http://m.shnenglu.com/Lee/comments/commentRss/60544.htmlhttp://m.shnenglu.com/Lee/services/trackbacks/60544.html榪愮畻鐨勬剰涔夋槸涓嶄竴鏍風殑錛屼互鍗曞厓涓哄崟浣嶃備緥濡傦細
渚嬩簩錛?br />char a[20];
int *ptr=(int *)a; //寮哄埗綾誨瀷杞崲騫朵笉浼氭敼鍙榓 鐨勭被鍨?br />ptr++;
鍦ㄤ笂渚嬩腑錛屾寚閽坧tr 鐨勭被鍨嬫槸int*,瀹冩寚鍚戠殑綾誨瀷鏄痠nt錛屽畠琚垵濮嬪寲
涓烘寚鍚戞暣鍨嬪彉閲廰銆傛帴涓嬫潵鐨勭3 鍙ヤ腑錛屾寚閽坧tr 琚姞浜?錛岀紪璇戝櫒鏄繖鏍?br />澶勭悊鐨勶細瀹冩妸鎸囬拡ptr 鐨勫煎姞涓婁簡sizeof(int)錛屽湪32 浣嶇▼搴忎腑錛屾槸琚姞涓?br />浜?錛屽洜涓哄湪32 浣嶇▼搴忎腑錛宨nt 鍗? 涓瓧鑺傘傜敱浜庡湴鍧鏄敤瀛楄妭鍋氬崟浣嶇殑錛?br />鏁卲tr 鎵鎸囧悜鐨勫湴鍧鐢卞師鏉ョ殑鍙橀噺a 鐨勫湴鍧鍚戦珮鍦板潃鏂瑰悜澧炲姞浜? 涓瓧鑺傘?br />鐢變簬char 綾誨瀷鐨勯暱搴︽槸涓涓瓧鑺傦紝鎵浠ワ紝鍘熸潵ptr 鏄寚鍚戞暟緇刟 鐨勭0 鍙?br />鍗曞厓寮濮嬬殑鍥涗釜瀛楄妭錛屾鏃舵寚鍚戜簡鏁扮粍a 涓粠絎? 鍙峰崟鍏冨紑濮嬬殑鍥涗釜瀛楄妭銆?br />鎴戜滑鍙互鐢ㄤ竴涓寚閽堝拰涓涓驚鐜潵閬嶅巻涓涓暟緇勶紝鐪嬩緥瀛愶細
渚嬩笁錛?br />int array[20]={0};
int *ptr=array;
for(i=0;i<20;i++)
{
(*ptr)++;
ptr++錛?br />}
榪欎釜渚嬪瓙灝嗘暣鍨嬫暟緇勪腑鍚勪釜鍗曞厓鐨勫煎姞1銆傜敱浜庢瘡嬈″驚鐜兘灝嗘寚閽坧tr
鍔? 涓崟鍏冿紝鎵浠ユ瘡嬈″驚鐜兘鑳借闂暟緇勭殑涓嬩竴涓崟鍏冦?br />鍐嶇湅渚嬪瓙錛?br />渚嬪洓錛?br />char a[20]="You_are_a_girl";
int *ptr=(int *)a;
ptr+=5;
鍦ㄨ繖涓緥瀛愪腑錛宲tr 琚姞涓婁簡5錛岀紪璇戝櫒鏄繖鏍峰鐞嗙殑錛氬皢鎸囬拡ptr 鐨?br />鍊煎姞涓? 涔榮izeof(int)錛屽湪32 浣嶇▼搴忎腑灝辨槸鍔犱笂浜? 涔?=20銆傜敱浜庡湴鍧
鐨勫崟浣嶆槸瀛楄妭錛屾晠鐜板湪鐨刾tr 鎵鎸囧悜鐨勫湴鍧姣旇搗鍔? 鍚庣殑ptr 鎵鎸囧悜鐨勫湴鍧
鏉ヨ錛屽悜楂樺湴鍧鏂瑰悜縐誨姩浜?0 涓瓧鑺傘傚湪榪欎釜渚嬪瓙涓紝娌″姞5 鍓嶇殑ptr 鎸?br />鍚戞暟緇刟 鐨勭0 鍙峰崟鍏冨紑濮嬬殑鍥涗釜瀛楄妭錛屽姞5 鍚庯紝ptr 宸茬粡鎸囧悜浜嗘暟緇刟 鐨?br />鍚堟硶鑼冨洿涔嬪浜嗐傝櫧鐒惰繖縐嶆儏鍐靛湪搴旂敤涓婁細鍑洪棶棰橈紝浣嗗湪璇硶涓婂嵈鏄彲浠ョ殑銆?br />榪欎篃浣撶幇鍑轟簡鎸囬拡鐨勭伒媧繪с?br />濡傛灉涓婁緥涓紝ptr 鏄鍑忓幓5錛岄偅涔堝鐞嗚繃紼嬪ぇ鍚屽皬寮傦紝鍙笉榪噋tr 鐨?br />鍊兼槸琚噺鍘? 涔榮izeof(int)錛屾柊鐨刾tr 鎸囧悜鐨勫湴鍧灝嗘瘮鍘熸潵鐨刾tr 鎵鎸囧悜
鐨勫湴鍧鍚戜綆鍦板潃鏂瑰悜縐誨姩浜?0 涓瓧鑺傘?br />涓嬮潰璇峰厑璁告垜鍐嶄婦涓涓緥瀛?(涓涓鍖?
渚嬩簲:
#include<stdio.h>
int main()
{
char a[20]=" You_are_a_girl";
char *p=a;
char **ptr=&p;
//printf("p=%d\n",p);
//printf("ptr=%d\n",ptr);
//printf("*ptr=%d\n",*ptr);
printf("**ptr=%c\n",**ptr);
ptr++;
//printf("ptr=%d\n",ptr);
//printf("*ptr=%d\n",*ptr);
printf("**ptr=%c\n",**ptr);
}
璇尯涓銆佽緭鍑虹瓟妗堜負Y 鍜宱
璇В:ptr 鏄竴涓猚har 鐨勪簩綰ф寚閽?褰撴墽琛宲tr++;鏃?浼氫嬌鎸囬拡鍔犱竴涓?br />sizeof(char),鎵浠ヨ緭鍑哄涓婄粨鏋?榪欎釜鍙兘鍙槸灝戦儴鍒嗕漢鐨勭粨鏋?
璇尯浜屻佽緭鍑虹瓟妗堜負Y 鍜宎
璇В:ptr 鎸囧悜鐨勬槸涓涓猚har *綾誨瀷,褰撴墽琛宲tr++;鏃?浼氫嬌鎸囬拡鍔犱竴涓?br />sizeof(char *)(鏈夊彲鑳戒細鏈変漢璁や負榪欎釜鍊間負1,閭e氨浼氬緱鍒拌鍖轟竴鐨勭瓟
妗?榪欎釜鍊煎簲璇ユ槸4,鍙傝冨墠闈㈠唴瀹?, 鍗?amp;p+4; 閭h繘琛屼竴嬈″彇鍊艱繍綆椾笉
灝辨寚鍚戞暟緇勪腑鐨勭浜斾釜鍏冪礌浜嗗悧?閭h緭鍑虹殑緇撴灉涓嶅氨鏄暟緇勪腑絎簲涓厓
绱犱簡鍚?絳旀鏄惁瀹氱殑.
姝hВ: ptr 鐨勭被鍨嬫槸char **,鎸囧悜鐨勭被鍨嬫槸涓涓猚har *綾誨瀷,璇ユ寚鍚戠殑
鍦板潃灝辨槸p鐨勫湴鍧(&p),褰撴墽琛宲tr++;鏃?浼氫嬌鎸囬拡鍔犱竴涓猻izeof(char
*),鍗?amp;p+4;閭?(&p+4)鎸囧悜鍝憿,榪欎釜浣犲幓闂笂甯濆惂,鎴栬呬粬浼氬憡璇変綘鍦?br />鍝?鎵浠ユ渶鍚庣殑杈撳嚭浼氭槸涓涓殢鏈虹殑鍊?鎴栬鏄竴涓潪娉曟搷浣?
鎬葷粨涓涓?
涓涓寚閽坧trold 鍔?鍑?涓涓暣鏁皀 鍚庯紝緇撴灉鏄竴涓柊鐨勬寚閽坧trnew錛?br />ptrnew 鐨勭被鍨嬪拰ptrold 鐨勭被鍨嬬浉鍚岋紝ptrnew 鎵鎸囧悜鐨勭被鍨嬪拰ptrold
鎵鎸囧悜鐨勭被鍨嬩篃鐩稿悓銆俻trnew 鐨勫煎皢姣攑trold 鐨勫煎鍔?鍑忓皯)浜唍 涔?br />sizeof(ptrold 鎵鎸囧悜鐨勭被鍨?涓瓧鑺傘傚氨鏄錛宲trnew 鎵鎸囧悜鐨勫唴瀛?br />鍖哄皢姣攑trold 鎵鎸囧悜鐨勫唴瀛樺尯鍚戦珮(浣?鍦板潃鏂瑰悜縐誨姩浜唍 涔?br />sizeof(ptrold 鎵鎸囧悜鐨勭被鍨?涓瓧鑺傘?br />鎸囬拡鍜屾寚閽堣繘琛屽姞鍑忥細
涓や釜鎸囬拡涓嶈兘榪涜鍔犳硶榪愮畻錛岃繖鏄潪娉曟搷浣滐紝鍥犱負榪涜鍔犳硶鍚庯紝寰楀埌鐨?br />緇撴灉鎸囧悜涓涓笉鐭ユ墍鍚戠殑鍦版柟錛岃屼笖姣棤鎰忎箟銆備袱涓寚閽堝彲浠ヨ繘琛屽噺娉?br />鎿嶄綔錛屼絾蹇呴』綾誨瀷鐩稿悓錛屼竴鑸敤鍦ㄦ暟緇勬柟闈紝涓嶅璇翠簡銆?br />

David Lee 2008-08-31 22:19 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲女女做受ⅹxx高潮| 国产精品亚洲综合久久| 亚洲福利小视频| 欧美激情综合色| 欧美影院久久久| 欧美一区二区在线视频| 亚洲人成网站影音先锋播放| 亚洲欧洲精品一区| 亚洲香蕉在线观看| 中文欧美在线视频| 亚洲欧洲日本在线| 欧美激情小视频| 亚洲成人在线视频播放 | 国产日韩欧美一区在线| 男女av一区三区二区色多| 亚洲欧美日韩在线一区| 亚洲最新色图| 一本综合精品| 一本色道久久综合亚洲91| 久久国产精品99国产精| 久久久久一区二区| 欧美不卡视频一区| 亚洲国产影院| 亚洲精品一区二区三区樱花| 在线成人激情黄色| 99v久久综合狠狠综合久久| 亚洲国产精品成人精品| 亚洲福利av| 亚洲专区在线| 久久午夜视频| 亚洲国产日韩欧美在线99 | 久久精品水蜜桃av综合天堂| 亚洲视频电影在线| 校园春色国产精品| 免费高清在线一区| 欧美另类一区| 欧美成人三级在线| 国产在线视频欧美| 亚洲精一区二区三区| 一本久道综合久久精品| 亚洲一区二区三区视频播放| 亚洲精品在线观| 久久裸体艺术| 亚洲精品视频免费| 久久成人精品| 久久国产福利| 欧美国产一区在线| 欧美亚洲在线播放| 欧美日韩精品免费| 激情欧美一区二区三区| 99www免费人成精品| 亚洲精品国产精品国自产在线| 亚洲天堂激情| 欧美成人免费在线观看| 99国产一区| 另类春色校园亚洲| 国产精品永久免费视频| 国产日韩一区二区三区| 国产精品99久久久久久久vr| 亚洲国产一成人久久精品| 亚洲男人的天堂在线| 日韩亚洲欧美成人一区| 欧美一级免费视频| 美女图片一区二区| 亚洲视频电影在线| 欧美日韩高清在线播放| 国内在线观看一区二区三区 | 久久亚洲一区| 亚洲一区二区精品视频| 欧美久久久久中文字幕| 影音先锋久久久| 毛片一区二区三区| 毛片一区二区三区| 亚洲美女毛片| 99国内精品久久久久久久软件| 欧美国产成人在线| 一本久久a久久免费精品不卡 | 99精品国产福利在线观看免费| 男女精品网站| 99精品视频网| 亚洲在线黄色| 在线播放一区| 亚洲国产婷婷香蕉久久久久久99| 久久精品夜色噜噜亚洲a∨| 国产一区二区三区免费在线观看| 欧美在线精品免播放器视频| 亚洲精品美女在线观看播放| 欧美www视频在线观看| 亚洲精品日韩精品| 亚洲午夜激情网站| 激情另类综合| 亚洲麻豆国产自偷在线| 欧美午夜电影在线观看| 欧美一区二区视频观看视频| 亚洲一区二区三区久久| 国产在线欧美| 亚洲麻豆av| 加勒比av一区二区| 亚洲精选久久| 国产在线拍揄自揄视频不卡99| 噜噜噜噜噜久久久久久91| 亚洲国产精品久久久久秋霞不卡| 欧美成人国产一区二区| 在线一区欧美| 久久久久久日产精品| 亚洲人体偷拍| 欧美亚洲三区| 亚洲网站在线播放| 久久综合九色综合网站| 一区二区三区四区五区在线| 日韩一二在线观看| 在线欧美日韩精品| 亚洲欧美日韩区| 一本色道久久| 欧美gay视频激情| 老司机精品视频网站| 欧美日韩1区2区3区| 久久久夜夜夜| 国产精品视频一二| 日韩一区二区久久| 亚洲国产美女| 久久久久国产精品一区| 亚洲婷婷综合色高清在线| 老司机精品视频一区二区三区| 亚洲一区欧美一区| 欧美国产日韩精品| 欧美丰满高潮xxxx喷水动漫| 欧美日韩日本视频| 亚洲欧洲精品一区二区三区不卡 | 国产精品麻豆成人av电影艾秋| 可以看av的网站久久看| 国产精品ⅴa在线观看h| 欧美国内亚洲| 91久久精品国产91久久性色tv | 亚洲第一偷拍| 久久精品国产在热久久| 欧美一进一出视频| 国产精品国产三级国产aⅴ浪潮 | 欧美在线视频在线播放完整版免费观看 | 欧美性生交xxxxx久久久| 久久亚洲色图| 黄色成人免费观看| 久久久久国内| 免费观看日韩| 亚洲国产天堂网精品网站| 久久狠狠亚洲综合| 久久久亚洲精品一区二区三区 | 欧美国产日韩一二三区| 免费观看在线综合| 亚洲日本成人| 欧美日韩国产系列| 欧美一区二区性| 国产精品免费小视频| 中文久久乱码一区二区| 亚洲尤物视频在线| 国产女主播一区| 久久久久久久综合| 最新亚洲视频| 亚洲欧美日韩爽爽影院| 欧美性大战久久久久| 亚洲婷婷国产精品电影人久久| 国产精品99久久久久久久久| 美女网站久久| 亚洲精品社区| 久久免费高清| 99re6这里只有精品视频在线观看| 欧美激情免费在线| 亚洲在线免费| 亚洲国产成人精品久久| 日韩香蕉视频| 国产一区二区三区在线播放免费观看| 久久蜜桃香蕉精品一区二区三区| 欧美成人小视频| 亚洲一级影院| 在线电影院国产精品| 欧美成人国产| 性欧美精品高清| 亚洲精品免费一二三区| 欧美在线视频观看免费网站| 国产亚洲精品一区二区| 麻豆91精品91久久久的内涵| 欧美激情一区二区三区| 亚洲一区二区在线看| 激情六月婷婷综合| 国产精品av久久久久久麻豆网| 午夜欧美大尺度福利影院在线看| 久久亚洲精品中文字幕冲田杏梨| 亚洲人成人一区二区在线观看| 欧美日韩视频在线| 老巨人导航500精品| 亚洲色图在线视频| 亚洲国产乱码最新视频| 午夜天堂精品久久久久| 亚洲二区在线视频| 国产婷婷精品| 国产精品久久久久久久7电影| 久久久久久久久久久久久久一区| 亚洲精品日韩在线观看| 欧美mv日韩mv国产网站| 亚洲欧美视频一区二区三区|