锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品影视在线观看,蜜臀av一级做a爰片久久,久久影视精品http://www.shnenglu.com/xpzhou/category/4064.html瑕佹槸鐢熷懡鐪熺殑鏈夊鏋滐紝灝變笉浼?xì)鏈墭q欎箞澶氱殑閬楁喚錛涜鏄瓑涓鍒嗛挓鍙互濡傛効錛屽氨涓嶄細(xì)鏈夎繖涔堝鐨勪激鎰?..zh-cnThu, 22 May 2008 12:05:50 GMTThu, 22 May 2008 12:05:50 GMT60HOWTO: Create Debug Symbols for a Visual C++ Applicationhttp://www.shnenglu.com/xpzhou/archive/2007/06/11/26109.html姒曟爲(wèi)钘?/dc:creator>姒曟爲(wèi)钘?/author>Mon, 11 Jun 2007 14:54:00 GMThttp://www.shnenglu.com/xpzhou/archive/2007/06/11/26109.htmlhttp://www.shnenglu.com/xpzhou/comments/26109.htmlhttp://www.shnenglu.com/xpzhou/archive/2007/06/11/26109.html#Feedback0http://www.shnenglu.com/xpzhou/comments/commentRss/26109.htmlhttp://www.shnenglu.com/xpzhou/services/trackbacks/26109.html 1. 鍦?#8220;瑙e喅鏂規(guī)璧勬簮綆$悊鍣?#8221;涓紝鍙沖嚮瑕佷慨鏀圭殑欏圭洰錛岀劧鍚庡崟鍑?strong>灞炴?/strong>銆?/td> 2. 鍦?#8220;閰嶇疆灞炴?#8221;紿楀彛涓紝鍗曞嚮C/C++ 鏂囦歡澶癸紝鐒跺悗鍗曞嚮甯歌銆?/td> 3. 鍦?strong>璋冭瘯淇℃伅鏍煎紡涓嬫媺鍒楄〃涓紝鍗曞嚮閫夋嫨紼嬪簭鏁版嵁搴?(/Zi)銆?/td> 4. 濡傛灉鎮(zhèn)ㄥ笇鏈涘湪璋冭瘯杞偍鏂囦歡鎴栨墽琛屽疄鏃惰皟璇曟椂鑾峰緱鏈夊叧灞閮ㄥ彉閲忕殑淇℃伅錛岃鍗曞嚮閫夋嫨浼樺寲涓嬫媺鍒楄〃涓殑紱佺敤 (/Od)銆?/td> 5. 鍦?#8220;閰嶇疆灞炴?#8221;紿楀彛鐨?Linker 鏂囦歡澶逛腑錛岀‘淇?#8220;璋冭瘯”瀛愮被鍒殑鐢熸垚璋冭瘯淇℃伅灞炴ц緗負(fù)鏄?(/DEBUG)銆?strong>澶囨敞錛氬敖綆″茍涓嶈姹傛?zhèn)ㄥ湪鍚屼竴瀛愮被鍒腑鍚屾牱鍚敤鐢熸垚鏄犲皠鏂囦歡錛屼絾璇ラ夐」浼?xì)鍒涘晦Z竴涓?.map 鏂囦歡錛屽綋鎮(zhèn)ㄥ彧鏈夊彂鐢熻闂啿紿佺殑鍦板潃鏃訛紝璇ユ枃浠跺紜畾鍙戠敓鏁呴殰鐨勪綅緗彲鑳藉緢鏈夌敤銆傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙?#8220;鍙傝?#8221;閮ㄥ垎銆? 鍦?Visual C++ 6.0 寮鍙戠幆澧冧腑涓哄簲鐢ㄧ▼搴忓垱寤虹鍙鋒枃浠訛細(xì)
1. 鍦?strong>欏圭洰鑿滃崟涓婏紝閫夋嫨璁劇疆銆?/td>
2. 鍦?strong>C/C++ 閫夐」鍗′笂錛屽皢綾誨埆鏇存敼涓?strong>甯歌銆?/td>
3. 鍦?strong>璋冭瘯淇℃伅涓嬫媺鍒楄〃涓紝閫夋嫨紼嬪簭鏁版嵁搴?/strong>銆?strong>澶囨敞錛氬鏋滄?zhèn)ㄥ笇鏈涘湪璋冭瘯铦{鍌ㄦ枃浠舵垨鎵ц瀹炴椂璋冭瘯鏃惰幏寰楁湁鍏沖眬閮ㄥ彉閲忕殑淇℃伅錛岃繕搴旇閫夋嫨浼樺寲涓嬫媺鍒楄〃涓殑紱佺敤錛堣皟璇曪級(jí)銆?br>
4. 鍦?strong>閾炬帴閫夐」鍗′笂錛屽皢綾誨埆鏇存敼涓?strong>璋冭瘯銆?/td>
5. 鍦?strong>璋冭瘯淇℃伅閮ㄥ垎錛岀‘淇濋変腑璋冭瘯淇℃伅 閫夐」錛岀劧鍚庨夋嫨涓ょ鏍煎紡銆?strong>澶囨敞錛氬敖綆′笉瑕佹眰鎮(zhèn)ㄥ湪閾炬帴閫夐」鍗′笂鍚屾牱鍚敤甯歌綾誨埆涓殑鐢熸垚鏄犲皠鏂囦歡錛屼絾璇ラ夐」浼?xì)鍒涘晦Z竴涓?.map 鏂囦歡錛屽綋鎮(zhèn)ㄥ彧鏈夊彂鐢熻闂啿紿佺殑鍦板潃鏃訛紝璇ユ枃浠跺紜畾鍙戠敓鏁呴殰鐨勪綅緗彲鑳藉緢鏈夌敤銆傦紙鏈夊叧鏇村淇℃伅錛岃鍙傝“鍙傝?#8221;銆傦級(jí)


]]>
VC++6.0緙栬瘧鐜浠嬬粛http://www.shnenglu.com/xpzhou/archive/2007/06/08/25807.html姒曟爲(wèi)钘?/dc:creator>姒曟爲(wèi)钘?/author>Fri, 08 Jun 2007 02:00:00 GMThttp://www.shnenglu.com/xpzhou/archive/2007/06/08/25807.htmlhttp://www.shnenglu.com/xpzhou/comments/25807.htmlhttp://www.shnenglu.com/xpzhou/archive/2007/06/08/25807.html#Feedback0http://www.shnenglu.com/xpzhou/comments/commentRss/25807.htmlhttp://www.shnenglu.com/xpzhou/services/trackbacks/25807.html

澶у鍙兘涓鐩村湪鐢?/font>VC寮鍙戣蔣浠訛紝浣嗘槸瀵逛簬榪欎釜緙栬瘧鍣ㄥ嵈鏈繀寰堜簡瑙c傚師鍥犳槸澶氭柟闈㈢殑銆傚ぇ澶氭暟鎯呭喌涓嬶紝鎴戜滑鍙仠鐣欏湪“浣跨敤”瀹冿紝鑰屼笉浼?xì)鎯冲?#8220;浜嗚В”瀹冦傚洜涓哄畠鍙槸涓涓伐鍏鳳紝鎴戜滑瀹佸彲鎶婃洿澶氱殑綺懼姏鏀懼湪C++璇█鍜岃蔣浠惰璁′笂銆傛垜浠範(fàn)鎯簬榪欐牱涓縐?#8220;妯″紡”錛氬緩绔嬩竴涓」鐩紝鐒跺悗鍐欎唬鐮侊紝鐒跺悗緙栬瘧錛屽弽鍙嶅澶嶈皟璇曘備絾鏄紝鎵璋擄細(xì)“鍏鍠勫叾浜嬶紝蹇呭厛鍒╁叾鍣?#8221;銆傚鏋滄垜浠簿浜?/span>VC寮鍙戠幆澧冿紝鎴戜滑鏄笉鏄兘澶熷仛寰楁洿鍔犳父鍒冩湁浣欏憿錛?/span>


Visual C++鍙柊寤虹殑 Projects欏圭洰

Visual C++鍙柊寤虹殑 File鏂囦歡

Visual C++鐨凚uild璁劇疆
1.Compile TEST.cpp閫夐」 鍙紪璇戝綋鍓嶆枃浠惰屼笉璋冪敤閾炬帴鍣ㄦ垨鍏跺畠宸ュ叿銆傝緭鍑虹獥鍙e皢鏄劇ず緙栬瘧榪囩▼媯(gè)鏌ュ嚭鐨勯敊璇垨璀﹀憡淇℃伅錛屽湪閿欒淇℃伅澶勫崟鍑婚紶鏍囧彸閿紝鍙互寰楀埌閿欒浠g爜鐨勪綅緗?br>2. Build TEST.exe 閫夐」 瀵規(guī)渶鍚庝慨鏀硅繃鐨勬簮鏂囦歡榪涜緙栬瘧鍜岄摼鎺?br>3. Rebuild All閫夐」 璇ラ夐」鍏佽鐢ㄦ埛緙栬瘧鎵鏈夌殑婧愭枃浠訛紝鑰屼笉綆″畠浠綍鏃舵浘緇忚淇敼榪?br>4. Batch Build閫夐」 璇ラ夐」鑳藉崟姝ラ噸鏂板緩绔嬪涓伐紼嬫枃浠訛紝騫跺厑璁哥敤鎴鋒寚瀹氳寤虹珛鐨勯」鐩被鍨?VC鎻愪緵浜嗕袱縐嶇洰鏍囧簲鐢ㄧ▼搴忕被鍨?Win32 Release錛堝彂琛岀増錛夈乄in32 Debug錛堣皟璇曠増錛夈?/font>


 

鎴戜滑鍏堟潵鐪嬩竴涓?/font>VC鐨勫鐞嗘祦紼嬶紝澶ц嚧鍒嗕負(fù)涓ゆ錛氱紪璇戝拰榪炴帴銆傛簮鏂囦歡閫氳繃緙栬瘧鐢熸垚浜?/span>.obj鏂囦歡錛涙墍鏈?/span>.obj鏂囦歡鍜?/span>.lib鏂囦歡閫氳繃榪炴帴鐢熸垚.exe鏂囦歡鎴?/span>.dll鏂囦歡銆備笅闈紝鎴戜滑鍒嗗埆璁ㄨ榪欎袱涓楠ょ殑涓浜涚粏鑺傘?/font>

宸ョ▼閰嶇疆瀵硅瘽妗?/strong> 鍦ㄨ繖涓璇濇涓紝宸︿笂鏂圭殑涓嬫媺鍒楄〃妗嗙敤浜庨夋嫨涓縐嶅伐紼嬮厤緗紝鍖呮嫭鏈塛in32 Debug銆乄in32 Release鍜孉ll Configurations錛堟寚鍓嶄袱縐嶉厤緗竴璧鳳級(jí)錛屾煇浜涢夐」鍦ㄤ笉鍚岀殑宸ョ▼閰嶇疆涓湁涓嶅悓鐨勭己鐪佸箋傚乏杈圭殑鏍?wèi)迮炶鍥揪l欏嚭浜嗗綋鍓嶅伐紼嬫墍鏈夌殑鏂囦歡鍙?qiáng)鍒喚c繪儏鍐點(diǎn)傚鏋滄垜浠妸宸ョ▼“Schedule”緗負(fù)楂樹寒鏄劇ず錛堟濡傚浘9-1閭f牱錛夛紝瀵硅瘽妗嗙殑鍙寵竟灝變細(xì)鍑虹幇鎬誨叡鍗佷釜閫夐」鍗★紝鍏朵腑鍒楀嚭浜嗕笌宸ョ▼鏈夊叧鐨勫悇縐嶉夐」錛屼笉灝戦夐」鍗′腑鏈変竴涓猂eset鎸夐挳錛屾寜涓嬪畠鍚庡彲浠ユ妸閫夐」鍗″唴鐨勫悇欏硅緗仮澶嶅埌鐢熸垚宸ョ▼鏃剁殑鍒濆鍊箋傚鏋滄垜浠湪鏍?wèi)迮炶鍥句腑閫夋嫨涓涓枃浠剁被鎴栦竴涓枃浠訛紝閭d箞瀵硅瘽妗嗗彸杈圭殑閫夐」鍗′細(xì)鑷姩鍑忓皯鍒頒竴涓垨涓や釜錛屽叾涓垪鍑虹殑閮芥槸涓庨変腑鐨勬枃浠剁被鎴栨枃浠舵湁鍏崇殑閫夐」銆?/font>

 緙栬瘧鍙傛暟鐨勮緗?/span>銆備富瑕侀氳繃VC鐨勮彍鍗曢」Project->Settings->C/C++欏墊潵瀹屾垚銆傛垜浠彲浠ョ湅鍒拌繖涓欏電殑鏈涓嬮潰Project Options涓殑鍐呭錛屼竴鑸涓嬶細(xì)

/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Debug/WritingDlgTest.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c

鍚勪釜鍙傛暟浠h〃鐨勬剰涔夛紝鍙互鍙傝?/font>Project Option璇硶瑙i噴銆傛瘮濡?/span>/nologo琛ㄧず緙栬瘧鏃朵笉鍦ㄨ緭鍑虹獥鍙f樉紺鴻繖浜涜緗紙鎴戜滑鍙互鎶婅繖涓弬鏁板幓鎺夋潵鐪嬬湅鏁堟灉錛夌瓑絳夈備竴鑸垜浠笉浼?xì)鐩存帴淇敼杩欎簺璁揪|紝鑰屾槸閫氳繃榪欎竴欏墊渶涓婇潰鐨?/span>Category涓殑鍚勯」鏉ュ畬鎴愩?/font>

1)General錛氫竴浜涙諱綋璁劇疆銆?/span>Warning level鐢ㄦ潵鎺у埗璀﹀憡淇℃伅錛?/span>None琛ㄧず涓嶆樉紺轟換浣曡鍛婏紝L1琛ㄧず鍙樉紺轟弗閲嶇殑璀﹀憡錛孡2琛ㄧず鏄劇ず姣擫1嬈′弗閲嶇殑璀﹀憡錛孡4鍒欒〃紺烘樉紺哄嚭鎵鏈夌殑璀﹀憡錛屽寘鎷偅浜涘畨鍏ㄥ拷鐣ョ殑璀﹀憡錛?/span>Warnings as errors灝嗚鍛婁俊鎭綋浣滈敊璇鐞?/span>錛岃繖鏍峰湪緙栬瘧瀹屾瘯鍚庡氨鏃犳硶鍚姩榪炴帴鍣ㄦ潵榪涜榪炴帴錛?/span>Optimizations鏄唬鐮佷紭鍖栵紝鍙互鍦?/span>Category鐨?/span>Optimizations欏逛腑榪涜鏇寸粏鐨勮緗紱Generate browse info鐢ㄤ互鐢熸垚.sbr鏂囦歡錛岃褰曠被銆佸彉閲忕瓑絎﹀彿淇℃伅錛屽彲浠ュ湪Category鐨?/span>Listing Files欏逛腑榪涜鏇村鐨勮緗?/span>Debug info錛岀敓鎴愯皟璇曚俊鎭細(xì)None錛屼笉浜х敓浠諱綍璋冭瘯淇℃伅錛堢紪璇戞瘮杈冨揩錛夛紱Line Numbers Only錛屼粎鐢熸垚鍏ㄥ眬鐨勫拰澶栭儴絎﹀彿鐨勮皟璇曚俊鎭埌.OBJ鏂囦歡鎴?/span>.EXE鏂囦歡錛屽噺灝忕洰鏍囨枃浠剁殑灝哄錛?/span>C 7.0- Compatible錛岃褰曡皟璇曞櫒鐢ㄥ埌鐨勬墍鏈夌鍙蜂俊鎭埌.OBJ鏂囦歡鍜?/span>.EXE鏂囦歡錛?/span>Program Database錛屽垱寤?/span>.PDB鏂囦歡璁板綍鎵鏈夎皟璇曚俊鎭紱Program Database for "Edit & Continue"錛屽垱寤?/span>.PDB鏂囦歡璁板綍鎵鏈夎皟璇曚俊鎭紝騫朵笖鏀寔璋冭瘯鏃剁紪杈戙?/font>

2)C++ Language錛?/span>pointer_to_member representation鐢ㄦ潵璁劇疆綾誨畾涔?/span>/寮曠敤鐨勫厛鍚庡叧緋伙紝涓鑸負(fù)Best-Case Always琛ㄧず鍦ㄥ紩鐢ㄧ被涔嬪墠璇ョ被鑲畾宸茬粡瀹氫箟浜嗭紱Enable Exception Handling錛岃繘琛屽悓姝ョ殑寮傚父澶勭悊錛?/span>Enable Run-Time Type Information榪嬌緙栬瘧鍣ㄥ鍔犱唬鐮佸湪榪愯鏃惰繘琛屽璞$被鍨嬫鏌ワ紱Disable Construction Displacements錛岃緗被鏋勯?/span>/鏋愭瀯鍑芥暟璋冪敤铏氬嚱鏁伴棶棰樸?/font>

  

3)Code Generation錛?/span>Processor琛ㄧず浠g爜鎸囦護(hù)浼樺寲錛屽彲浠ヤ負(fù)80386銆?/span>80486銆?/span>Pentium銆?/span>Pentium Pro錛屾垨鑰?/span>Blend琛ㄧず娣峰悎浠ヤ笂鍚勭浼樺寲銆?/span>Use run-time library鐢ㄤ互鎸囧畾紼嬪簭榪愯鏃朵嬌鐢ㄧ殑榪愯鏃跺簱錛堝崟綰跨▼鎴栧綰跨▼錛?/span>Debug鐗堟湰鎴?/span>Release鐗堟湰錛夛紝鏈変竴涓師鍒欏氨鏄紝涓涓繘紼嬩笉瑕佸悓鏃朵嬌鐢ㄥ嚑涓増鏈殑榪愯鏃跺簱銆?/span>Single-Threaded錛岄潤鎬佽繛鎺?/span>LIBC.LIB搴擄紱Debug Single-Threaded錛岄潤鎬佽繛鎺?/span>LIBCD.LIB搴擄紱Multithreaded錛岄潤鎬佽繛鎺?/span>LIBCMT.LIB搴擄紱Debug Multithreaded錛岄潤鎬佽繛鎺?/span>LIBCMTD.LIB搴擄紱Multithreaded DLL錛屽姩鎬佽繛鎺?/span>MSVCRT.DLL搴擄紱Debug Multithreaded DLL錛屽姩鎬佽繛鎺?/span>MSVCRTD.DLL搴撱傝繛鎺ヤ簡鍗曠嚎紼嬪簱灝變笉鏀寔澶氱嚎紼嬭皟鐢紝榪炴帴浜嗗綰跨▼搴撳氨瑕佹眰鍒涘緩澶氱嚎紼嬬殑搴旂敤紼嬪簭銆?/span>Calling convention鍙互鐢ㄦ潵璁懼畾璋冪敤綰﹀畾錛屾湁涓夌錛?/span>__cdecl銆?/span>__fastcall鍜?/span>__stdcall銆傚悇縐嶈皟鐢ㄧ害瀹氱殑涓昏鍖哄埆鍦ㄤ簬錛屽嚱鏁拌皟鐢ㄦ椂錛屽嚱鏁扮殑鍙傛暟鏄粠宸﹀埌鍙沖帇鍏ュ爢鏍堣繕鏄粠鍙沖埌宸﹀帇鍏ュ爢鏍堬紱鍦ㄥ嚱鏁拌繑鍥炴椂錛岀敱鍑芥暟鐨勮皟鐢ㄨ呮潵娓呯悊鍘嬪叆鍫嗘爤鐨勫弬鏁拌繕鏄敱鍑芥暟鏈韓鏉ユ竻鐞嗭紱浠ュ強(qiáng)鍦ㄧ紪璇戞椂瀵瑰嚱鏁板悕榪涜鐨勫懡鍚嶄慨楗幫紙鍙互閫氳繃Listing Files鐪嬪埌鍚勭鍛藉悕淇グ鏂瑰紡錛夈?/span>Struct member alignment鐢ㄤ互鎸囧畾鏁版嵁緇撴瀯涓殑鎴愬憳鍙橀噺鍦ㄥ唴瀛樹腑鏄寜鍑犲瓧鑺傚榻愮殑錛屾牴鎹綆楁満鏁版嵁鎬葷嚎鐨勪綅鏁幫紝涓嶅悓鐨勫榻愭柟寮忓瓨鍙栨暟鎹殑閫熷害涓嶄竴鏍楓傝繖涓弬鏁板鏁版嵁鍖呯綉緇滀紶杈撶瓑搴旂敤灝や負(fù)閲嶈錛屼笉鏄瓨鍙栭熷害闂錛岃屾槸鏁版嵁浣嶇殑綺劇‘瀹氫箟闂錛屼竴鑸湪紼嬪簭涓嬌鐢?/span>#pragma pack鏉ユ寚瀹氥?/font>

4)Customize錛?/span>Disable Language Extensions錛岃〃紺轟笉浣跨敤寰蔣涓烘爣鍑?/span>C鍋氱殑璇█鎵╁睍錛?/span>Eliminate Duplicate Strings錛屼富瑕佺敤浜庡瓧絎︿覆浼樺寲錛堝皢瀛楃涓叉斁鍒扮紦鍏呮睜閲屼互鑺傜渷絀洪棿錛夛紝浣跨敤榪欎釜鍙傛暟錛屼嬌寰?/font>

char *sBuffer = "This is a character buffer";

char *tBuffer = "This is a character buffer";

sBuffer鍜?/span>tBuffer鎸囧悜鐨勬槸鍚屼竴鍧楀唴瀛樼┖闂達(dá)紱Enable Function-Level Linking 錛屽憡璇夌紪璇戝櫒灝嗗悇涓嚱鏁版寜鎵撳寘鏍煎紡緙栬瘧錛?/span>Enables minimal rebuild錛岄氳繃淇濆瓨鍏寵仈淇℃伅鍒?/span>.IDB鏂囦歡錛屼嬌緙栬瘧鍣ㄥ彧瀵規(guī)渶鏂扮被瀹氫箟鏀瑰姩榪囩殑婧愭枃浠惰繘琛岄噸緙栬瘧錛屾彁楂樼紪璇戦熷害錛?/span>Enable Incremental Compilation錛屽悓鏍烽氳繃.IDB鏂囦歡淇濆瓨鐨勪俊鎭紝鍙噸緙栬瘧鏈鏂版敼鍔ㄨ繃鐨勫嚱鏁幫紱Suppress Startup Banner and Information Messages錛岀敤浠ユ帶鍒跺弬鏁版槸鍚﹀湪output紿楀彛杈撳嚭銆?/font>

5) Listing Files錛?/span>Generate browse info鐨勫姛鑳戒笂闈㈠凡緇忔彁鍒拌繃銆傝繖閲屽彲浠ヨ繘琛屾洿澶氱殑璁劇疆銆?/span>Exclude Local Variables from Browse Info琛ㄧず鏄惁灝嗗眬閮ㄥ彉閲忕殑淇℃伅鏀懼埌.SBR鏂囦歡涓?/span>Listing file type鍙互璁劇疆鐢熸垚鐨勫垪琛ㄤ俊鎭枃浠剁殑鍐呭錛?/span>Assembly-Only Listing浠呯敓鎴愭眹緙栦唬鐮佹枃浠訛紙.ASM鎵╁睍鍚嶏級(jí)錛?/span>Assembly With Machine Code鐢熸垚鏈哄櫒浠g爜鍜屾眹緙栦唬鐮佹枃浠訛紙.COD鎵╁睍鍚嶏級(jí)錛?/span>Assembly With Source Code鐢熸垚婧愪唬鐮佸拰姹囩紪浠g爜鏂囦歡錛?/span>.ASM鎵╁睍鍚嶏級(jí)錛?/span>Assembly, Machine Code, and Source鐢熸垚鏈哄櫒鐮併佹簮浠g爜鍜屾眹緙栦唬鐮佹枃浠訛紙.COD鎵╁睍鍚嶏級(jí)銆?/span>Listing file name涓虹敓鎴愮殑淇℃伅鏂囦歡鐨勮礬寰勶紝涓鑸負(fù)Debug鎴?/span>Release鐩綍涓嬶紝鐢熸垚鐨勬枃浠跺悕鑷姩鍙栨簮鏂囦歡鐨勬枃浠跺悕銆?/font>

 

6)Optimizations錛?/span>浠g爜浼樺寲璁劇疆銆傚彲浠ラ夋嫨Maximize Speed鐢熸垚鏈蹇熺殑浠g爜錛屾垨Minimize Size鐢熸垚鏈灝忓昂瀵哥殑紼嬪簭錛屾垨鑰?/span>Customize瀹氬埗浼樺寲銆傚畾鍒剁殑鍐呭鍖呮嫭錛?/font>

Assume No Aliasing錛屼笉浣跨敤鍒悕錛堟彁楂橀熷害錛夛紱

Assume Aliasing Across Function Calls錛屼粎鍑芥暟鍐呴儴涓嶄嬌鐢ㄥ埆鍚嶏紱

Global Optimizations錛屽叏灞浼樺寲錛屾瘮濡傜粡甯哥敤鍒扮殑鍙橀噺浣跨敤瀵勫瓨鍣ㄤ繚瀛橈紝鎴栬呭驚鐜唴鐨勮綆椾紭鍖栵紝濡?/font>

i = -100;

while( i < 0 ){    i += x + y;}

浼?xì)琚紭鍖栦?/font>

i = -100;

t = x + y;

while( i < 0 ){i += t;}

Generate Intrinsic Functions錛屼嬌鐢ㄥ唴閮ㄥ嚱鏁版浛鎹竴浜涘嚱鏁拌皟鐢紙鎻愰珮閫熷害錛夛紱

Improve Float Consistency錛屾誕鐐硅繍綆楁柟闈㈢殑浼樺寲錛?/font>

Favor Small Code錛岀▼搴忥紙exe鎴?/span>dll錛夊昂瀵鎬紭鍖栦紭鍏堜簬浠g爜閫熷害浼樺寲錛?/font>

Favor Fast Code錛岀▼搴忥紙exe鎴?/span>dll錛変唬鐮侀熷害浼樺寲浼樺厛浜庡昂瀵鎬紭鍖栵紱

Frame-Pointer Omission錛屼笉浣跨敤甯ф寚閽堬紝浠ユ彁楂樺嚱鏁拌皟鐢ㄩ熷害錛?/font>

Full Optimization錛岀粍鍚堜簡鍑犵鍙傛暟錛屼互鐢熸垚鏈蹇殑紼嬪簭浠g爜銆?/font>

Inline function expansion錛屽唴鑱斿嚱鏁版墿灞曠殑涓夌浼樺寲錛堜嬌鐢ㄥ唴鑱斿彲浠ヨ妭鐪佸嚱鏁拌皟鐢ㄧ殑寮閿錛屽姞蹇▼搴忛熷害錛夛細(xì)Disable涓嶄嬌鐢ㄥ唴鑱旓紱Only __inline錛屼粎鍑芥暟瀹氫箟鍓嶆湁inline鎴?/span>__inline鏍囪浣跨敤鍐呰仈錛?/span>Any Suitable錛岄櫎浜?/span>inline鎴?/span>__inline鏍囪鐨勫嚱鏁板錛岀紪璇戝櫒“瑙夊緱”搴旇浣跨敤鍐呰仈鐨勫嚱鏁幫紝閮戒嬌鐢ㄥ唴鑱斻?/font>

7)Precompiled Headers錛氶緙栬瘧澶存枃浠剁殑璁劇疆銆?/font>

 棰勭紪璇戝ご鐨勬蹇碉細(xì) 鎵璋撶殑棰勭紪璇戝ご灝辨槸鎶婁竴涓伐紼嬩腑鐨勯偅涓閮ㄥ垎浠g爜,棰勫厛緙栬瘧濂芥斁鍦ㄤ竴涓枃浠墮噷(閫氬父鏄互.pch涓烘墿灞曞悕鐨?錛岃繖涓枃浠跺氨縐頒負(fù)棰勭紪璇戝ご鏂囦歡榪欎簺棰勫厛緙栬瘧濂界殑浠g爜鍙互鏄換浣曠殑C/C++浠g爜--------鐢氳嚦鏄痠nline鐨勫嚱鏁幫紝浣嗘槸蹇呴』鏄ǔ瀹氱殑錛屽湪宸ョ▼寮鍙戠殑榪囩▼涓笉浼?xì)琚l忓父鏀瑰彉銆傚鏋滆繖浜涗唬鐮佽淇敼錛屽垯闇瑕侀噸鏂扮紪璇戠敓鎴愰緙栬瘧澶存枃浠躲?/font>浣犲彲灝嗗皢涓浜涘叕鍏辯殑銆佷笉澶у彉鍔ㄧ殑澶存枃浠訛紙姣斿FILEX.h絳夛級(jí)闆嗕腑鏀懼埌stdafx.h涓紝榪欎竴閮ㄥ垎浠g爜灝變笉蹇呮瘡嬈¢兘閲嶆柊緙栬瘧錛堥櫎闈炴槸Rebuild All錛夈?/font>娉ㄦ剰鐢熸垚棰勭紪璇戝ご鏂囦歡鏄緢鑰楁椂闂寸殑銆傚悓鏃朵綘寰楁敞鎰忛緙栬瘧澶存枃浠墮氬父寰堝ぇ錛岄氬父鏈?-7M澶с?span lang=ZH-CN>浣跨敤棰勭紪璇戝彲浠ユ彁楂橀噸澶嶇紪璇戠殑閫熷害銆?/span>

  涔熻浣犱細(xì)闂細(xì)鐜板湪鐨勭紪璇戝櫒閮芥湁Time stamp鐨勫姛鑳斤紝緙栬瘧鍣ㄥ湪緙栬瘧鏁翠釜宸ョ▼鐨勬椂鍊欙紝瀹冨彧浼?xì)缂栬瘧閭d簺缁彉q囦慨鏀圭殑鏂囦歡錛岃屼笉浼?xì)鍘痪~栬瘧閭d簺浠庝笂嬈$紪璇戣繃錛屽埌鐜板湪娌℃湁琚慨鏀硅繃鐨勬枃浠躲傞偅涔堜負(fù)浠涔堣繕瑕侀緙栬瘧澶存枃浠跺憿錛熺瓟妗堝湪榪欓噷錛屾垜浠煡閬撶紪璇戝櫒鏄互鏂囦歡涓哄崟浣嶇紪璇戠殑錛屼竴涓枃浠剁粡榪囦慨鏀瑰悗錛屼細(xì)閲嶆柊緙栬瘧鏁翠釜鏂囦歡錛屽綋鐒跺湪榪欎釜鏂囦歡閲屽寘鍚殑鎵鏈夊ご鏂囦歡涓殑涓滆タ錛?eg Macro, Preprocessor 錛夐兘瑕侀噸鏂板鐞嗕竴閬嶃俈C鐨勯緙栬瘧澶存枃浠朵繚瀛樼殑姝f槸榪欓儴鍒嗕俊鎭備互閬垮厤姣忔閮借閲嶆柊澶勭悊榪欎簺澶存枃浠躲?/font>

1.榪欓噷鏄嬌鐢ㄥ伐紼嬮噷鐨勮緗紝/Yu”stdafx.h”銆傚鏋滀嬌鐢ㄤ簡/Yu錛屽氨鏄浣跨敤浜嗛緙栬瘧錛屾垜浠湪姣忎釜.cpp鏂囦歡鐨勬渶寮澶達(dá)紝鎴戝己璋冧竴閬嶆槸鏈寮澶達(dá)紝鍖呭惈 浣犳寚瀹氫駭鐢焢ch鏂囦歡鐨?h鏂囦歡錛堥粯璁ゆ槸stdafx.h錛変笉鐒跺氨浼?xì)鏈夐棶棰樸傚鏋滀綘娌℃湁鍖呭惈榪欎釜鏂囦歡錛屽氨鍛婅瘔浣燯nexpected file end. 濡傛灉浣犱笉鏄湪鏈寮澶村寘鍚殑

2.濡傛灉浣犳妸pch鏂囦歡涓嶅皬蹇冧涪浜嗭紝鏈綆鍗曠殑鍔炴硶灝辨槸閫変腑絎竴涓夐」“Not using....",榪欐牱灝辨牴鏈笉鐢ㄩ緙栬瘧澶翠篃涓嶅幓瀵繪壘pch鏂囦歡錛屽氨涓嶄細(xì)鍑洪敊浜嗭紝浣嗘槸榪欐牱鍋氱殑鍚庢灉鏄瘡嬈$紪璇戙佽繛鎺ラ兘鍖栨洿澶氱殑鏃墮棿銆備篃鍙互閫夌浜屼釜閫夐」”Automatic use of",鐒跺悗鍦?#8220;Through header”鍔涘~涓妔tdafx.h錛岃繖鏍峰鏋滄病鏈塸ch鏂囦歡緋葷粺浼?xì)鑷姩鐢熸垚涓涓猵ch錛屽鏋滄湁鐨勮瘽灝變嬌鐢ㄨ繖涓猵ch錛岃繖涓夐」鏄瘮杈?#8220;鏅鴻兘”鐨勩傜涓変釜閫夐」鏄己琛屽垱寤轟竴涓猵ch鏂囦歡錛岀鍥涗釜閫夐」鏄洿鎺ヤ嬌鐢╬ch鏂囦歡銆傚綋鐒?#8220;Through headers”閲岄兘濉玸tdafx.h浜嗐?/font>

璁╃紪璇戝櫒鐢熸垚涓涓猵ch鏂囦歡灝卞彲浠ヤ簡銆備篃灝辨槸璇存妸 stdafx.cpp錛堝嵆鎸囧畾/Yc鐨勯偅涓猚pp鏂囦歡錛変粠鏂扮紪璇戜竴閬嶅氨鍙互浜嗐傚綋鐒朵綘鍙互鍌誨偦鐨?Rebuild all銆?/font>

8) Preprocessor錛氶緙栬瘧澶勭悊銆?/span>鎴戜滑鍙互鍦ㄨ繖閲岄鍏堝畾涔変竴浜涘畯鍚嶏紝鎸囧畾閮ㄥ垎鎴栨墍鏈夌鍙峰叿鏈夋湭瀹氫箟鐘舵?span lang=ZH-CN>銆?/span>Additional include directories錛屽彲浠ユ寚瀹氶澶栫殑鍖呭惈鐩綍錛屼竴鑸槸鐩稿浜庢湰欏圭洰鐨勭洰褰曪紝濡?/span>..\Include銆?/font>

Link榪炴帴鍙傛暟鐨勮緗?/strong>銆備富瑕侀氳繃VC鐨勮彍鍗曢」Project->Settings->Link欏墊潵瀹屾垚銆傛垜浠彲浠ョ湅鍒拌繖涓欏電殑鏈涓嬮潰Project Options涓殑鍐呭錛屼竴鑸涓嬶細(xì)

/nologo /subsystem:windows /incremental:yes /pdb:"Debug/WritingDlgTest.pdb" /debug /machine:I386 /out:"Debug/WritingDlgTest.exe" /pdbtype:sept

涓嬮潰鎴戜滑鍒嗗埆鏉ョ湅涓涓?/font>Category涓殑鍚勯」璁劇疆銆?/font>

 

1General錛氫竴浜涙諱綋璁劇疆銆傚彲浠ヨ緗敓鎴愮殑鏂囦歡璺緞銆佹枃浠跺悕 濡?/span>鍦?#8220;Output   file   name:”涓嬮潰鐨勭紪杈戞涓彲杈撳叆錛?#8220;C:\bin\TEST.exe”錛涜繛鎺ョ殑搴撴枃浠訛紱Generate debug info錛岀敓鎴?/span>Debug淇℃伅鍒?/span>.PDB鏂囦歡錛堝叿浣撴牸寮忓彲浠ュ湪Category->Debug涓緗級(jí)錛?/span>Ignore All Default Libraries錛屾斁寮冩墍鏈夐粯璁ょ殑搴撹繛鎺ワ紱Link Incrementally錛岄氳繃鐢熸垚. ILK鏂囦歡瀹炵幇閫掑寮忚繛鎺ヤ互鎻愰珮鍚庣畫榪炴帴閫熷害錛屼絾涓鑸繖縐嶆柟寮忎笅鐢熸垚鐨勬枃浠訛紙EXE鎴?/span>DLL錛夎緝澶э紱Generate Mapfile錛岀敓鎴?/span>.MAP鏂囦歡璁板綍妯″潡鐩稿叧淇℃伅錛?/span>Enable Profiling錛岃繖涓弬鏁伴氬父涓?/span>Generate Mapfile鍙傛暟鍚屾椂浣跨敤錛岃屼笖濡傛灉浜х敓Debug淇℃伅鐨勮瘽錛屼笉鑳界敤.PDB鏂囦歡錛岃屼笖蹇呴』鐢?/span>Microsoft Format銆?/span>  

2Customize錛氳繖閲屽彲浠ヨ繘琛屼嬌鐢ㄧ▼搴忔暟鎹簱鏂囦歡鐨勮緗?/span>閫変腑Use program database鍏佽浣跨敤紼嬪簭鏁版嵁搴擄紝榪欐牱榪炴帴鍣ㄤ細(xì)鎶婅皟璇曚俊鎭斁鍦ㄧ▼搴忔暟鎹簱涓紝濡傛灉涓嶉変腑璇ラ夐」錛岄偅涔堜篃涓嶈兘浣跨敤閫掑榪炴帴鏂瑰紡銆侳orce File Output 錛?/span>鍗充嬌鏌愪釜妯″潡寮曠敤浜嗕竴浜涙湭瀹氫箟鎴栬呴噸澶嶅畾涔夌殑絎﹀彿錛岃繛鎺ュ櫒浠嶇劧浼?span lang=ZH-CN>寮哄埗錛堜絾涓嶄竴瀹氳兘姝g‘榪愯錛?span lang=ZH-CN>浜х敓杈撳嚭鏂囦歡錛?/span>EXE鎴?/span>DLL錛夛紱Print Progress Messages錛屽彲浠ュ皢榪炴帴榪囩▼涓殑榪涘害淇℃伅杈撳嚭鍒?/span>Output紿楀彛銆?/font>

  

3. Debug錛?/span>璁劇疆鏄惁鐢熸垚璋冭瘯淇℃伅錛屼互鍙?qiáng)璋冭瘯淇℃伅鐨勬牸寮忋傛牸寮忓彲浠ユ湁Microsoft Format銆?/span>COFF Format錛?/span>Common Object File Format錛夊拰Both Formats錛堜袱縐嶉兘鏈?span lang=ZH-CN>錛変笁縐嶉夋嫨錛?/span>Separate Types錛岃〃紺哄皢Debug鏍煎紡淇℃伅浠ョ嫭绔嬬殑.PDB鏂囦歡瀛樻斁錛岃繕鏄洿鎺ユ斁鍦ㄥ悇涓簮鏂囦歡鐨?/span>.PDB鏂囦歡涓傞変腑鐨勮瘽錛岃〃紺洪噰鐢ㄥ悗鑰呯殑鏂瑰紡錛岃繖縐嶆柟寮忚皟璇曞惎鍔ㄦ瘮杈冨揩銆?/font>

4Input錛?/span>榪欓噷鍙互鎸囧畾瑕佽繛鎺ョ殑搴撴枃浠訛紝鏀懼純榪炴帴鐨勫簱鏂囦歡銆傝繕鍙互澧炲姞棰濆鐨勫簱鏂囦歡鐩綍錛屼竴鑸槸鐩稿浜庢湰欏圭洰鐨勭洰褰曪紝濡?/span>..\Lib銆?/span>Force Symbol References錛屽彲浠ユ寚瀹氳繛鎺ョ壒瀹氱鍙峰畾涔夌殑搴撱?/span> 濡?鍦?#8220;Object/library   Modules:”涓嬮潰鐨勭紪杈戞涓緭鍏ワ細(xì)“TestDll.lib”錛涘湪“Additional   library   path:”涓嬮潰鐨勭紪杈戞涓緭鍏ワ細(xì)“C:\bin”銆傚彲鐢╓orkspace鍙︿竴涓伐紼嬬紪璇戠殑闈欐佸簱

5.Output錛?/span>Base Address鍙互鏀瑰彉紼嬪簭榛樿鐨勫熀鍦板潃錛?/span>EXE鏂囦歡榛樿涓?/span>0x400000錛?/span>DLL榛樿涓?/span>0x10000000錛夛紝鎿嶄綔緋葷粺瑁呰澆涓涓▼搴忔椂鎬繪槸璇曠潃鍏堜粠榪欎釜鍩哄湴鍧寮濮嬨?/span>Entry-Point Symbol鍙互鎸囧畾紼嬪簭鐨勫叆鍙e湴鍧錛屼竴鑸負(fù)涓涓嚱鏁板悕錛堜笖蹇呴』閲囩敤__stdcall璋冪敤綰﹀畾錛夈備竴鑸?/span>Win32鐨勭▼搴忥紝EXE鐨勫叆鍙d負(fù)WinMain錛?/span>DLL鐨勫叆鍙d負(fù)DllEntryPoint錛涙渶濂借榪炴帴鍣ㄨ嚜鍔ㄨ緗▼搴忕殑鍏ュ彛鐐廣傞粯璁ゆ儏鍐典笅錛岄氳繃涓涓?/span>C鐨勮繍琛屾椂搴撳嚱鏁版潵瀹炵幇錛氭帶鍒跺彴紼嬪簭閲囩敤mainCRTStartup (鎴?/span>wmainCRTStartup)鍘昏皟鐢ㄧ▼搴忕殑main (鎴?/span>wmain)鍑芥暟錛?/span>Windows紼嬪簭閲囩敤WinMainCRTStartup (鎴?/span> wWinMainCRTStartup)璋冪敤紼嬪簭鐨?/span>WinMain (鎴?/span> wWinMain錛屽繀欏婚噰鐢?/span>__stdcall璋冪敤綰﹀畾)錛?/span>DLL閲囩敤_DllMainCRTStartup璋冪敤DllMain鍑芥暟錛堝繀欏婚噰鐢?/span>__stdcall璋冪敤綰﹀畾錛夈?/span>Stack allocations錛岀敤浠ヨ緗▼搴忎嬌鐢ㄧ殑鍫嗘爤澶у皬錛堣浣跨敤鍗佽繘鍒訛級(jí)錛岄粯璁や負(fù)1鍏嗗瓧鑺傘?/span>Version Information鍛婅瘔榪炴帴鍣ㄥ湪EXE鎴?/span>DLL鏂囦歡鐨勫紑濮嬮儴鍒嗘斁涓婄増鏈彿銆?/span>涓鑸儏鍐典笅閮戒笉鐢ㄦ敼鍙樸?/font>

 

鍊煎緱娉ㄦ剰鐨勬槸錛屼笂闈㈠悇涓弬鏁版槸澶у皬鍐欐晱鎰熺殑錛涘湪鍙傛暟鍚庡姞涓?#8220;-”琛ㄧず璇ュ弬鏁版棤鏁堬紱鍚勪釜鍙傛暟鍊奸夐」鏈?#8220;*”鐨勮〃紺轟負(fù)璇ュ弬鏁扮殑榛樿鍊鹼紱鍙互浣跨敤欏靛彸涓婅鐨?#8220;Reset”鎸夐挳鏉ユ仮澶嶈欏電殑鎵鏈夐粯璁よ緗?/font>

 

9)Resources閫夐」鍗?/strong>  Resources閫夐」鍗℃帶鍒剁潃VC6鐨勮祫婧愮紪璇戝櫒銆傚鍥?-5鎵紺猴紝鎴戜滑鍙互鎸囧畾緙栬瘧鍚庣敓鎴愮殑璧勬簮鏂囦歡鐨勮礬寰勶紝璧勬簮鐨勮璦綾誨瀷錛屼互鍙?qiáng)棰濆鐨勮祫婧愬寘鍚洰褰曘?/font>

 MIDL閫夐」鍗?榪欎釜閫夐」鍗′笌COM錛堢粍浠跺璞℃ā鍨嬶級(jí)緙栫▼鏈夊叧錛屾垜浠笉璁ㄨ瀹冦?/font>

10)Browse Info閫夐」鍗?鍦ㄨ繖涓夐」鍗′腑錛屾垜浠彲浠ユ寚瀹氭槸鍚﹀湪寤虹珛宸ョ▼鐨勫悓鏃朵篃鐢熸垚嫻忚淇℃伅鏂囦歡錛屾湁浜嗚繖涓枃浠跺悗錛屾垜浠氨鑳藉鍦ㄦ枃鏈紪杈戝櫒涓氳繃鍏寵仈鑿滃崟鐨勭浉搴斿懡浠ゅ揩閫熷畾浣嶅埌鏌愪釜絎﹀彿鐨勫畾涔夋垨寮曠敤鐨勫湴鏂廣?/font>

11)Pre-link step

榪欎釜閫夐」鍗$敤浜庢坊鍔犲湪榪炴帴涔嬪墠瑕佹墽琛岀殑鍛戒護(hù)銆?/font>

l2) Post-build step

榪欎釜閫夐」鍗$敤浜庢坊鍔犲湪宸ョ▼寤虹珛瀹屾瘯涔嬪悗瑕佹墽琛岀殑鍛戒護(hù) 濡?“copy debug\TestDll.lib C:\bin\TestDll.lib” 騫跺湪C鐩樹笅寤轟竴涓猙in鐩綍 鍋氱殑浠朵簨鎯呭氨鏄妸TestDLL.lib鎷瘋礉鍒癈:\bin鎵鍦ㄧ殑鏂囦歡澶逛腑

鍏跺畠涓浜涘弬鏁拌緗?/font>銆?/font>

  

13) Project->Settings->General錛屽彲浠ヨ緗繛鎺?/span>MFC搴撶殑鏂瑰紡錛堥潤鎬佹垨鍔ㄦ侊級(jí)銆傚鏋滄槸鍔ㄦ佽繛鎺ワ紝鍦ㄤ綘鐨勮蔣浠跺彂甯冩椂涓嶈蹇樹簡甯︿笂MFC鐨?/span>DLL銆?/span>絎簩涓夐」鐢ㄤ簬鎸囧畾鍦ㄧ紪璇戣繛鎺ヨ繃紼嬩腑鐢熸垚鐨勪腑闂存枃浠跺拰杈撳嚭鏂囦歡鐨勫瓨鏀劇洰褰曪紝瀵逛簬璋冭瘯鐗堟湰鏉ヨ錛岀己鐪佺殑鐩綍鏄伐紼嬩笅闈㈢殑“Debug”瀛愮洰褰曘傛渶涓嬮潰鐨勭涓変釜閫夐」鐢ㄤ簬鎸囧畾鏄惁鍏佽姣忕宸ョ▼閰嶇疆閮芥湁鑷繁鐨勬枃浠朵緷璧栧叧緋伙紙涓昏鎸囧ご鏂囦歡錛夛紝鐢變簬緇濆ぇ澶氭暟宸ョ▼鐨勮皟璇曠増鏈拰鍙戝竷鐗堟湰閮藉叿鏈夌浉鍚岀殑鏂囦歡渚濊禆鍏崇郴錛屾墍浠ラ氬父涓嶉渶瑕佹洿鏀硅閫夐」銆?/font>

14) Project->Settings->Debug錛屽彲浠ヨ緗皟璇曟椂榪愯鐨勫彲鎵ц鏂囦歡錛?/span>濡傛灉姝e湪緙栧啓鐨勭▼搴忔槸涓涓狣LL錛岄偅涔堝簲鍦ㄦ澶勬寚瀹氫竴涓敤鏉ヨ皟璇曡DLL鐨凟XE鏂囦歡銆傚彟澶栦笁涓夐」鍙互鎸囧畾鐢ㄤ簬璋冭瘯鐨勫伐浣滅洰褰曪紝寮濮嬭皟璇曟椂緇欑▼搴忎紶閫佺殑鍛戒護(hù)琛屽弬鏁幫紝浠ュ強(qiáng)榪涜榪滅▼璋冭瘯鏃跺彲鎵ц鏂囦歡鐨勮礬寰勩傛妸綾誨埆鍒囨崲鍒癆dditional DLLs鍚庯紝鎴戜滑鍙互鎸囧畾鍦ㄥ紑濮嬭皟璇曟椂鏄惁涓轟竴浜涢澶栫殑DLL瑁呰澆璋冭瘯絎﹀彿淇℃伅錛屽彧鏈夎杞戒簡絎﹀彿淇℃伅鍚庢墠鑳借窡韙繘DLL銆?/font>

15)Project->Settings->Custom Build錛屽彲浠ヨ緗紪璇?/span>/榪炴帴鎴愬姛鍚庤嚜鍔ㄦ墽琛屼竴浜涙搷浣溿傛瘮杈冩湁鐢ㄧ殑鏄紝鍐?/span>COM鏃跺笇鏈?/span>VC瀵圭紪璇戦氳繃鐨?/span>COM鏂囦歡鑷姩娉ㄥ唽錛屽彲浠ュ涓嬭緗細(xì)

Description: Register COM

Commands: regsvr32 /s /c $(TargetPath)

echo regsvr32 exe.time > $(TargetDir)\$(TargetName).trg

Outputs: $(TargetDir)\$(TargetName).trg

16)Tools->Options->Directories錛岃緗郴緇熺殑Include銆?/span>Library璺緞銆?/font>

 

涓浜涘皬紿嶉棬

1) 鏈夋椂鍊欙紝浣犲彲鑳藉湪緙栬瘧鐨勬椂鍊欙紝璁$畻鏈虹獊鐒墮潪娉曞叧鏈轟簡錛堝彲鑳芥煇浜轟笉灝忓績紕?lì)C簡鐢墊簮鎴栦綘鐨勫唴瀛樹笉紼沖畾絳夊師鍥狅級(jí)銆傚綋浣犻噸鍚満鍣ㄥ悗鎵撳紑鍒氭墠鐨勯」鐩紝閲嶆柊榪涜緙栬瘧錛屽彂鐜?/span>VC浼?xì)宕╂帀銆備綘鎴栬浠ヤ負(fù)浣犵殑VC緙栬瘧鍣ㄥ潖浜嗭紝鍏跺疄涓嶇劧錛堜綘璇曡瘯緙栬瘧鍏跺畠欏圭洰錛岃繕鏄ソ鐨勶紒錛夛紝浣犲彧瑕佸皢欏圭洰鐨?/span>.ncb銆?/span>.opt銆?/span>.aps銆?/span>.clw鏂囦歡浠ュ強(qiáng)Debug銆?/span>Release鐩綍涓嬬殑鎵鏈夋枃浠墮兘鍒犳帀錛岀劧鍚庨噸鏂扮紪璇戝氨琛屼簡銆?/span> 

2) 濡傛灉浣犳兂涓庡埆浜哄叡浜綘鐨勬簮浠g爜欏圭洰錛屼絾鏄妸鏁翠釜欏圭洰鍋氭嫹璐濆張澶ぇ銆備綘瀹屽叏鍙互鍒犳帀浠ヤ笅鏂囦歡錛?/span>.dsw銆?/span>.ncb銆?/span>.opt銆?/span>.aps銆?/span>.clw銆?/span>. plg鏂囦歡浠ュ強(qiáng)Debug銆?/span>Release鐩綍涓嬬殑鎵鏈夋枃浠躲?/font>

3) 褰撲綘鐨?/span>Workspace涓寘鍚涓?/span>Project鐨勬椂鍊欙紝浣犲彲鑳戒笉鑳界洿瑙傚湴銆佷竴鐪肩湅鍑烘潵鍝釜鏄綋鍓嶉」鐩傚彲浠ュ涓嬭緗細(xì)Tools->Options->Format錛岀劧鍚庡湪Category涓夋嫨Workspace window錛屾敼鍙樺叾榛樿鐨勫瓧浣擄紙姣斿璁炬垚Fixedsys錛夊氨琛屼簡銆?/font>

4) 濡備綍緇欏凡鏈夌殑Project鏀瑰悕瀛楋紵灝嗚Project鍏蟲帀銆傜劧鍚庝互鏂囨湰鏍煎紡鎵撳紑.dsp鏂囦歡錛屾浛鎹㈠師鏉ョ殑Project鍚嶅瓧鍗沖彲銆?/font>

5) VC6瀵圭被鎴愬憳鐨勬櫤鑳芥彁紺哄姛鑳藉緢鏈夌敤錛屼絾鏈夋椂鍊欎細(xì)澶辯伒銆備綘鍙互鍏堝叧鎺夐」鐩紝灝?/span>.clw鍜?/span>.ncb鍒犳帀錛岀劧鍚庨噸鏂版墦寮欏圭洰錛岀偣鍑昏彍鍗曢」View->ClassWizard錛屽湪寮瑰嚭鐨勫璇濇涓寜涓涓?#8220;Add All”鎸夐挳錛涢噸鏂?/span>Rebuild All銆傚簲璇ュ彲浠ヨВ鍐抽棶棰樸?/font>

闄?

VC鏂囦歡鎵╁睍鍚嶈В璇誨ぇ鍏?/font>

.APS錛氬瓨鏀句簩榪涘埗璧勬簮鐨勪腑闂存枃浠訛紝VC鎶婂綋鍓嶈祫婧愭枃浠惰漿鎹㈡垚浜岃繘鍒舵牸寮忥紝騫跺瓨鏀懼湪APS鏂囦歡涓紝浠ュ姞蹇祫婧愯杞介熷害銆傝祫婧愯緟鍔╂枃浠躲?/font>

.BMP錛氫綅鍥捐祫婧愭枃浠躲?/font>

.BSC錛氭祻瑙堜俊鎭枃浠訛紝鐢辨祻瑙堜俊鎭淮鎶ゅ伐鍏鳳紙BSCMAKE錛変粠鍘熷嫻忚淇℃伅鏂囦歡錛?SBR錛変腑鐢熸垚錛孊SC鏂囦歡鍙互鐢ㄦ潵鍦ㄦ簮浠g爜緙栬緫紿楀彛涓繘琛屽揩閫熷畾浣嶃傜敤浜庢祻瑙堥」鐩俊鎭殑錛屽鏋滅敤source brower鐨勮瘽灝卞繀欏繪湁榪欎釜鏂囦歡銆傚彲浠ュ湪project options閲屽幓鎺塆enerate Browse Info File錛岃繖鏍峰彲浠ュ姞蹇紪璇戣繘搴︺?/font>

.C錛氱敤C璇█緙栧啓鐨勬簮浠g爜鏂囦歡銆?/font>

.CLW錛欳lassWizard鐢熸垚鐨勭敤鏉ュ瓨鏀劇被淇℃伅鐨勬枃浠躲俢lasswizard淇℃伅鏂囦歡錛宨ni鏂囦歡鐨勬牸寮忋?/font>

.CNT錛氱敤鏉ュ畾涔夊府鍔╂枃浠朵腑“Contents”鐨勭粨鏋勩?/font>

.CPP鎴?CXX錛氱敤C++璇█緙栧啓鐨勬簮浠g爜鏂囦歡銆?/font>

.CUR錛氬厜鏍囪祫婧愭枃浠躲?/font>

.DEF錛氭ā鍧楀畾涔夋枃浠訛紝渚涚敓鎴愬姩鎬侀摼鎺ュ簱鏃朵嬌鐢ㄣ?/font>

.DLG錛氬畾涔夊璇濇璧勬簮鐨勭嫭绔嬫枃浠躲傝繖縐嶆枃浠跺浜嶸C宸ョ▼鏉ヨ騫墮潪蹇呴渶錛屽洜涓篤C涓鑸妸瀵硅瘽妗嗚祫婧愭斁鍦?RC璧勬簮瀹氫箟鏂囦歡涓?/font>

.DSP錛歏C寮鍙戠幆澧冪敓鎴愮殑宸ョ▼鏂囦歡錛孷C4鍙?qiáng)浠ュ墠鐗堟湰鋴社敤MAK鏂囦歡鏉ュ畾涔夊伐紼嬨傞」鐩枃浠訛紝鏂囨湰鏍煎紡銆?/font>

.DSW錛歏C寮鍙戠幆澧冪敓鎴愮殑WorkSpace鏂囦歡錛岀敤鏉ユ妸澶氫釜宸ョ▼緇勭粐鍒頒竴涓猈orkSpace涓傚伐浣滃尯鏂囦歡錛屼笌.dsp宸笉澶氥?/font>

.EXP錛氱敱LIB宸ュ叿浠嶥EF鏂囦歡鐢熸垚鐨勮緭鍑烘枃浠訛紝鍏朵腑鍖呭惈浜嗗嚱鏁板拰鏁版嵁欏圭洰鐨勮緭鍑轟俊鎭紝LINK宸ュ叿灝嗕嬌鐢‥XP鏂囦歡鏉ュ垱寤哄姩鎬侀摼鎺ュ簱銆傚彧鏈夊湪緙栬瘧DLL鏃舵墠浼?xì)鐢熸垚锛岃褰曚簡DLL鏂囦歡涓殑涓浜涗俊鎭?/font>

.H銆?HPP鎴?HXX錛氱敤C/C++璇█緙栧啓鐨勫ご鏂囦歡錛岄氬父鐢ㄦ潵瀹氫箟鏁版嵁綾誨瀷錛屽0鏄庡彉閲忋佸嚱鏁般佺粨鏋勫拰綾匯?/font>

.HLP錛歐indows甯姪鏂囦歡銆?/font>

.HM錛氬湪Help宸ョ▼涓紝璇ユ枃浠跺畾涔変簡甯姪鏂囦歡涓庡璇濇銆佽彍鍗曟垨鍏跺畠璧勬簮涔嬮棿ID鍊肩殑瀵瑰簲鍏崇郴銆?/font>

.HPJ錛氱敱Help Workshop鐢熸垚鐨凥elp宸ョ▼鏂囦歡錛岀敤鏉ユ帶鍒禜elp鏂囦歡鐨勭敓鎴愯繃紼嬨?/font>

.HPG錛岀敓鎴愬府鍔╃殑鏂囦歡鐨勫伐紼嬨?/font>

.ICO錛氬浘鏍囪祫婧愭枃浠躲?/font>

.ILK錛氳繛鎺ヨ繃紼嬩腑鐢熸垚鐨勪竴縐嶄腑闂存枃浠訛紝鍙緵LINK宸ュ叿浣跨敤銆?/font>

.INI錛氶厤緗枃浠躲?/font>

.LIB錛氬簱鏂囦歡錛孡INK宸ュ叿灝嗕嬌鐢ㄥ畠鏉ヨ繛鎺ュ悇縐嶈緭鍏ュ簱錛屼互渚挎渶緇堢敓鎴怑XE鏂囦歡銆?/font>

.LIC錛氱敤鎴瘋鍙瘉涔︽枃浠訛紝浣跨敤鏌愪簺ActiveX鎺т歡鏃墮渶瑕佽鏂囦歡銆?/font>

.MAK錛氬嵆MAKE鏂囦歡錛孷C4鍙?qiáng)浠ュ墠鐗堟湰鋴社敤鐨勫伐绋嬫枃錃g錛岀敤鏉ユ寚瀹氬浣曞緩绔嬩竴涓伐紼嬶紝VC6鎶奙AK鏂囦歡杞崲鎴怐SP鏂囦歡鏉ュ鐞嗐?/font>

.MAP錛氱敱LINK宸ュ叿鐢熸垚鐨勪竴縐嶆枃鏈枃浠訛紝鍏朵腑鍖呭惈鏈夎榪炴帴鐨勭▼搴忕殑鏌愪簺淇℃伅錛屼緥濡傜▼搴忎腑鐨勭粍淇℃伅鍜屽叕鍏辯鍙蜂俊鎭瓑銆傛墽琛屾枃浠剁殑鏄犲儚淇℃伅璁板綍鏂囦歡銆?/font>

.MDP錛氭棫鐗堟湰鐨勯」鐩枃浠訛紝鐩稿綋浜?dsp

.NCB錛歂CB鏄?#8220;No Compile Browser”鐨勭緝鍐欙紝鍏朵腑瀛樻斁浜嗕緵ClassView銆乄izardBar鍜孋omponent Gallery浣跨敤鐨勪俊鎭紝鐢盫C寮鍙戠幆澧冭嚜鍔ㄧ敓鎴愩傛棤緙栬瘧嫻忚鏂囦歡銆傚綋鑷姩瀹屾垚鍔熻兘鍑洪棶棰樻椂鍙互鍒犻櫎姝ゆ枃浠躲傜紪璇戝伐紼嬪悗浼?xì)鑷姩鐢熸垚銆?/font>

.OBJ錛氱敱緙栬瘧鍣ㄦ垨姹囩紪宸ュ叿鐢熸垚鐨勭洰鏍囨枃浠訛紝鏄ā鍧楃殑浜岃繘鍒朵腑闂存枃浠躲?/font>

.ODL錛氱敤瀵硅薄鎻忚堪璇█緙栧啓鐨勬簮浠g爜鏂囦歡錛孷C鐢ㄥ畠鏉ョ敓鎴怲LB鏂囦歡銆?/font>

.OLB錛氬甫鏈夌被鍨嬪簱璧勬簮鐨勪竴縐嶇壒孌婄殑鍔ㄦ侀摼鎺ュ簱錛屼篃鍙璞″簱鏂囦歡銆?/font>

.OPT錛歏C寮鍙戠幆澧冭嚜鍔ㄧ敓鎴愮殑鐢ㄦ潵瀛樻斁W(wǎng)orkSpace涓悇縐嶉夐」鐨勬枃浠躲傚伐紼嬪叧浜庡紑鍙戠幆澧冪殑鍙傛暟鏂囦歡銆傚宸ュ叿鏉′綅緗俊鎭瓑銆?/font>

.PBI銆?PBO鍜?PBT錛氱敱VC鐨勬ц兘鍒嗘瀽宸ュ叿PROFILE鐢熸垚騫朵嬌鐢ㄧ殑涓夌鏂囦歡銆?/font>

.PCH錛氶緙栬瘧澶存枃浠訛紝姣旇緝澶э紝鐢辯紪璇戝櫒鍦ㄥ緩绔嬪伐紼嬫椂鑷姩鐢熸垚錛屽叾涓瓨鏀炬湁宸ョ▼涓凡緇忕紪璇戠殑閮ㄥ垎浠g爜錛屽湪浠ュ悗寤虹珛宸ョ▼鏃朵笉鍐嶉噸鏂扮紪璇戣繖浜涗唬鐮侊紝浠ヤ究鍔犲揩鏁翠釜緙栬瘧榪囩▼鐨勯熷害銆?/font>

.PDB錛氱▼搴忔暟鎹簱鏂囦歡錛屽湪寤虹珛宸ョ▼鏃惰嚜鍔ㄧ敓鎴愶紝鍏朵腑瀛樻斁紼嬪簭鐨勫悇縐嶄俊鎭紝鐢ㄦ潵鍔犲揩璋冭瘯榪囩▼鐨勯熷害銆傝褰曚簡紼嬪簭鏈夊叧鐨勪竴浜涙暟鎹拰璋冭瘯淇℃伅銆?/font>

.PLG錛氱紪璇戜俊鎭枃浠訛紝緙栬瘧鏃剁殑error鍜寃arning淇℃伅鏂囦歡銆?/font>

.RC錛氳祫婧愬畾涔夋枃浠躲?/font>

.RC2錛氳祫婧愬畾涔夋枃浠訛紝渚涗竴浜涚壒孌婃儏鍐典笅浣跨敤銆?/font>

.REG錛氭敞鍐岃〃淇℃伅鏂囦歡銆?/font>

.RES錛氫簩榪涘埗璧勬簮鏂囦歡錛岃祫婧愮紪璇戝櫒緙栬瘧璧勬簮瀹氫箟鏂囦歡鍚庡嵆鐢熸垚RES鏂囦歡銆?/font>

.RTF錛歊ich Text Format錛堜赴瀵屾枃鏈牸寮忥級(jí)鏂囨。錛屽彲鐢盬ord鎴栧啓瀛楁澘鏉ュ垱寤猴紝甯歌鐢ㄦ潵鐢熸垚Help鏂囦歡銆?/font>

.SBR錛歏C緙栬瘧鍣ㄤ負(fù)姣忎釜OBJ鏂囦歡鐢熸垚鐨勫師濮嬫祻瑙堜俊鎭枃浠訛紝嫻忚淇℃伅緇存姢宸ュ叿錛圔SCMAKE錛夊皢鍒╃敤SBR鏂囦歡鏉ョ敓鎴怋SC鏂囦歡銆?/font>

.TLB錛歄LE搴撴枃浠訛紝鍏朵腑瀛樻斁浜哋LE鑷姩鍖栧璞$殑鏁版嵁綾誨瀷銆佹ā鍧楀拰鎺ュ彛瀹氫箟錛岃嚜鍔ㄥ寲鏈嶅姟鍣ㄩ氳繃TLB鏂囦歡灝辮兘浜嗚В鑷姩鍖栧璞$殑浣跨敤鏂規(guī)硶銆?/font>

.WAV錛氬0闊寵祫婧愭枃浠躲?/font>



]]>
Select妯″瀷http://www.shnenglu.com/xpzhou/archive/2007/04/25/22786.html姒曟爲(wèi)钘?/dc:creator>姒曟爲(wèi)钘?/author>Wed, 25 Apr 2007 01:09:00 GMThttp://www.shnenglu.com/xpzhou/archive/2007/04/25/22786.htmlhttp://www.shnenglu.com/xpzhou/comments/22786.htmlhttp://www.shnenglu.com/xpzhou/archive/2007/04/25/22786.html#Feedback0http://www.shnenglu.com/xpzhou/comments/commentRss/22786.htmlhttp://www.shnenglu.com/xpzhou/services/trackbacks/22786.html濂楁帴瀛楁ā寮忥細(xì)闃誨濂楁帴瀛楀拰闈為樆濉炲鎺ュ瓧銆傛垨鑰呭彨鍚屾濂楁帴瀛楀拰寮傛濂楁帴瀛椼?br>濂楁帴瀛楁ā鍨嬶細(xì)鎻忚堪濡備綍瀵瑰鎺ュ瓧鐨処/O琛屼負(fù)榪涜綆$悊銆?br>Winsock鎻愪緵鐨処/O妯″瀷涓鍏辨湁浜旂錛?br>select,WSAAsyncSelect,WSAEventSelect,Overlapped,Completion銆備粖澶╁厛璁茶Вselect銆?br>
1錛歴elect妯″瀷錛堥夋嫨妯″瀷錛?br>鍏堢湅涓涓嬩笅闈㈢殑榪欏彞浠g爜錛?br>int iResult = recv(s, buffer,1024);
榪欐槸鐢ㄦ潵鎺ユ敹鏁版嵁鐨勶紝鍦ㄩ粯璁ょ殑闃誨妯″紡涓嬬殑濂楁帴瀛楅噷錛宺ecv浼?xì)闃诲鍦ㄩ偅閲屽Q岀洿鍒板鎺ュ瓧榪炴帴涓婃湁鏁版嵁鍙錛屾妸鏁版嵁璇誨埌buffer閲屽悗recv鍑芥暟鎵嶄細(xì)榪斿洖錛屼笉鐒跺氨浼?xì)涓鐩撮樆濉炲湪閭i噷銆傚湪鍗曠嚎紼嬬殑紼嬪簭閲屽嚭鐜拌繖縐嶆儏鍐典細(xì)瀵艱嚧涓葷嚎紼嬶紙鍗曠嚎紼嬬▼搴忛噷鍙湁涓涓粯璁ょ殑涓葷嚎紼嬶級(jí)琚樆濉?榪欐牱鏁翠釜紼嬪簭琚攣姝誨湪榪欓噷錛屽鏋滄案榪滄病鏁版嵁鍙戦佽繃鏉ワ紝閭d箞紼嬪簭灝變細(xì)琚案榪滈攣姝匯傝繖涓棶棰樺彲浠ョ敤澶氱嚎紼嬭В鍐籌紝浣嗘槸鍦ㄦ湁澶氫釜濂楁帴瀛楄繛鎺ョ殑鎯呭喌涓嬶紝榪欎笉鏄竴涓ソ鐨勯夋嫨錛屾墿灞曟у緢宸係elect妯″瀷灝辨槸涓轟簡瑙e喅榪欎釜闂鑰屽嚭鐜扮殑銆?br>鍐嶇湅浠g爜錛?br>
int iResult = ioctlsocket(s, FIOBIO, (unsigned long *)&ul);
iResult = recv(s, buffer,1024);

榪欎竴嬈ecv鐨勮皟鐢ㄤ笉綆″鎺ュ瓧榪炴帴涓婃湁娌℃湁鏁版嵁鍙互鎺ユ敹閮戒細(xì)椹笂榪斿洖銆傚師鍥犲氨鍦ㄤ簬鎴戜滑鐢╥octlsocket鎶婂鎺ュ瓧璁劇疆涓洪潪闃誨妯″紡浜嗐備笉榪囦綘璺熻釜涓涓嬪氨浼?xì)鍙戠帋图屽湪娌℃湁鏁版嵁鐨勬儏鍐典笅锛宺ecv紜疄鏄┈涓婅繑鍥炰簡錛屼絾鏄篃榪斿洖浜嗕竴涓敊璇細(xì)WSAEWOULDBLOCK錛屾剰鎬濆氨鏄姹傜殑鎿嶄綔娌℃湁鎴愬姛瀹屾垚銆傜湅鍒拌繖閲屽緢澶氫漢鍙兘浼?xì)璇村Q岄偅涔堝氨閲嶅璋冪敤recv騫舵鏌ヨ繑鍥炲鹼紝鐩村埌鎴愬姛涓烘錛屼絾鏄繖鏍峰仛鏁堢巼寰堟垚闂錛屽紑閿澶ぇ銆?br>鎰熻阿澶╂墠鐨勫井杞伐紼嬪笀鍚э紝浠栦滑緇欐垜浠彁渚涗簡濂界殑瑙e喅鍔炴硶銆?br>鍏堢湅鐪媠elect鍑芥暟
int select(
int nfds,
fd_set FAR *readfds,
fd_set FAR *writefds,
fd_set FAR *exceptfds,
const struct timeval FAR *timeout
);
絎竴涓弬鏁頒笉瑕佺錛屼細(xì)琚郴緇熷拷鐣ョ殑銆傜浜屼釜鍙傛暟鏄敤鏉ユ鏌ュ鎺ュ瓧鍙鎬э紝涔熷氨璇存鏌ュ鎺ュ瓧涓婃槸鍚︽湁鏁版嵁鍙錛屽悓鏍鳳紝絎笁涓弬鏁扮敤鏉ユ鏌ユ暟鎹槸鍚﹀彲浠ュ彂鍑恒傛渶鍚庝竴涓槸媯(gè)鏌ユ槸鍚︽湁甯﹀鏁版嵁鍙鍙栥?br>鍙傛暟璇︾粏鐨勬剰鎬濊鍘葷湅MSDN錛岃繖閲岄檺浜庣瘒騫呬笉璇︾粏瑙i噴浜嗐?br>鏈鍚庝竴涓弬鏁版槸鐢ㄦ潵璁劇疆select絳夊緟澶氫箙鐨勶紝鏄釜緇撴瀯錛?br>

struct timeval {
long tv_sec; // seconds
long tv_usec; // and microseconds
};
濡傛灉灝嗚繖涓粨鏋勮緗負(fù)(0,0)錛岄偅涔坰elect鍑芥暟浼?xì)椹笂杩斿洖銆?br>璇翠簡榪欎箞涔咃紝select鐨勪綔鐢ㄥ埌搴曟槸浠涔堬紵
浠栫殑浣滅敤灝辨槸錛氶槻姝㈠湪鍦ㄩ樆濉炴ā寮忕殑濂楁帴瀛楅噷琚攣姝伙紝閬垮厤鍦ㄩ潪闃誨濂楁帴瀛楅噷閲嶅媯(gè)鏌SAEWOULDBLOCK閿欒銆?br>浠栫殑宸ヤ綔嫻佺▼濡備笅錛?br>1錛氱敤FD_ZERO瀹忔潵鍒濆鍖栨垜浠劅鍏磋叮鐨刦d_set錛屼篃灝辨槸select鍑芥暟鐨勭浜屼笁鍥涗釜鍙傛暟銆?br>2錛氱敤FD_SET瀹忔潵灝嗗鎺ュ瓧鍙ユ焺鍒嗛厤緇欑浉搴旂殑fd_set銆?br>3錛氳皟鐢╯elect鍑芥暟銆?br>4錛氱敤FD_ISSET瀵瑰鎺ュ瓧鍙ユ焺榪涜媯(gè)鏌ワ紝濡傛灉鎴戜滑鎵鍏蟲敞鐨勯偅涓鎺ュ瓧鍙ユ焺浠嶇劧鍦ㄥ紑濮嬪垎閰嶇殑閭d釜fd_set閲岋紝閭d箞璇存槑椹笂鍙互榪涜鐩稿簲鐨処O鎿嶄綔銆傛瘮濡備竴涓垎閰嶇粰select絎竴涓弬鏁扮殑濂楁帴瀛楀彞鏌勫湪select榪斿洖鍚庝粛鐒跺湪select絎竴涓弬鏁扮殑fd_set閲岋紝閭d箞璇存槑褰撳墠鏁版嵁宸茬粡鏉ヤ簡錛岄┈涓婂彲浠ヨ鍙栨垚鍔熻屼笉浼?xì)琚樥d銆?br>
涓嬮潰緇欏嚭涓涓畝鍗曠殑select妯″瀷鐨勬湇鍔$濂楁帴瀛椼?br>
#include “iostream.h”
#include “winsock2.h”
#include “windows.h”


#define InternetAddr "127.0.0.1"
#define iPort 5055

#pragma comment(lib, "ws2_32.lib")


void main()
{
銆銆銆銆WSADATA wsa;
銆銆銆銆WSAStartup(MAKEWORD(2,2), &wsa);
銆銆銆銆
銆銆銆銆SOCKET fdServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
銆銆銆銆
銆銆銆銆struct sockaddr_in server;
銆銆銆銆server.sin_family = AF_INET;
銆銆銆銆server.sin_addr.s_addr = inet_addr(InternetAddr);
銆銆銆銆server.sin_port = htons(iPort);
銆銆銆銆
銆銆銆銆int ret = bind(fdServer, (sockaddr*)&server, sizeof(server));
銆銆銆銆ret = listen(fdServer, 4);


銆銆銆銆SOCKET AcceptSocket;
銆銆銆銆fd_set fdread;
銆銆銆銆timeval tv;
銆銆銆銆int nSize;

銆銆銆銆while(1)
銆銆銆銆{
銆銆銆銆銆銆銆銆
銆銆銆銆銆銆銆銆FD_ZERO(&fdread);//鍒濆鍖杅d_set
銆銆銆銆銆銆銆銆FD_SET(fdServer, &fdread);//鍒嗛厤濂楁帴瀛楀彞鏌勫埌鐩稿簲鐨刦d_set
銆銆銆銆銆銆銆銆
銆銆銆銆銆銆銆銆
銆銆銆銆銆銆銆銆tv.tv_sec = 2;//榪欓噷鎴戜滑鎵撶畻璁﹕elect絳夊緟涓ょ鍚庤繑鍥烇紝閬垮厤琚攣姝伙紝涔熼伩鍏嶉┈涓婅繑鍥?br>銆銆銆銆銆銆銆銆tv.tv_usec = 0;
銆銆銆銆銆銆銆銆
銆銆銆銆銆銆銆銆select(0, &fdread, NULL, NULL, &tv);
銆銆銆銆銆銆銆銆
銆銆銆銆銆銆銆銆nSize = sizeof(server);
銆銆銆銆銆銆銆銆if (FD_ISSET(fdServer, &fdread))//濡傛灉濂楁帴瀛楀彞鏌勮繕鍦╢d_set閲岋紝璇存槑瀹㈡埛绔凡緇忔湁connect鐨勮姹傚彂榪囨潵浜嗭紝椹笂鍙互accept鎴愬姛
銆銆銆銆銆銆銆銆{
銆銆銆銆銆銆銆銆銆銆銆銆AcceptSocket = accept(fdServer,( sockaddr*) &server, &nSize);
銆銆銆銆銆銆銆銆銆銆銆銆break;
銆銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆銆
銆銆銆銆銆銆銆銆else//榪樻病鏈夊鎴風(fēng)鐨刢onnect璇鋒眰錛屾垜浠彲浠ュ幓鍋氬埆鐨勪簨錛岄伩鍏嶅儚娌℃湁鐢╯elect鏂瑰紡鐨勯樆濉炲鎺ュ瓧紼嬪簭琚攣姝葷殑鎯呭喌錛屽鏋滄病鐢╯elect,褰撶▼搴忚繍琛屽埌accept鐨勬椂鍊欏鎴風(fēng)鎭板ソ娌℃湁connect璇鋒眰錛岄偅涔堢▼搴忓氨浼?xì)琚攣姝诲Q屽仛涓嶄簡浠諱綍浜嬫儏
銆銆銆銆銆銆銆銆{
銆銆銆銆銆銆銆銆銆銆銆銆//do something
銆銆銆銆銆銆銆銆銆銆銆銆::MessageBox(NULL, "waiting...", "recv", MB_ICONINFORMATION);//鍒殑浜嬪仛瀹屽悗錛岀戶緇幓媯(gè)鏌ユ槸鍚︽湁瀹㈡埛绔繛鎺ヨ姹?br>銆銆銆銆銆銆銆銆}
銆銆銆銆}

銆銆銆銆char buffer[128];
銆銆銆銆ZeroMemory(buffer, 128);

銆銆銆銆ret = recv(AcceptSocket,buffer,128,0);//榪欓噷鍚屾牱鍙互鐢╯elect錛岀敤娉曞拰涓婇潰涓鏍?br>
銆銆銆銆::MessageBox(NULL, buffer, "recv", MB_ICONINFORMATION);

銆銆銆銆closesocket(AcceptSocket);
銆銆銆銆WSACleanup();
銆銆銆銆
銆銆銆銆return;

}

鍩烘湰涓婂氨榪欐牱錛屼釜浜烘劅瑙塻elect妯″瀷鐢ㄥ涓嶆槸寰堝ぇ錛屾垜鍙敤榪囦竴嬈★紝鍘誨勾鍐欑鍙f壂鎻忓櫒鐨勬椂鍊欑敤select鏉ユ鏌ヨ秴鏃躲?br>鎰熻璁插緱涓嶆槸寰堟竻妤氾紝铏界劧涓滆タ鎴戝緢鏄庣櫧錛屼絾鏄璁茶В鍑烘潵璁茶В寰楀緢娓呮鐪熶笉瀹規(guī)槗銆?br>涓嶇煡閬撳ぇ瀹惰兘涓嶈兘鐪嬫噦錛屽鏋滅湅寰楄繃紼嬩腑鏈変粈涔堥棶棰樺氨闂惂銆?br>

]]>
WinSock瀛︿範(fàn)絎旇http://www.shnenglu.com/xpzhou/archive/2007/04/25/22785.html姒曟爲(wèi)钘?/dc:creator>姒曟爲(wèi)钘?/author>Wed, 25 Apr 2007 01:08:00 GMThttp://www.shnenglu.com/xpzhou/archive/2007/04/25/22785.htmlhttp://www.shnenglu.com/xpzhou/comments/22785.htmlhttp://www.shnenglu.com/xpzhou/archive/2007/04/25/22785.html#Feedback0http://www.shnenglu.com/xpzhou/comments/commentRss/22785.htmlhttp://www.shnenglu.com/xpzhou/services/trackbacks/22785.html涓巗ocket鏈夊叧鐨勪竴浜涘嚱鏁頒粙緇?br>
1銆佽鍙栧綋鍓嶉敊璇鹼細(xì)姣忔鍙戠敓閿欒鏃訛紝濡傛灉瑕佸鍏蜂綋闂榪涜澶勭悊錛岄偅涔堝氨搴旇璋冪敤榪欎釜鍑芥暟鍙栧緱閿欒浠g爜銆?
      int  WSAGetLastError(void );
#define h_errno   WSAGetLastError()
閿欒鍊艱鑷繁闃呰Winsock2.h銆?br>
2銆佸皢涓繪満鐨剈nsigned long鍊艱漿鎹負(fù)緗戠粶瀛楄妭欏哄簭(32浣?錛氫負(fù)浠涔堣榪欐牱鍋氬憿錛熷洜涓轟笉鍚岀殑璁$畻鏈轟嬌鐢ㄤ笉鍚岀殑瀛楄妭欏哄簭瀛樺偍鏁版嵁銆傚洜姝や換浣曚粠Winsock鍑芥暟瀵笽P鍦板潃鍜岀鍙e彿鐨勫紩鐢ㄥ拰浼犵粰Winsock鍑芥暟鐨処P鍦板潃鍜岀鍙e彿鍧囨椂鎸夌収緗戠粶欏哄簭緇勭粐鐨勩?br>
      u_long  htonl(u_long hostlong);
涓句緥錛歨tonl(0)=0
htonl(80)= 1342177280
3銆佸皢unsigned long鏁頒粠緗戠粶瀛楄妭欏哄簭杞崲浣嶄富鏈哄瓧鑺傞『搴忥紝鏄笂闈㈠嚱鏁扮殑閫嗗嚱鏁般?
      u_long  ntohl(u_long netlong);
涓句緥錛歯tohl(0)=0
ntohl(1342177280)= 80
4銆佸皢涓繪満鐨剈nsigned short鍊艱漿鎹負(fù)緗戠粶瀛楄妭欏哄簭(16浣?錛氬師鍥犲悓2錛?
      u_short  htons(u_short hostshort);
涓句緥錛歨tonl(0)=0
htonl(80)= 20480
5銆佸皢unsigned short鏁頒粠緗戠粶瀛楄妭欏哄簭杞崲浣嶄富鏈哄瓧鑺傞『搴忥紝鏄笂闈㈠嚱鏁扮殑閫嗗嚱鏁般?
      u_short  ntohs(u_short netshort);
涓句緥錛歯tohs(0)=0
ntohsl(20480)= 80
6銆佸皢鐢ㄧ偣鍒嗗壊鐨処P鍦板潃杞崲浣嶄竴涓猧n_addr緇撴瀯鐨勫湴鍧錛岃繖涓粨鏋勭殑瀹氫箟瑙佺瑪璁?涓)錛屽疄闄呬笂灝辨槸涓涓猽nsigned long鍊箋傝綆楁満鍐呴儴澶勭悊IP鍦板潃鍙槸涓嶈璇嗗192.1.8.84涔嬬被鐨勬暟鎹?
      unsigned long  inet_addr( const char FAR * cp );
涓句緥錛歩net_addr("192.1.8.84")=1409810880
inet_addr("127.0.0.1")= 16777343
濡傛灉鍙戠敓閿欒錛屽嚱鏁拌繑鍥濱NADDR_NONE鍊箋?br>
7銆佸皢緗戠粶鍦板潃杞崲浣嶇敤鐐瑰垎鍓茬殑IP鍦板潃錛屾槸涓婇潰鍑芥暟鐨勯嗗嚱鏁般?
      char FAR *  inet_ntoa( struct in_addr in );
涓句緥錛歝har * ipaddr=NULL;
char addr[20];
in_addr inaddr;
inaddr. s_addr=16777343;
ipaddr= inet_ntoa(inaddr);
strcpy(addr,ipaddr); 
榪欐牱addr鐨勫煎氨鍙樹負(fù)127.0.0.1銆?br>娉ㄦ剰鎰忎笉瑕佷慨鏀硅繑鍥炲兼垨鑰呰繘琛岄噴鏀懼姩浣溿傚鏋滃嚱鏁板け璐ュ氨浼?xì)杩斿洖NULL鍊箋?br>
8銆佽幏鍙栧鎺ュ瓧鐨勬湰鍦板湴鍧緇撴瀯錛?
      int  getsockname(SOCKET s, struct sockaddr FAR * name, int FAR * namelen );
s涓哄鎺ュ瓧
name涓哄嚱鏁拌皟鐢ㄥ悗鑾峰緱鐨勫湴鍧鍊?
namelen涓虹紦鍐插尯鐨勫ぇ灝忋?
9銆佽幏鍙栦笌濂楁帴瀛楃浉榪炵殑绔湴鍧緇撴瀯錛?br>
      int  getpeername(SOCKET s, struct sockaddr FAR * name, int FAR * namelen );
s涓哄鎺ュ瓧
name涓哄嚱鏁拌皟鐢ㄥ悗鑾峰緱鐨勭鍦板潃鍊?
namelen涓虹紦鍐插尯鐨勫ぇ灝忋?
10銆佽幏鍙栬綆楁満鍚嶏細(xì)
      int  gethostname( char FAR * name, int namelen );
name鏄瓨鏀捐綆楁満鍚嶇殑緙撳啿鍖?
namelen鏄紦鍐插尯鐨勫ぇ灝?
鐢ㄦ硶錛?
char szName[255];
memset(szName,0,255);
if(gethostname(szName,255)==SOCKET_ERROR)
{
//閿欒澶勭悊
}
榪斿洖鍊間負(fù)錛歴zNmae="xiaojin"
11銆佹牴鎹綆楁満鍚嶈幏鍙栦富鏈哄湴鍧錛?
      struct hostent FAR *  gethostbyname( const char FAR * name );
name涓鴻綆楁満鍚嶃?
鐢ㄦ硶錛?
hostent * host;
char* ip;
host= gethostbyname("xiaojin");
if(host->h_addr_list[0])
{
struct in_addr addr;
memmove(&addr, host->h_addr_list[0]錛?);
//鑾峰緱鏍囧噯IP鍦板潃
ip=inet_ ntoa (addr);
}
榪斿洖鍊間負(fù)錛歨ostent->h_name="xiaojin"
hostent->h_addrtype=2    //AF_INET
hostent->length=4
ip="127.0.0.1"
Winsock 鐨処/O鎿嶄綔錛?/strong>

1銆?涓ょI/O妯″紡
  • 闃誨妯″紡錛氭墽琛孖/O鎿嶄綔瀹屾垚鍓嶄細(xì)涓鐩磋繘琛岀瓑寰咃紝涓嶄細(xì)灝嗘帶鍒舵潈浜ょ粰紼嬪簭銆傚鎺ュ瓧 榛樿涓洪樆濉炴ā寮忋傚彲浠ラ氳繃澶氱嚎紼嬫妧鏈繘琛屽鐞嗐?
  • 闈為樆濉炴ā寮忥細(xì)鎵цI/O鎿嶄綔鏃訛紝W(xué)insock鍑芥暟浼?xì)杩斿洖迤堜氦鍑烘帶鍒舵潈銆傝繖縐嶆ā寮忎嬌鐢?璧鋒潵姣旇緝澶嶆潅錛屽洜涓哄嚱鏁板湪娌℃湁榪愯瀹屾垚灝辮繘琛岃繑鍥烇紝浼?xì)涓嶆柇鍦皹q斿洖 WSAEWOULDBLOCK閿欒銆備絾鍔熻兘寮哄ぇ銆?/li>
涓轟簡瑙e喅榪欎釜闂錛屾彁鍑轟簡榪涜I/O鎿嶄綔鐨勪竴浜汭/O妯″瀷,涓嬮潰浠嬬粛鏈甯歌鐨勪笁縐嶏細(xì)

2銆乻elect妯″瀷錛?br>
銆銆閫氳繃璋冪敤select鍑芥暟鍙互紜畾涓涓垨澶氫釜濂楁帴瀛楃殑鐘舵侊紝鍒ゆ柇濂楁帴瀛椾笂鏄惁鏈夋暟鎹紝鎴?br>鑰呰兘鍚﹀悜涓涓鎺ュ瓧鍐欏叆鏁版嵁銆?
      int  select( int nfds, fd_set FAR * readfds, fd_set FAR * writefds, 
fd_set FAR *exceptfds, const struct timeval FAR * timeout );
鈼嗗厛鏉ョ湅鐪嬫秹鍙?qiáng)鍒扮殑缁撴瀯鐨勫畾涔夊Q?br>a銆?d_set緇撴瀯錛?br>
#define FD_SETSIZE 64?
typedef struct fd_set {
u_int fd_count; /* how many are SET? */
SOCKET fd_array[FD_SETSIZE]; /* an array of SOCKETs */
} fd_set;      
fd_count涓哄凡璁懼畾socket鐨勬暟閲?br>fd_array涓簊ocket鍒楄〃錛孎D_SETSIZE涓烘渶澶ocket鏁伴噺錛屽緩璁笉灝忎簬64銆傝繖鏄井杞緩
璁殑銆?br>
B銆乼imeval緇撴瀯錛?
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* and microseconds */
};
tv_sec涓烘椂闂寸殑縐掑箋?br>tv_usec涓烘椂闂寸殑姣鍊箋?br>榪欎釜緇撴瀯涓昏鏄緗畇elect()鍑芥暟鐨勭瓑寰呭鹼紝濡傛灉灝嗚緇撴瀯璁劇疆涓?0,0)錛屽垯select()鍑芥暟
浼?xì)绔嬪崒櫩斿洖銆?br>
鈼嗗啀鏉ョ湅鐪媠elect鍑芥暟鍚勫弬鏁扮殑浣滅敤錛?
  1. nfds錛氭病鏈変換浣曠敤澶勶紝涓昏鐢ㄦ潵榪涜緋葷粺鍏煎鐢紝涓鑸緗負(fù)0銆?br>
  2. readfds錛氱瓑寰呭彲璇繪ф鏌ョ殑濂楁帴瀛楃粍銆?br>
  3. writefds錛涚瓑寰呭彲鍐欐ф鏌ョ殑濂楁帴瀛楃粍銆?br>
  4. exceptfds錛氱瓑寰呴敊璇鏌ョ殑濂楁帴瀛楃粍銆?br>
  5. timeout錛氳秴鏃舵椂闂淬?br>
  6. 鍑芥暟澶辮觸鐨勮繑鍥炲鹼細(xì)璋冪敤澶辮觸榪斿洖SOCKET_ERROR,瓚呮椂榪斿洖0銆?/li>
readfds銆亀ritefds銆乪xceptfds涓変釜鍙橀噺鑷沖皯鏈変竴涓笉涓虹┖錛屽悓鏃惰繖涓笉涓虹┖鐨勫鎺ュ瓧緇?br>縐嶈嚦灝戞湁涓涓猻ocket錛岄亾鐞嗗緢綆鍗曪紝鍚﹀垯瑕乻elect騫蹭粈涔堝憿銆?涓句緥錛氭祴璇曚竴涓鎺ュ瓧鏄惁鍙錛?
fd_set fdread;
//FD_ZERO瀹氫箟
// #define FD_ZERO(set) (((fd_set FAR *)(set))->fd_count=0)
FD_ZERO(&fdread);
FD_SET(s,&fdread)錛?//鍔犲叆濂楁帴瀛楋紝璇︾粏瀹氫箟璇風(fēng)湅winsock2.h
if(select(0,%fdread,NULL,NULL,NULL)>0
{
//鎴愬姛
if(FD_ISSET(s,&fread) //鏄惁瀛樺湪fread涓紝璇︾粏瀹氫箟璇風(fēng)湅winsock2.h
{
//鏄彲璇葷殑
}
}

鈼咺/O鎿嶄綔鍑芥暟錛氫富瑕佺敤浜庤幏鍙栦笌濂楁帴瀛楃浉鍏崇殑鎿嶄綔鍙傛暟銆?

 int  ioctlsocket(SOCKET s, long cmd, u_long FAR * argp );     
s涓篒/O鎿嶄綔鐨勫鎺ュ瓧銆?br>cmd涓哄濂楁帴瀛楃殑鎿嶄綔鍛戒護(hù)銆?br>argp涓哄懡浠ゆ墍甯﹀弬鏁扮殑鎸囬拡銆?br>
甯歌鐨勫懡浠わ細(xì)
//紜畾濂楁帴瀛楄嚜鍔ㄨ鍏ョ殑鏁版嵁閲?
#define FIONREAD _IOR(''''f'''', 127, u_long) /* get # bytes to read */
//鍏佽鎴栫姝㈠鎺ュ瓧鐨勯潪闃誨妯″紡錛屽厑璁鎬負(fù)闈?錛岀姝負(fù)0
#define FIONBIO _IOW(''''f'''', 126, u_long) /* set/clear non-blocking i/o */
//紜畾鏄惁鎵鏈夊甫澶栨暟鎹兘宸茶璇誨叆
#define SIOCATMARK _IOR(''''s'''', 7, u_long) /* at oob mark? */
3銆乄SAAsynSelect妯″瀷錛?br>WSAAsynSelect妯″瀷涔熸槸涓涓父鐢ㄧ殑寮傛I/O妯″瀷銆傚簲鐢ㄧ▼搴忓彲浠ュ湪涓涓鎺ュ瓧涓婃帴鏀朵互
WINDOWS娑堟伅涓哄熀紜鐨勭綉緇滀簨浠墮氱煡銆傝妯″瀷鐨勫疄鐜版柟娉曟槸閫氳繃璋冪敤WSAAsynSelect鍑?br>鏁?鑷姩灝嗗鎺ュ瓧璁劇疆涓洪潪闃誨妯″紡錛屽茍鍚慦INDOWS娉ㄥ唽涓涓垨澶氫釜緗戠粶鏃墮棿錛屽茍鎻愪緵涓
涓氱煡鏃朵嬌鐢ㄧ殑紿楀彛鍙ユ焺銆傚綋娉ㄥ唽鐨勪簨浠跺彂鐢熸椂錛屽搴旂殑紿楀彛灝嗘敹鍒頒竴涓熀浜庢秷鎭殑閫氱煡銆?br>
      int  WSAAsyncSelect( SOCKET s, HWND hWnd, u_int wMsg, long lEvent);       
s涓洪渶瑕佷簨浠墮氱煡鐨勫鎺ュ瓧
hWnd涓烘帴鏀舵秷鎭殑紿楀彛鍙ユ焺
wMsg涓鴻鎺ユ敹鐨勬秷鎭?br>lEvent涓烘帺鐮侊紝鎸囧畾搴旂敤紼嬪簭鎰熷叴瓚g殑緗戠粶浜嬩歡緇勫悎錛屼富瑕佸涓嬶細(xì)
#define FD_READ_BIT 0
#define FD_READ (1 << FD_READ_BIT)
#define FD_WRITE_BIT 1
#define FD_WRITE (1 << FD_WRITE_BIT)
#define FD_OOB_BIT 2
#define FD_OOB (1 << FD_OOB_BIT)
#define FD_ACCEPT_BIT 3
#define FD_ACCEPT (1 << FD_ACCEPT_BIT)
#define FD_CONNECT_BIT 4
#define FD_CONNECT (1 << FD_CONNECT_BIT)
#define FD_CLOSE_BIT 5
#define FD_CLOSE (1 << FD_CLOSE_BIT)
鐢ㄦ硶錛氳鎺ユ敹璇誨啓閫氱煡錛?
int nResult= WSAAsyncSelect(s,hWnd,wMsg,FD_READ|FD_WRITE)錛?
if(nResult==SOCKET_ERROR)
{
//閿欒澶勭悊
}
鍙栨秷閫氱煡錛?br>
      int nResult= WSAAsyncSelect(s,hWnd,0錛?)錛?
褰撳簲鐢ㄧ▼搴忕獥鍙Wnd鏀跺埌娑堟伅鏃訛紝wMsg.wParam鍙傛暟鏍囪瘑浜嗗鎺ュ瓧錛宭Param鐨勪綆瀛楁爣鏄?br>浜嗙綉緇滀簨浠訛紝楂樺瓧鍒欏寘鍚敊璇唬鐮併?br>
4銆乄SAEventSelect妯″瀷
WSAEventSelect妯″瀷綾諱技WSAAsynSelect妯″瀷錛屼絾鏈涓昏鐨勫尯鍒槸緗戠粶浜嬩歡鍙戠敓鏃朵細(xì)琚彂
閫佸埌涓涓簨浠跺璞″彞鏌勶紝鑰屼笉鏄彂閫佸埌涓涓獥鍙c?br>
浣跨敤姝ラ濡備笅錛?br>a銆?鍒涘緩浜嬩歡瀵硅薄鏉ユ帴鏀剁綉緇滀簨浠訛細(xì)
#define WSAEVENT HANDLE
#define LPWSAEVENT LPHANDLE
WSAEVENT WSACreateEvent( void );
璇ュ嚱鏁扮殑榪斿洖鍊間負(fù)涓涓簨浠跺璞″彞鏌勶紝瀹冨叿鏈変袱縐嶅伐浣滅姸鎬侊細(xì)宸蹭紶淇?signaled)鍜屾湭浼犱俊
(nonsignaled)浠ュ強(qiáng)涓ょ宸ヤ綔妯″紡錛氫漢宸ラ噸璁?manual reset)鍜岃嚜鍔ㄩ噸璁?auto reset)銆傞粯璁ゆ湭
鏈紶淇$殑宸ヤ綔鐘舵佸拰浜哄伐閲嶈妯″紡銆?br>
b銆佸皢浜嬩歡瀵硅薄涓庡鎺ュ瓧鍏寵仈錛屽悓鏃舵敞鍐屼簨浠訛紝浣夸簨浠跺璞$殑宸ヤ綔鐘舵佷粠鏈紶淇¤漿鍙樻湭
宸蹭紶淇°?br>
      int  WSAEventSelect( SOCKET s,WSAEVENT hEventObject,long lNetworkEvents );  
s涓哄鎺ュ瓧
hEventObject涓哄垰鎵嶅垱寤虹殑浜嬩歡瀵硅薄鍙ユ焺
lNetworkEvents涓烘帺鐮侊紝瀹氫箟濡備笂闈㈡墍榪?br>
c銆両/O澶勭悊鍚庯紝璁劇疆浜嬩歡瀵硅薄涓烘湭浼犱俊
BOOL WSAResetEvent( WSAEVENT hEvent );

Hevent涓轟簨浠跺璞?br>
鎴愬姛榪斿洖TRUE錛屽け璐ヨ繑鍥濬ALSE銆?br>
d銆佺瓑寰呯綉緇滀簨浠舵潵瑙﹀彂浜嬩歡鍙ユ焺鐨勫伐浣滅姸鎬侊細(xì)

DWORD WSAWaitForMultipleEvents( DWORD cEvents,
const WSAEVENT FAR * lphEvents, BOOL fWaitAll,
DWORD dwTimeout, BOOL fAlertable );

lpEvent涓轟簨浠跺彞鏌勬暟緇勭殑鎸囬拡
cEvent涓轟負(fù)浜嬩歡鍙ユ焺鐨勬暟鐩紝鍏舵渶澶у間負(fù)WSA_MAXIMUM_WAIT_EVENTS 
fWaitAll鎸囧畾絳夊緟綾誨瀷錛歍RUE錛氬綋lphEvent鏁扮粍閲嶆墍鏈変簨浠跺璞″悓鏃舵湁淇″彿鏃惰繑鍥烇紱
FALSE錛氫換涓浜嬩歡鏈変俊鍙峰氨榪斿洖銆?br>dwTimeout涓虹瓑寰呰秴鏃訛紙姣錛?br>fAlertable涓烘寚瀹氬嚱鏁拌繑鍥炴椂鏄惁鎵ц瀹屾垚渚嬬▼

瀵逛簨浠舵暟緇勪腑鐨勪簨浠惰繘琛屽紩鐢ㄦ椂錛屽簲璇ョ敤WSAWaitForMultipleEvents鐨勮繑鍥炲鹼紝鍑忓幓
棰勫0鏄庡糤SA_WAIT_EVENT_0錛屽緱鍒板叿浣撶殑寮曠敤鍊箋備緥濡傦細(xì)

nIndex=WSAWaitForMultipleEvents(…);
MyEvent=EventArray[Index- WSA_WAIT_EVENT_0];

e銆佸垽鏂綉緇滀簨浠剁被鍨嬶細(xì)

int WSAEnumNetworkEvents( SOCKET s,
WSAEVENT hEventObject, LPWSANETWORKEVENTS lpNetworkEvents );

s涓哄鎺ュ瓧
hEventObject涓洪渶瑕侀噸璁劇殑浜嬩歡瀵硅薄
lpNetworkEvents涓鴻褰曠綉緇滀簨浠跺拰閿欒浠g爜錛屽叾緇撴瀯瀹氫箟濡備笅錛?/p>

typedef struct _WSANETWORKEVENTS {
long lNetworkEvents;
int iErrorCode[FD_MAX_EVENTS];
} WSANETWORKEVENTS, FAR * LPWSANETWORKEVENTS;

f銆佸叧闂簨浠跺璞″彞鏌勶細(xì)

BOOL WSACloseEvent(WSAEVENT hEvent);

璋冪敤鎴愬姛榪斿洖TRUE錛屽惁鍒欒繑鍥濬ALSE銆?br>



]]>pragma鎸囦護(hù)綆浠?/title><link>http://www.shnenglu.com/xpzhou/archive/2007/04/18/22193.html</link><dc:creator>姒曟爲(wèi)钘?/dc:creator><author>姒曟爲(wèi)钘?/author><pubDate>Wed, 18 Apr 2007 02:24:00 GMT</pubDate><guid>http://www.shnenglu.com/xpzhou/archive/2007/04/18/22193.html</guid><wfw:comment>http://www.shnenglu.com/xpzhou/comments/22193.html</wfw:comment><comments>http://www.shnenglu.com/xpzhou/archive/2007/04/18/22193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/xpzhou/comments/commentRss/22193.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/xpzhou/services/trackbacks/22193.html</trackback:ping><description><![CDATA[鍦ㄧ紪鍐欑▼搴忕殑鏃跺?鎴戜滑緇忓父瑕佺敤鍒?pragma鎸囦護(hù)鏉ヨ瀹氱紪璇戝櫒鐨勭姸鎬佹垨鑰呮槸鎸囩ず緙栬瘧鍣ㄥ畬鎴愪竴浜涚壒瀹氱殑鍔ㄤ綔.<br> 涓嬮潰浠嬬粛浜嗕竴涓嬭鎸囦護(hù)鐨勪竴浜涘父鐢ㄥ弬鏁?甯屾湜瀵瑰ぇ瀹舵湁鎵甯姪! <p> 涓. message 鍙傛暟銆?br> message<br> 瀹冭兘澶熷湪緙栬瘧淇℃伅杈撳嚭紿楀彛涓緭鍑虹浉搴旂殑淇℃伅錛岃繖瀵逛簬婧愪唬鐮佷俊鎭殑鎺у埗鏄潪甯擱噸瑕佺殑銆?/p> <p> 鍏朵嬌鐢ㄦ柟娉曚負(fù)錛?nbsp; #pragma message("娑堟伅鏂囨湰")</p> <p> 褰撶紪璇戝櫒閬囧埌榪欐潯鎸囦護(hù)鏃跺氨鍦ㄧ紪璇戣緭鍑虹獥鍙d腑灝嗘秷鎭枃鏈墦鍗板嚭鏉ャ?br> 褰撴垜浠湪紼嬪簭涓畾涔変簡璁稿瀹忔潵鎺у埗婧愪唬鐮佺増鏈殑鏃跺欙紝鎴戜滑鑷繁鏈夊彲鑳介兘浼?xì)蹇樿鏈夋病鏈夋纭殑璁揪|繖浜涘畯錛屾鏃舵垜浠彲浠ョ敤榪欐潯鎸囦護(hù)鍦ㄧ紪璇戠殑鏃跺欏氨榪涜媯(gè)鏌ャ傚亣璁炬垜浠笇鏈涘垽鏂嚜宸辨湁娌℃湁鍦ㄦ簮浠g爜鐨勪粈涔堝湴鏂瑰畾涔変簡_X86榪欎釜瀹忓彲浠ョ敤涓嬮潰鐨勬柟娉曪細(xì)<br>#ifdef _X86<br>#pragma message("_X86 macro activated!")<br>#endif<br> 褰撴垜浠畾涔変簡_X86榪欎釜瀹忎互鍚庯紝搴旂敤紼嬪簭鍦ㄧ紪璇戞椂灝變細(xì)鍦ㄧ紪璇戣緭鍑虹獥鍙i噷鏄劇ず<br> "_X86 macro activated!"<br> 榪欐牱錛屾垜浠氨涓嶄細(xì)鍥犱負(fù)涓嶈寰楄嚜宸卞畾涔夌殑涓浜涚壒瀹氱殑瀹忚屾姄鑰蟲尃鑵簡銆?/p> <p> 浜? 鍙︿竴涓嬌鐢ㄥ緱姣旇緝澶氱殑#pragma鍙傛暟鏄痗ode_seg銆?br> 鏍煎紡濡傦細(xì)<br> #pragma code_seg( [ [ { push | pop}, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )<br> 璇ユ寚浠ょ敤鏉ユ寚瀹氬嚱鏁板湪.obj鏂囦歡涓瓨鏀劇殑鑺?瑙傚療OBJ鏂囦歡鍙互浣跨敤VC鑷甫鐨刣umpbin鍛戒護(hù)琛岀▼搴?鍑芥暟鍦?obj鏂囦歡涓粯璁ょ殑瀛樻斁鑺備負(fù).text鑺傦紝濡傛灉code_seg娌℃湁甯﹀弬鏁扮殑璇?鍒欏嚱鏁板瓨鏀懼湪.text鑺備腑銆?/p> <p> push (鍙夊弬鏁? 灝嗕竴涓褰曟斁鍒板唴閮ㄧ紪璇戝櫒鐨勫爢鏍堜腑,鍙夊弬鏁板彲浠ヤ負(fù)涓涓爣璇嗙鎴栬呰妭鍚?br> pop(鍙夊弬鏁? 灝嗕竴涓褰曚粠鍫嗘爤欏剁寮瑰嚭,璇ヨ褰曞彲浠ヤ負(fù)涓涓爣璇嗙鎴栬呰妭鍚?br> identifier (鍙夊弬鏁? 褰撲嬌鐢╬ush鎸囦護(hù)鏃?涓哄帇鍏ュ爢鏍堢殑璁板綍鎸囨淳鐨勪竴涓爣璇嗙,褰撹鏍囪瘑絎﹁鍒犻櫎鐨勬椂鍊欏拰鍏剁浉鍏崇殑鍫嗘爤涓殑璁板綍灝嗚寮瑰嚭鍫嗘爤<br>   "segment-name" (鍙夊弬鏁? 琛ㄧず鍑芥暟瀛樻斁鐨勮妭鍚?br> 渚嬪:<br> //榛樿鎯呭喌涓?鍑芥暟琚瓨鏀懼湪.text鑺備腑<br> void func1() {   // stored in .text<br> }</p> <p> //灝嗗嚱鏁板瓨鏀懼湪.my_data1鑺備腑<br> #pragma code_seg(".my_data1")<br> void func2() {   // stored in my_data1<br> }</p> <p> //r1涓烘爣璇嗙,灝嗗嚱鏁版斁鍏?my_data2鑺備腑<br> #pragma code_seg(push, r1, ".my_data2")<br> void func3() {   // stored in my_data2<br> }</p> <p> int main() {<br> }</p> <p> 涓? #pragma once (姣旇緝甯哥敤錛?br> 榪欐槸涓涓瘮杈冨父鐢ㄧ殑鎸囦護(hù),鍙鍦ㄥご鏂囦歡鐨勬渶寮濮嬪姞鍏ヨ繖鏉℃寚浠ゅ氨鑳藉淇濊瘉澶存枃浠惰緙栬瘧涓嬈?/p> <p> 鍥? #pragma hdrstop琛ㄧず棰勭紪璇戝ご鏂囦歡鍒版涓烘錛屽悗闈㈢殑澶存枃浠朵笉榪涜棰勭紪璇戙?br> BCB鍙互棰勭紪璇戝ご鏂囦歡浠ュ姞蹇摼鎺ョ殑閫熷害錛屼絾濡傛灉鎵鏈夊ご鏂囦歡閮借繘琛岄緙栬瘧鍙堝彲鑳藉崰澶紓佺洏絀洪棿錛屾墍浠ヤ嬌鐢ㄨ繖涓夐」鎺掗櫎涓浜涘ご鏂囦歡銆?br> 鏈夋椂鍗曞厓涔嬮棿鏈変緷璧栧叧緋伙紝姣斿鍗曞厓A渚濊禆鍗曞厓B錛屾墍浠ュ崟鍏傿瑕佸厛浜庡崟鍏傾緙栬瘧銆備綘鍙互鐢?pragma startup鎸囧畾緙栬瘧浼樺厛綰э紝濡傛灉浣跨敤浜?pragma package(smart_init) 錛孊CB灝變細(xì)鏍規(guī)嵁浼樺厛綰х殑澶у皬鍏堝悗緙栬瘧銆?/p> <p> 浜? #pragma warning鎸囦護(hù)<br> 璇ユ寚浠ゅ厑璁告湁閫夋嫨鎬х殑淇敼緙栬瘧鍣ㄧ殑璀﹀憡娑堟伅鐨勮涓?br> 鎸囦護(hù)鏍煎紡濡備笅:<br> #pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...]<br> #pragma warning( push[ ,n ] )<br> #pragma warning( pop )</p> <p> 涓昏鐢ㄥ埌鐨勮鍛婅〃紺烘湁濡備笅鍑犱釜:</p> <p> once:鍙樉紺轟竴嬈?璀﹀憡/閿欒絳?娑堟伅<br> default:閲嶇疆緙栬瘧鍣ㄧ殑璀﹀憡琛屼負(fù)鍒伴粯璁ょ姸鎬?br> 1,2,3,4:鍥涗釜璀﹀憡綰у埆<br> disable:紱佹鎸囧畾鐨勮鍛婁俊鎭?br> error:灝嗘寚瀹氱殑璀﹀憡淇℃伅浣滀負(fù)閿欒鎶ュ憡</p> <p> 濡傛灉澶у瀵逛笂闈㈢殑瑙i噴涓嶆槸寰堢悊瑙?鍙互鍙傝冧竴涓嬩笅闈㈢殑渚嬪瓙鍙?qiáng)璇存?/p> <p> #pragma warning( disable : 4507 34; once : 4385; error : 164 )<br> 絳変環(huán)浜庯細(xì)<br> #pragma warning(disable:4507 34)  // 涓嶆樉紺?507鍜?4鍙瘋鍛婁俊鎭?br> #pragma warning(once:4385)   // 4385鍙瘋鍛婁俊鎭粎鎶ュ憡涓嬈?br> #pragma warning(error:164)   // 鎶?64鍙瘋鍛婁俊鎭綔涓轟竴涓敊璇?br> 鍚屾椂榪欎釜pragma warning 涔熸敮鎸佸涓嬫牸寮忥細(xì)<br> #pragma warning( push [ ,n ] )<br> #pragma warning( pop )<br> 榪欓噷n浠h〃涓涓鍛婄瓑綰?1---4)銆?br> #pragma warning( push )淇濆瓨鎵鏈夎鍛婁俊鎭殑鐜版湁鐨勮鍛婄姸鎬併?br> #pragma warning( push, n)淇濆瓨鎵鏈夎鍛婁俊鎭殑鐜版湁鐨勮鍛婄姸鎬侊紝騫朵笖鎶婂叏灞璀﹀憡絳夌駭璁懼畾涓簄銆?br> #pragma warning( pop )鍚戞爤涓脊鍑烘渶鍚庝竴涓鍛婁俊鎭紝鍦ㄥ叆鏍堝拰鍑烘爤涔嬮棿鎵浣滅殑涓鍒囨敼鍔ㄥ彇娑堛備緥濡傦細(xì)<br> #pragma warning( push )<br> #pragma warning( disable : 4705 )<br> #pragma warning( disable : 4706 )<br> #pragma warning( disable : 4707 )<br> #pragma warning( pop )</p> <p> 鍦ㄨ繖孌典唬鐮佺殑鏈鍚庯紝閲嶆柊淇濆瓨鎵鏈夌殑璀﹀憡淇℃伅(鍖呮嫭4705錛?706鍜?707)</p> <p> 鍦ㄤ嬌鐢ㄦ爣鍑咰++榪涜緙栫▼鐨勬椂鍊欑粡甯鎬細(xì)寰楀埌寰堝鐨勮鍛婁俊鎭?鑰岃繖浜涜鍛婁俊鎭兘鏄笉蹇呰鐨勬彁紺?鎵浠ユ垜浠彲浠ヤ嬌鐢?pragma warning(disable:4786)鏉ョ姝㈣綾誨瀷鐨勮鍛婂湪vc涓嬌鐢ˋDO鐨勬椂鍊欎篃浼?xì)寰楀堫C笉蹇呰鐨勮鍛婁俊鎭?榪欎釜鏃跺欐垜浠彲浠ラ氳繃#pragma warning(disable:4146)鏉ユ秷闄よ綾誨瀷鐨勮鍛婁俊鎭?/p> <p> 鍏? pragma comment(...)<br> 璇ユ寚浠ょ殑鏍煎紡涓猴細(xì)  #pragma comment( "comment-type" [, commentstring] )<br> 璇ユ寚浠ゅ皢涓涓敞閲婅褰曟斁鍏ヤ竴涓璞℃枃浠舵垨鍙墽琛屾枃浠朵腑,comment-type(娉ㄩ噴綾誨瀷):鍙互鎸囧畾涓轟簲縐嶉瀹氫箟鐨勬爣璇嗙鐨勫叾涓竴縐嶃?br> 浜旂棰勫畾涔夌殑鏍囪瘑絎︿負(fù):</p> <p> 1銆乧ompiler:灝嗙紪璇戝櫒鐨勭増鏈彿鍜屽悕縐版斁鍏ョ洰鏍囨枃浠朵腑,鏈潯娉ㄩ噴璁板綍灝嗚緙栬瘧鍣ㄥ拷鐣?br>濡傛灉浣犱負(fù)璇ヨ褰曠被鍨嬫彁渚涗簡commentstring鍙傛暟,緙栬瘧鍣ㄥ皢浼?xì)漶旂敓涓涓鍛?br>渚嬪:#pragma comment( compiler )</p> <p> 2銆乪xestr:灝哻ommentstring鍙傛暟鏀懼叆鐩爣鏂囦歡涓?鍦ㄩ摼鎺ョ殑鏃跺欒繖涓瓧絎︿覆灝嗚鏀懼叆鍒板彲鎵ц鏂囦歡涓?褰撴搷浣滅郴緇熷姞杞藉彲鎵ц鏂囦歡鐨勬椂鍊?璇ュ弬鏁板瓧絎︿覆涓嶄細(xì)琚姞杞藉埌鍐呭瓨涓?浣嗘槸,璇ュ瓧絎︿覆鍙互琚玠umpbin涔嬬被鐨勭▼搴忔煡鎵懼嚭騫舵墦鍗板嚭鏉?浣犲彲浠ョ敤榪欎釜鏍囪瘑絎﹀皢鐗堟湰鍙風(fēng)爜涔嬬被鐨勪俊鎭祵鍏ュ埌鍙墽琛屾枃浠朵腑!</p> <p> 3銆乴ib:榪欐槸涓涓潪甯稿父鐢ㄧ殑鍏抽敭瀛?鐢ㄦ潵灝嗕竴涓簱鏂囦歡閾炬帴鍒扮洰鏍囨枃浠朵腑甯哥敤鐨刲ib鍏抽敭瀛楋紝鍙互甯垜浠繛鍏ヤ竴涓簱鏂囦歡銆?br> 渚嬪: <br> #pragma comment(lib, "user32.lib")<br> 璇ユ寚浠ょ敤鏉ュ皢user32.lib搴撴枃浠跺姞鍏ュ埌鏈伐紼嬩腑</p> <p> 4銆乴inker:灝嗕竴涓摼鎺ラ夐」鏀懼叆鐩爣鏂囦歡涓?浣犲彲浠ヤ嬌鐢ㄨ繖涓寚浠ゆ潵浠f浛鐢卞懡浠よ浼犲叆鐨勬垨鑰呭湪寮鍙戠幆澧冧腑璁劇疆鐨勯摼鎺ラ夐」,浣犲彲浠ユ寚瀹?include閫夐」鏉ュ己鍒跺寘鍚煇涓璞?渚嬪:<br>#pragma comment(linker, "/include:__mySymbol")<br>浣犲彲浠ュ湪紼嬪簭涓緗笅鍒楅摼鎺ラ夐」<br>/DEFAULTLIB<br>/EXPORT<br>/INCLUDE<br>/MERGE<br>/SECTION</p> <p> 榪欎簺閫夐」鍦ㄨ繖閲屽氨涓嶄竴涓璇存槑浜?璇︾粏淇℃伅璇風(fēng)湅msdn!</p> <p> 5銆乽ser:灝嗕竴鑸殑娉ㄩ噴淇℃伅鏀懼叆鐩爣鏂囦歡涓璫ommentstring鍙傛暟鍖呭惈娉ㄩ噴鐨勬枃鏈俊鎭?榪欎釜娉ㄩ噴璁板綍灝嗚閾炬帴鍣ㄥ拷鐣?br> 渚嬪:<br> #pragma comment( user, "Compiled on " __DATE__ " at " __TIME__ ) </p> <img src ="http://www.shnenglu.com/xpzhou/aggbug/22193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/xpzhou/" target="_blank">姒曟爲(wèi)钘?/a> 2007-04-18 10:24 <a href="http://www.shnenglu.com/xpzhou/archive/2007/04/18/22193.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://xgame8.com" target="_blank">欧美精品一区二区蜜臀亚洲</a>| <a href="http://85041960.com" target="_blank">裸体一区二区</a>| <a href="http://21bridal.com" target="_blank">在线综合视频</a>| <a href="http://77smsm.com" target="_blank">国产精品国产三级国产</a>| <a href="http://ylnnc.com" target="_blank">亚洲在线中文字幕</a>| <a href="http://www-333304.com" target="_blank">亚洲在线视频免费观看</a>| <a href="http://caogb.com" target="_blank">国产亚洲一区在线播放</a>| <a href="http://yh5557.com" target="_blank">免费在线成人av</a>| <a href="http://778877k.com" target="_blank">欧美精品一区二区三区久久久竹菊 </a>| <a href="http://70909g.com" target="_blank">欧美一区网站</a>| <a href="http://580078.com" target="_blank">亚洲新中文字幕</a>| <a href="http://hernameplz.com" target="_blank">久久美女性网</a>| <a href="http://621768.com" target="_blank">亚洲区一区二</a>| <a href="http://4430x.com" target="_blank">亚洲人永久免费</a>| <a href="http://ximaimicro.com" target="_blank">欧美黄色aa电影</a>| <a href="http://sewuyueyue.com" target="_blank">亚洲综合色网站</a>| <a href="http://98956888.com" target="_blank">久久国产精品久久精品国产 </a>| <a href="http://787282.com" target="_blank">亚洲天堂av综合网</a>| <a href="http://by99969.com" target="_blank">国产一区二区三区在线观看网站</a>| <a href="http://233116.com" target="_blank">免费在线观看一区二区</a>| <a href="http://www-452.com" target="_blank">欧美日韩伊人</a>| <a href="http://yxtczx.com" target="_blank">男女av一区三区二区色多</a>| <a href="http://cancerrxa.com" target="_blank">欧美日韩国产区</a>| <a href="http://shaijia123.com" target="_blank">久久久久久亚洲精品中文字幕</a>| <a href="http://wwwhaodd116.com" target="_blank">免费h精品视频在线播放</a>| <a href="http://www-4012345.com" target="_blank">一区三区视频</a>| <a href="http://s3yx.com" target="_blank">免费永久网站黄欧美</a>| <a href="http://yys4.com" target="_blank">一本色道88久久加勒比精品 </a>| <a href="http://041935.com" target="_blank">久久久久国色av免费观看性色</a>| <a href="http://8888590.com" target="_blank">久久久久国产精品麻豆ai换脸</a>| <a href="http://qq6699.com" target="_blank">日韩视频三区</a>| <a href="http://sxxawef.com" target="_blank">亚洲女人天堂成人av在线</a>| <a href="http://388268.com" target="_blank">亚洲国产第一</a>| <a href="http://92y5.com" target="_blank">欧美在线观看一区二区三区</a>| <a href="http://233116.com" target="_blank">99精品欧美</a>| <a href="http://613by.com" target="_blank">麻豆国产精品va在线观看不卡</a>| <a href="http://shruhan.com" target="_blank">在线亚洲国产精品网站</a>| <a href="http://fjccjq.com" target="_blank">久久婷婷av</a>| <a href="http://66889h.com" target="_blank">久久精品一区中文字幕</a>| <a href="http://www11111111.com" target="_blank">欧美日韩视频第一区</a>| <a href="http://wwwbbb888999.com" target="_blank">欧美成人性网</a>| <a href="http://zhuankee.com" target="_blank">韩国女主播一区二区三区</a>| <a href="http://4388x3.com" target="_blank">亚洲毛片在线看</a>| <a href="http://yh5557.com" target="_blank">国产日韩精品一区观看</a>| <a href="http://73cao.com" target="_blank">欧美理论大片</a>| <a href="http://6u6uuu666.com" target="_blank">久久男女视频</a>| <a href="http://hnjlhgw.com" target="_blank">国产精品午夜久久</a>| <a href="http://fengxinye.com" target="_blank">亚洲伦理在线观看</a>| <a href="http://668756.com" target="_blank">亚洲欧洲一区二区天堂久久 </a>| <a href="http://ximaimicro.com" target="_blank">午夜视频一区在线观看</a>| <a href="http://0370city.com" target="_blank">欧美金8天国</a>| <a href="http://160160160.com" target="_blank">欧美激情 亚洲a∨综合</a>| <a href="http://caoxiu33.com" target="_blank">韩国av一区二区三区四区</a>| <a href="http://juegold.com" target="_blank">亚洲专区国产精品</a>| <a href="http://372469.com" target="_blank">亚洲欧美日韩成人</a>| <a href="http://p5555ww.com" target="_blank">国产精品成人播放</a>| <a href="http://551753.com" target="_blank">99精品国产在热久久婷婷</a>| <a href="http://360695.com" target="_blank">99国产精品久久久久久久久久</a>| <a href="http://www49718.com" target="_blank">久久亚洲综合色</a>| <a href="http://s3yx.com" target="_blank">欧美va天堂</a>| <a href="http://www90aaa.com" target="_blank">亚洲第一精品夜夜躁人人爽</a>| <a href="http://689658.com" target="_blank">久久精品女人天堂</a>| <a href="http://yashikeji.com" target="_blank">久久午夜羞羞影院免费观看</a>| <a href="http://cn1357.com" target="_blank">国产真实精品久久二三区</a>| <a href="http://xindefalv.com" target="_blank">亚洲欧美日韩综合国产aⅴ</a>| <a href="http://333666333.com" target="_blank">亚洲欧美在线免费观看</a>| <a href="http://wwwbaoyu66.com" target="_blank">国产精品国产精品国产专区不蜜</a>| <a href="http://kanebocos.com" target="_blank">99精品视频一区二区三区</a>| <a href="http://pansinobbs.com" target="_blank">99精品热视频只有精品10</a>| <a href="http://969093.com" target="_blank">欧美日本成人</a>| <a href="http://yngtxny.com" target="_blank">亚洲视频在线免费观看</a>| <a href="http://cn1898.com" target="_blank">亚洲欧美激情诱惑</a>| <a href="http://maomi998.com" target="_blank">国产伦一区二区三区色一情</a>| <a href="http://ccnn33.com" target="_blank">销魂美女一区二区三区视频在线</a>| <a href="http://9797690.com" target="_blank">久久精品官网</a>| <a href="http://bocai01.com" target="_blank">在线观看日韩欧美</a>| <a href="http://80hogo.com" target="_blank">欧美国产日韩在线观看</a>| <a href="http://ncyy4.com" target="_blank">日韩一级精品视频在线观看</a>| <a href="http://287677.com" target="_blank">亚洲免费视频观看</a>| <a href="http://www780yy.com" target="_blank">国产午夜精品麻豆</a>| <a href="http://shght.com" target="_blank">久久综合九色综合欧美狠狠</a>| <a href="http://cao3e8c8.com" target="_blank">亚洲国产欧美在线</a>| <a href="http://y77778.com" target="_blank">亚洲一级网站</a>| <a href="http://kinghongs.com" target="_blank">国产一区二区视频在线观看</a>| <a href="http://xpj694.com" target="_blank">美女脱光内衣内裤视频久久网站</a>| <a href="http://zunguidq.com" target="_blank">亚洲日本视频</a>| <a href="http://400206.com" target="_blank">久久精品一二三区</a>| <a href="http://www344399.com" target="_blank">亚洲国产日韩综合一区</a>| <a href="http://000695.com" target="_blank">欧美日韩视频在线第一区</a>| <a href="http://bizhijidi.com" target="_blank">亚洲免费伊人电影在线观看av</a>| <a href="http://csmdjs.com" target="_blank">久久久7777</a>| <a href="http://www-577511.com" target="_blank">一区二区高清</a>| <a href="http://hwgjcm.com" target="_blank">欧美日韩亚洲综合一区</a>| <a href="http://7776701.com" target="_blank">亚洲一区二区三区精品在线</a>| <a href="http://5588gww.com" target="_blank">久久久亚洲影院你懂的</a>| <a href="http://whmingtong.com" target="_blank">亚洲精品视频一区</a>| <a href="http://707377c.com" target="_blank">国产精品―色哟哟</a>| <a href="http://mide776.com" target="_blank">蜜桃av久久久亚洲精品</a>| <a href="http://082235.com" target="_blank">亚洲午夜精品一区二区</a>| <a href="http://596361.com" target="_blank">美女999久久久精品视频</a>| <a href="http://91x8.com" target="_blank">国产精品99久久99久久久二8</a>| <a href="http://xdlot.com" target="_blank">国产一区二区高清视频</a>| <a href="http://388123cc.com" target="_blank">欧美国产第二页</a>| <a href="http://noeljgq.com" target="_blank">香蕉久久夜色精品国产</a>| <a href="http://9486322.com" target="_blank">亚洲精品视频啊美女在线直播</a>| <a href="http://kdy444.com" target="_blank">欧美一区国产一区</a>| <a href="http://lao64.com" target="_blank">日韩午夜av在线</a>| <a href="http://www5123ri.com" target="_blank">国产一区二区三区av电影</a>| <a href="http://caogb.com" target="_blank">欧美日韩国产一区精品一区</a>| <a href="http://283575.com" target="_blank">久久激情综合</a>| <a href="http://6055365.com" target="_blank">亚洲天堂免费观看</a>| <a href="http://wwwmm7777.com" target="_blank">亚洲国产精品久久久久久女王</a>| <a href="http://www-kkjj88.com" target="_blank">欧美有码视频</a>| <a href="http://zhxjl.com" target="_blank">一区二区欧美激情</a>| <a href="http://787622.com" target="_blank">亚洲高清一区二区三区</a>| <a href="http://707fx.com" target="_blank">国产日韩欧美日韩大片</a>| <a href="http://4534com.com" target="_blank">欧美日韩另类丝袜其他</a>| <a href="http://436212.com" target="_blank">蜜月aⅴ免费一区二区三区</a>| <a href="http://zzzz80.com" target="_blank">欧美在线视频观看免费网站</a>| <a href="http://www-188444.com" target="_blank">99成人精品</a>| <a href="http://www-tk3333.com" target="_blank">亚洲欧洲精品一区二区三区不卡</a>| <a href="http://17vx.com" target="_blank">久久久久久久成人</a>| <a href="http://15013010203.com" target="_blank">午夜精品福利在线观看</a>| <a href="http://wwwgay456.com" target="_blank">一区二区欧美国产</a>| <a href="http://cm168168.com" target="_blank">亚洲伦理一区</a>| <a href="http://2061826.com" target="_blank">亚洲日本va午夜在线电影</a>| <a href="http://44o77.com" target="_blank">狠狠色噜噜狠狠色综合久</a>| <a href="http://y66776.com" target="_blank">国产欧美另类</a>| <a href="http://xxxyyy168.com" target="_blank">国产精品嫩草99a</a>| <a href="http://caopanjia.com" target="_blank">欧美偷拍一区二区</a>| <a href="http://by3787.com" target="_blank">欧美日韩亚洲精品内裤</a>| <a href="http://www47755.com" target="_blank">欧美激情91</a>| <a href="http://uuuu30.com" target="_blank">欧美激情精品久久久久</a>| <a href="http://www-06654.com" target="_blank">免费一区视频</a>| <a href="http://51-express.com" target="_blank">欧美成人免费网</a>| <a href="http://seo8138.com" target="_blank">欧美成人亚洲</a>| <a href="http://sxhrdyb.com" target="_blank">欧美国产另类</a>| <a href="http://www47067.com" target="_blank">欧美激情一区二区三区全黄</a>| <a href="http://3451215.com" target="_blank">欧美成人dvd在线视频</a>| <a href="http://cloakok.com" target="_blank">蜜月aⅴ免费一区二区三区</a>| <a href="http://hnluvlux.com" target="_blank">免费成人高清在线视频</a>| <a href="http://anxingou365.com" target="_blank">久久―日本道色综合久久</a>| <a href="http://chinagreetown.com" target="_blank">欧美一区二区三区在线</a>| <a href="http://zxxx3.com" target="_blank">欧美制服丝袜</a>| <a href="http://xindefalv.com" target="_blank">久久人人97超碰精品888</a>| <a href="http://17vx.com" target="_blank">久久亚洲影音av资源网</a>| <a href="http://aqd1t.com" target="_blank">欧美gay视频</a>| <a href="http://www11111111.com" target="_blank">欧美人成网站</a>| <a href="http://aaa798.com" target="_blank">欧美午夜一区</a>| <a href="http://yujiaosanye.com" target="_blank">国产精品三区www17con</a>| <a href="http://dkmcjc.com" target="_blank">国产色综合天天综合网</a>| <a href="http://7555hh.com" target="_blank">韩国精品久久久999</a>| <a href="http://shiyoudiban.com" target="_blank">伊人狠狠色丁香综合尤物</a>| <a href="http://sh738.com" target="_blank">亚洲国产综合视频在线观看</a>| <a href="http://40346c.com" target="_blank">亚洲精品偷拍</a>| <a href="http://dgxinshidai.com" target="_blank">亚洲午夜久久久</a>| <a href="http://xxx444vip.com" target="_blank">欧美一区二区三区男人的天堂</a>| <a href="http://88844401.com" target="_blank">久久精品视频在线看</a>| <a href="http://my7877.com" target="_blank">久久午夜色播影院免费高清</a>| <a href="http://zuan3344.com" target="_blank">欧美激情1区2区</a>| <a href="http://9113c.com" target="_blank">亚洲视频综合</a>| <a href="http://zzmzit.com" target="_blank">久久精品国产精品亚洲精品</a>| <a href="http://r6r4.com" target="_blank">欧美大尺度在线</a>| <a href="http://www47755.com" target="_blank">国产精品久久久久久亚洲调教</a>| <a href="http://caoxiu33.com" target="_blank">国产欧美在线观看一区</a>| <a href="http://tfccrk.com" target="_blank">亚洲国产成人tv</a>| <a href="http://imaben.com" target="_blank">亚洲视频免费在线</a>| <a href="http://bjrailtech.com" target="_blank">久久精品91</a>| <a href="http://713b.com" target="_blank">亚洲精品久久久久久久久久久久</a>| <a href="http://xingda-sh.com" target="_blank">一区二区三区精品</a>| <a href="http://478884.com" target="_blank">久久久久久久久久久一区</a>| <a href="http://zytxkj.com" target="_blank">在线国产精品一区</a>| <a href="http://baidubf.com" target="_blank">国产精品爱久久久久久久</a>| <a href="http://55555549.com" target="_blank">国产婷婷97碰碰久久人人蜜臀</a>| <a href="http://jiyixitong.com" target="_blank">精品999网站</a>| <a href="http://bjrailtech.com" target="_blank">亚洲一区二区三区精品动漫</a>| <a href="http://21bridal.com" target="_blank">久久九九久精品国产免费直播</a>| <a href="http://www-273111.com" target="_blank">亚洲福利小视频</a>| <a href="http://xxx444vip.com" target="_blank">亚洲一区二区视频</a>| <a href="http://www35177.com" target="_blank">欧美成人精品高清在线播放</a>| <a href="http://elpezomaha.com" target="_blank">国产精品三级久久久久久电影</a>| <a href="http://wwwn94.com" target="_blank">亚洲国产小视频</a>| <a href="http://fanwenok.com" target="_blank">香蕉久久一区二区不卡无毒影院 </a>| <a href="http://jivbus.com" target="_blank">亚洲毛片视频</a>| <a href="http://www-666638.com" target="_blank">久久av一区二区三区亚洲</a>| <a href="http://erzhuzi.com" target="_blank">欧美高清在线</a>| <a href="http://by722777.com" target="_blank">狠狠色狠狠色综合日日五</a>| <a href="http://436212.com" target="_blank">亚洲午夜精品久久</a>| <a href="http://88844401.com" target="_blank">欧美国产欧美综合</a>| <a href="http://jiucao8.com" target="_blank">午夜精品久久久久久久久久久久</a>| <a href="http://82b2.com" target="_blank">欧美激情1区</a>| <a href="http://xw4433.com" target="_blank">亚洲国产成人在线播放</a>| <a href="http://91keshi.com" target="_blank">久久国产毛片</a>| <a href="http://7885888.com" target="_blank">亚洲午夜在线观看</a>| <a href="http://9993334.com" target="_blank">欧美精品一卡</a>| <a href="http://fuwu56.com" target="_blank">亚洲精品资源美女情侣酒店</a>| <a href="http://17cao8.com" target="_blank">看片网站欧美日韩</a>| <a href="http://899399com.com" target="_blank">亚洲专区免费</a>| <a href="http://457745.com" target="_blank">国产精品久久久一本精品</a>| <a href="http://124909.com" target="_blank">99pao成人国产永久免费视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>