锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 瀛樺湪浜庡唴鏍哥駭鍒殑涓縐嶈祫婧愶紝鍏變韓鍐呭瓨鎸囧湪澶氬鐞嗗櫒鐨?a target="_blank">璁$畻鏈虹郴緇?/font>涓紝鍙互琚笉鍚屼腑澶鐞嗗櫒錛圕PU錛夎闂殑澶у閲忓唴瀛?/span>銆傜敱浜庡涓狢PU闇瑕佸揩閫熻闂瓨鍌ㄥ櫒錛岃繖鏍峰氨瑕佸瀛樺偍鍣ㄨ繘琛岀紦瀛橈紙Cache錛夈備換浣曚竴涓紦瀛樼殑鏁版嵁琚洿鏂板悗錛岀敱浜庡叾浠栧鐞嗗櫒涔熷彲鑳借瀛樺彇錛屽叡浜唴瀛樺氨闇瑕佺珛鍗蟲洿鏂幫紝鍚﹀垯涓嶅悓鐨勫鐞嗗櫒鍙兘鐢ㄥ埌涓嶅悓鐨勬暟鎹傚叡浜唴瀛?(shared memory)鏄?Unix涓嬬殑澶氳繘紼嬩箣闂寸殑閫氫俊鏂規硶 ,榪欑鏂規硶閫氬父鐢ㄤ簬涓涓▼搴忕殑澶氳繘紼嬮棿閫氫俊錛屽疄闄呬笂澶氫釜紼嬪簭闂翠篃鍙互閫氳繃鍏變韓鍐呭瓨鏉ヤ紶閫掍俊鎭?br /> lock鐨勫垵濮嬪間負0錛屽綋涓涓繘紼嬫兂榪涘叆涓寸晫鍖烘椂錛?/span>鍏堟煡鐪?/span>lock鐨勫鹼紝鑻ヤ負1錛岃鏄庡凡鏈夎繘紼嬪湪涓寸晫鍖?/span>鍐咃紝鍙ソ寰幆絳夊緟銆傜瓑瀹冨彉鎴愪簡0錛屾墠鍙繘鍏ャ?/span> 鍩烘湰鎬濇兂錛氭瘡涓繘紼嬩弗鏍煎湴鎸夌収杞祦鐨勯『搴忔潵榪涘叆涓寸晫鍖恒?/span> 浼樼偣錛氫繚璇佸湪浠諱綍鏃跺埢鏈澶氬彧鏈変竴涓繘紼嬪湪涓寸晫鍖?/span> 褰撲竴涓繘紼嬫兂榪涘叆涓寸晫鍖烘椂錛屽厛璋冪敤enter_region鍑芥暟錛屽垽鏂槸鍚﹁兘瀹夊叏榪涘叆錛屼笉鑳界殑璇濈瓑寰咃紱褰撳畠浠庝復鐣屽尯閫鍑哄悗錛岄渶璋冪敤leave_region鍑芥暟錛屽厑璁稿叾瀹冭繘紼嬭繘鍏ヤ復鐣屽尯銆備袱涓嚱鏁扮殑鍙傛暟鍧囦負榪涚▼鍙楓?img style="width: 553px; height: 283px" border="0" alt="" src="http://www.shnenglu.com/images/cppblog_com/cass/榪涚▼鍚屾5.jpg" width="553" height="283" /> 褰撲竴涓繘紼嬫兂瑕佽繘鍏ュ畠鐨勪復鐣屽尯鏃訛紝棣栧厛媯鏌ヤ竴涓嬫槸鍚﹀厑璁稿畠榪涘叆錛?/span>鑻ュ厑璁革紝灝辯洿鎺ヨ繘鍏ヤ簡錛涜嫢涓嶅厑璁革紝灝卞湪閭i噷寰幆鍦扮瓑寰咃紝涓鐩寸瓑鍒板厑璁稿畠榪涘叆銆?br /> 緙虹偣錛?/span>
闃呰鍏ㄦ枃
]]>
涓涓槸瑕佸綰跨▼鐨勫垱寤哄拰鎾ゆ秷榪涜綆$悊錛屽彟涓涓槸瑕佸綰跨▼瀵硅祫婧愮殑璁塊棶瀹炴柦鍚屾銆銆傘
闃呰鍏ㄦ枃
]]>
渚嬪錛氾細褰撹繘紼嬫鍦ㄨ繍琛岀殑鏃跺欙紝榪涚▼鍐呮牳瀵硅薄澶勪簬鏈氱煡鐘舵侊紝褰撹繘紼嬬粓姝㈣繍琛岀殑鏃跺欙紝瀹冨氨鍙樹負宸查氱煡鐘舵併傝繘紼嬪唴鏍稿璞′腑鏄釜甯冨皵鍊鹼紝褰撳璞″垱寤烘椂錛岃鍊艱鍒濆鍖栦負FALSE錛堟湭閫氱煡鐘舵侊級銆傚綋榪涚▼緇堟榪愯鏃訛紝鎿嶄綔緋葷粺鑷姩灝嗗搴旂殑瀵硅薄甯冨皵鍊兼敼涓篢RUE錛岃〃紺鴻瀵硅薄宸茬粡寰楀埌閫氱煡銆傚綋綰跨▼緇堟榪愯鏃訛紝鎿嶄綔緋葷粺浼氳嚜鍔ㄥ皢綰跨▼瀵硅薄鐨勭姸鎬佹敼涓哄凡閫氱煡鐘舵併傚洜姝わ紝鍙互灝嗙浉鍚岀殑鏂規硶鐢ㄤ簬搴旂敤紼嬪簭錛屼互紜畾綰跨▼鏄惁涓嶅啀榪愯銆?
闃呰鍏ㄦ枃
]]>
鈥?褰撲竴涓嚎紼嬮渶瑕佸皢鏌愪釜浠誨姟宸茬粡瀹屾垚鐨勬儏鍐甸氱煡鍙﹀涓涓垨澶氫釜綰跨▼鏃躲?
闃呰鍏ㄦ枃
]]>
錛?錛夈佷竴涓嚎紼嬪爢鏍堬紝鐢ㄤ簬緇存姢綰跨▼鎵ц鏃舵墍闇鐨勬墍鏈夊嚱鏁板弬鏁板拰灞閮ㄥ彉閲忋?
闃呰鍏ㄦ枃
]]>
鍩烘湰鏈哄埗鏄細緋葷粺棰勭暀鐨勪竴鍧楀叏灞鍏變韓鍐呭瓨錛屽彲鐢ㄤ簬琚悇榪涚▼鏆傛椂瀛樺偍鏁版嵁銆傚啓鍏ヨ繘紼嬮鍏堝垱寤轟竴涓叏灞鍐呭瓨鍧楋紝騫跺皢鏁版嵁鍐欏埌璇ュ唴瀛樺潡錛涙帴鍙楁暟鎹殑榪涚▼閫氳繃鍓創鏉挎満鍒惰幏鍙栨鍐呭瓨鍧楃殑鍙ユ焺錛屽茍瀹屾垚瀵硅鍐呭瓨鍧楁暟鎹殑璇誨彇銆?br />
綆¢亾鍖呮嫭涓夌:
綆¢亾(Pipe)瀹為檯鏄敤浜庤繘紼嬮棿閫氫俊鐨勪竴孌靛叡浜唴瀛橈紝鍒涘緩綆¢亾鐨勮繘紼嬬О涓虹閬撴湇鍔″櫒錛岃繛鎺ュ埌涓涓閬撶殑榪涚▼涓虹閬撳鎴鋒満銆備竴涓繘紼嬪湪鍚戠閬撳啓鍏ユ暟鎹悗錛屽彟涓榪涚▼灝卞彲浠ヤ粠綆¢亾鐨勫彟涓绔皢鍏惰鍙栧嚭鏉ャ傚尶鍚嶇閬?Anonymous Pipes)鏄湪鐖惰繘紼嬪拰瀛愯繘紼嬮棿鍗曞悜浼犺緭鏁版嵁鐨勪竴縐嶆湭鍛藉悕鐨勭閬擄紝鍙兘鍦ㄦ湰鍦拌綆楁満涓嬌鐢紝鑰屼笉鍙敤浜庣綉緇滈棿鐨勯氫俊銆?br /> 1)鏅氱閬?/span>PIPE, 閫氬父鏈夌闄愬埗,涓鏄崐鍙屽伐,鍙兘鍗曞悜浼犺緭; 浜屾槸鍙兘鍦?a target="_blank">鐖跺瓙鎴栬呭厔寮熻繘紼嬮棿浣跨敤.
2)嫻佺閬?/span>s_pipe: 鍘婚櫎浜嗙涓縐嶉檺鍒?鍙互鍙屽悜浼犺緭.
3)鍛?/span>鍚?/span>綆¢亾:name_pipe, 鍘婚櫎浜嗙浜岀闄愬埗,鍙互鍦ㄨ澶氬茍涓嶇浉鍏崇殑榪涚▼涔嬮棿榪涜閫氳.
閭歡妲斤細
銆銆閭歡妲?Mailslots)鎻愪緵榪涚▼闂?span style="color: red">鍗曞悜閫氫俊鑳藉姏錛屼換浣曡繘紼嬮兘鑳藉緩绔嬮偖浠舵Ы鎴愪負閭歡妲芥湇鍔″櫒銆傚叾瀹冭繘紼嬶紝縐頒負閭歡妲藉鎴鳳紝鍙互閫氳繃閭歡妲界殑鍚嶅瓧緇欓偖浠舵Ы鏈嶅姟鍣ㄨ繘紼嬪彂閫佹秷鎭傝繘鏉ョ殑娑堟伅涓鐩存斁鍦ㄩ偖浠舵Ы涓紝鐩村埌鏈嶅姟鍣ㄨ繘紼嬭鍙栧畠涓烘銆備竴涓繘紼嬫棦鍙互鏄偖浠舵Ы鏈嶅姟鍣ㄤ篃鍙互鏄偖浠舵Ы瀹㈡埛錛屽洜姝ゅ彲寤虹珛澶氫釜閭歡妲藉疄鐜拌繘紼嬮棿鐨勫弻鍚戦氫俊銆?/span>
銆銆閫氳繃閭歡妲藉彲浠ョ粰鏈湴璁$畻鏈轟笂鐨勯偖浠舵Ы銆佸叾瀹冭綆楁満涓婄殑閭歡妲芥垨鎸囧畾緗戠粶鍖哄煙涓墍鏈夎綆楁満涓婃湁鍚屾牱鍚嶅瓧鐨勯偖浠舵Ы鍙戦佹秷鎭傚箍鎾氫俊鐨勬秷鎭暱搴︿笉鑳借秴榪?00瀛楄妭錛岄潪騫挎挱娑堟伅鐨勯暱搴﹀垯鍙楅偖浠舵Ы鏈嶅姟鍣ㄦ寚瀹氱殑鏈澶ф秷鎭暱搴︾殑闄愬埗銆?br />銆銆閭歡妲戒笌鍛藉悕綆¢亾鐩鎬技錛屼笉榪囧畠浼犺緭鏁版嵁鏄?span style="color: red">閫氳繃涓嶅彲闈犵殑鏁版嵁鎶?濡俆CP/IP鍗忚涓殑UDP鍖?瀹屾垚鐨?/span>錛屼竴鏃︾綉緇滃彂鐢熼敊璇垯鏃犳硶淇濊瘉娑堟伅姝g‘鍦版帴鏀訛紝鑰屽懡鍚嶇閬撲紶杈撴暟鎹垯鏄緩绔嬪湪鍙潬榪炴帴鍩虹涓婄殑銆備笉榪囬偖浠舵Ы鏈夌畝鍖栫殑緙栫▼鎺ュ彛鍜岀粰鎸囧畾緗戠粶鍖哄煙鍐呯殑鎵鏈夎綆楁満騫挎挱娑堟伅鐨勮兘鍔涳紝鎵浠ラ偖浠舵Ы涓嶅け涓哄簲鐢ㄧ▼搴忓彂閫佸拰鎺ユ敹娑堟伅鐨勫彟涓縐嶉夋嫨銆?br />
浼樼己鐐癸細
閭Ы鏈澶х殑涓涓己鐐逛究鏄彧鍏佽浠庡鎴鋒満鍒版湇鍔″櫒錛屽緩绔嬩竴縐嶄笉鍙潬鐨勫崟鍚戞暟鎹氫俊銆?br />鑰屽彟涓鏂歸潰錛岄偖妲芥渶澶х殑涓涓紭鐐瑰湪浜庯紝瀹冧滑浣垮鎴鋒満搴旂敤鑳藉闈炲父瀹規槗鍦板皢騫挎挱娑堟伅鍙戦佺粰涓涓垨澶氫釜鏈嶅姟鍣ㄥ簲鐢ㄣ?br />
鍏變韓鍐呭瓨錛?br />
2銆佸綋涓や釜鎴栬呭涓繘紼嬭闂叡浜祫婧愭椂錛屽浣曠‘淇濅粬浠笉浼氱浉浜掑Θ紕?----榪涚▼浜掓枼闂銆?br />
鍘熷洜錛?span style="font-family: 瀹嬩綋; color: #000000; font-size: 12pt; language: zh-CN; text-combine: letters; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 瀹嬩綋; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt">榪涚▼瀹忚涓婂茍鍙戞墽琛岋紝渚濋潬鏃墮挓涓柇鏉ュ疄鐜板井瑙備笂杞祦鎵ц銆傚綋涓や釜鎴栬呭涓繘紼嬪鍚屼竴涓叡浜唴瀛樿闂紝緇撴灉涓嶈兘棰勬祴銆?span style="font-family: 瀹嬩綋; color: #000000; font-size: 12pt; language: zh-CN; text-combine: letters; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 瀹嬩綋; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt">鍦ㄥ悓涓鏃跺埢錛屽彧鍏佽涓涓繘紼嬭闂鍏變韓鏁版嵁錛?/span>鍗沖鏋滃綋鍓嶅凡鏈変竴涓繘紼嬫鍦ㄤ嬌鐢ㄨ鏁版嵁錛岄偅涔?/span>鍏朵粬榪涚▼鏆傛椂涓嶈兘璁塊棶銆傝繖灝辨槸浜掓枼鐨勬蹇點?br />瀹炵幇浜掓枼璁塊棶鐨勫洓涓潯浠訛細
錛?錛夈佺敤鏍囧織浣嶅姞閿併?
緙虹偣鏄細lock涔熸槸涓涓叡浜祫婧愶紝褰撹繘紼嬬珵浜塴ock鏃訛紝鍙兘浼氬嚭鐜伴棶棰樸?/span>鍔犻攣鏍囧織浣嶆硶鐨勭己鐐瑰湪浜庡彲鑳?/span>鍑虹幇閽堝鍏變韓鍙橀噺 lock 鐨勭珵浜?/span>鐘舵併備緥濡傦紝褰撹繘紼?/span> 0 鎵ц瀹?/span>寰幆鍒ゆ柇璇彞鍚庯紝琚椂閽熶腑鏂?/span>鎵撴柇錛屼粠鑰屽彲鑳戒嬌澶氫釜榪涚▼鍚?/span>鏃惰繘鍏ヤ復鐣屽尯銆?/span>
鏄竴縐嶄笉瀹夊叏鐨勫仛娉曘?/span>
錛?錛夈佸己鍒惰疆嫻佹硶
緙虹偣錛氳繚鍙嶄簡浜掓枼璁塊棶鍥涙潯浠朵腑鐨勭涓変釜鏉′歡錛?span style="font-family: 瀹嬩綋; color: #000000; font-size: 12pt; language: zh-CN; text-combine: letters">褰撲竴涓繘紼嬭繍琛屽湪瀹冪殑涓寸晫鍖哄闈㈡椂錛?/span>涓嶈兘濡ㄧ鍏朵粬鐨勮繘紼嬭繘鍏ヤ復鐣屽尯
錛?錛夈?span style="font-family: 'Times New Roman'; color: #333333; font-size: 12pt; font-weight: normal; language: en-US; text-combine: letters; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 榛戜綋; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt; mso-color-index: 1">Peterson鏂規硶銆?/span>
灝忕粨錛?br />
1錛夋氮璐?/span>CPU鏃墮棿錛?br /> 2錛夊彲鑳藉鑷撮鏂欎箣澶?/span>鐨勭粨鏋滐紙濡傦細涓涓綆浼樺厛綰ц繘紼嬩綅浜庝復鐣屽尯涓紝榪欐椂鏈変竴涓珮浼樺厛綰х殑榪涚▼涔熻瘯鍥捐繘鍏ヤ復鐣屽尯錛?br />
3銆佸綋榪涚▼闂村瓨鍦ㄦ煇縐嶄緷瀛樺叧緋繪椂錛屽浣曟潵璋冩暣浠栦滑榪愯鐨勫厛鍚庢搴?----榪涚▼鍚屾闂銆?br />鐢≒錛孷鍘熻鎿嶄綔瀹炵幇鍚屾錛堢暐錛?/span>
鍙﹀錛氫笂榪扮殑闂涔熼傚悎綰跨▼鍚楋紵錛?nbsp;
]]>
①銆?span style="color: red">涓涓唴鏍稿璞?/span>錛屾搷浣滅郴緇熺敤瀹冩潵綆$悊榪涚▼銆傚唴鏍稿璞′篃鏄郴緇熶繚瀛樿繘紼嬬粺璁′俊鎭殑鍦版柟銆?br />②銆?span style="color: red">涓涓湴鍧絀洪棿錛屽叾涓寘鍚墍鏈夋墽琛屼綋錛坋xecutable錛夋垨DLL妯″潡鐨勪唬鐮佸拰鏁版嵁銆傛澶栵紝瀹冭繕鍖呭惈鍔ㄦ佸唴瀛樺垎閰嶏紝姣斿綰跨▼鍫嗘爤鍜屽爢鐨勫垎閰嶃?br />榪涚▼涓庣嚎紼嬬殑鍏崇郴錛?/span>
①銆佷竴涓繘紼嬪垱寤虹殑鏃跺欙紝緋葷粺浼氳嚜鍔ㄥ垱寤哄畠鐨勭涓涓嚎紼嬶紝榪欑О涓轟富綰跨▼錛坧rimary thread錛夈?br />②銆佽繘紼嬭鍋氫換浣曚簨鎯咃紝閮藉繀欏昏涓涓嚎紼嬪湪瀹冪殑涓婁笅鏂囦腑榪愯銆傚鏋滄病鏈夌嚎紼嬭鎵ц榪涚▼鍦板潃絀洪棿鍖呭惈鐨勪唬鐮侊紝榪涚▼灝卞け鍘諱簡緇х畫瀛樺湪鐨勭悊鐢便傛墍浠ワ紝緋葷粺浼氳嚜鍔ㄩ攢姣佽繘紼嬪強鍏跺湴鍧絀洪棿銆?br />③銆佷竴涓繘紼嬪彲浠ユ湁澶氫釜綰跨▼錛屾墍鏈夌嚎紼嬮兘鍦ㄨ繘紼嬬殑鍦板潃絀洪棿涓?#8220;鍚屾椂”鎵ц浠g爜銆備負姝わ紝姣忎釜綰跨▼閮芥湁瀹冭嚜宸辯殑涓緇凜PU瀵勫瓨鍣ㄥ拰瀹冭嚜宸辯殑鍫嗘爤銆傚浜庢墍鏈夎榪愯鐨勭嚎紼嬶紝鎿嶄綔緋葷粺浼氳疆嫻佷負姣忎釜綰跨▼璋冨害涓浜汣PU鏃墮棿銆傚畠浼氶噰鍙杛ound-robin錛堣疆璇㈡垨杞祦錛夋柟寮忥紝涓烘瘡涓嚎紼嬮兘鍒嗛厤鏃墮棿鐗囷紝浠庤岃惀閫犲嚭鎵鏈夌嚎紼嬮兘鍦?#8220;騫跺彂”榪愯鐨勫亣璞°?br />
2銆佺郴緇熷浣曞垱寤轟竴涓繘紼嬪唴鏍稿璞℃潵綆$悊姣忎釜榪涚▼銆?br />褰撲竴涓繘紼嬭鍒濆鍖栨椂錛岀郴緇熻涓哄畠鍒嗛厤涓涓彞鏌勮〃(絀虹殑錛屼篃灝辨槸鐢ㄦ潵綆$悊榪涚▼鐨勫唴鏍稿璞?銆傝鍙ユ焺琛ㄥ彧鐢ㄤ簬鍐呮牳瀵硅薄錛堣屼笉鐢ㄤ簬鐢ㄦ埛瀵硅薄鍜実di瀵硅薄)銆傚彞鏌勮〃鏄竴涓暟鎹粨鏋勭殑鏁扮粍錛屾瘡涓粨鏋勯兘鍖呭惈涓涓寚鍚戝唴鏍稿璞$殑鎸囬拡錛屼竴涓?span class="Apple-converted-space"> 璁塊棶灞忚斀(DWORD)鍜屼竴涓爣蹇?DWORD)銆?br />錛氾細錛氬綋榪涚▼涓殑綰跨▼璋冪敤鍒涘緩鍐呮牳瀵硅薄鐨勫嚱鏁幫紙姣斿 CreatFileMapping)鏃訛紝鍐呮牳灝變負璇ュ璞″垎閰嶄竴涓唴瀛樺潡騫跺瀹冨垵濮嬪寲銆?strong>鍚屾椂瀵硅繘紼嬬殑鍙ユ焺琛ㄨ繘琛屾壂鎻忥紝鎵懼嚭涓涓┖欏癸紝濉厖鍐呮牳瀵硅薄鏁版嵁緇撴瀯鐨勫唴瀛樺湴鍧鍒拌欏剁殑鎸囬拡鎴愬憳錛岃緗闂睆钄藉拰鏍囧織銆?br />錛氾細錛?/strong> 鐢ㄤ簬鍒涘緩鍐呮牳瀵硅薄鐨勬墍鏈夊嚱鏁板潎榪斿洖涓庤繘紼嬬浉鍏崇殑鍙ユ焺銆傝鍙ユ焺瀹為檯涓婃槸鏀懼叆榪涚▼鐨勫彞鏌勮〃涓殑绱㈠紩 錛堢敱姝ゅ彲鐭ワ紝鍙ユ焺鏄笌榪涚▼鐩稿叧鐨勶紝涓嶈兘鐢卞叾浠栬繘紼嬬洿鎺ユ垚鍔熷湴浣跨敤)銆備絾榪欏彧閫傜敤閮ㄥ垎緋葷粺錛屽彞鏌勭殑鍚箟鍙兘闅忔椂鍙樻洿銆?span class="Apple-converted-space"> 搴旂敤紼嬪簭鍦ㄨ繍琛屾椂鏈夊彲鑳芥硠婕忓唴鏍稿璞★紝浣嗘槸褰撹繘紼嬬粓姝㈡椂緋葷粺灝嗚兘紜繚鎵鏈夊唴瀹瑰潎琚紜湴娓呴櫎銆傝繖涓儏鍐典篃閫傜敤浜庢墍鏈夊璞★紝璧勬簮鍜屽唴瀛樺潡錛屼篃灝辨槸璇村綋榪涚▼緇堟榪愯鏃訛紝緋葷粺灝嗕繚璇佽繘紼嬩笉浼氱暀 涓嬩換浣曞璞°?/span>
3銆佸浣曞埄鐢ㄤ笌涓涓繘紼嬪叧鑱旂殑鍐呮牳瀵硅薄鏉ユ搷綰佃榪涚▼銆?br />
4銆佽繘紼嬬殑鍚勭涓嶅悓鐨勫睘鎬э紙鎴栫壒鎬э級錛屼互鍙婄敤浜庢煡璇㈠拰鏇存敼榪欎簺灞炴х殑鍑犱釜鍑芥暟銆?br />瀹炰緥鍙ユ焺銆佸墠涓涓疄渚嬪彞鏌勩佽繘紼嬬殑鍛戒護琛屻佽繘紼嬬殑鐜鍙橀噺銆佽繘紼嬪綋鍓嶆墍鍦ㄧ殑椹卞姩鍣ㄥ拰鐩綍銆佽繕鏈夌増鏈棶棰樼瓑
5銆佸浣曞埄鐢ㄤ竴浜涘嚱鏁板湪緋葷粺涓垱寤烘垨鐢熸垚棰濆鐨勮繘紼嬨?br />鎴戜滑鐢–reateProcess鍑芥暟鏉ュ垱寤轟竴涓繘紼嬶紝鍙傝僊SDN銆傚綋涓涓嚎紼嬭皟鐢–reateProcess鏃訛紝緋葷粺浼氬仛濡備笅宸ヤ綔錛?br />錛?錛夈佺郴緇熷皢鍒涘緩涓涓繘紼嬪唴鏍稿璞?/span>錛屽叾鍒濆浣跨敤璁℃暟涓?span style="color: red">1銆傝繘紼嬪唴鏍稿璞′笉鏄繘紼嬫湰韜紝鑰屾槸鎿嶄綔緋葷粺鐢ㄦ潵綆$悊榪欎釜榪涚▼鐨勪竴涓皬鍨嬫暟鎹粨鏋勶紙璇ュ唴鏍稿璞℃槸鐢ㄦ潵綆$悊鏂拌繘紼嬬殑錛夈?br />錛?錛夈佺郴緇?span style="color: red">涓烘柊榪涚▼鍒涘緩涓涓櫄鎷熷湴鍧絀洪棿錛屽茍灝嗘墽琛屼綋鏂囦歡錛堝拰鎵鏈夊繀瑕佺殑DLL錛夌殑浠g爜鍙婃暟鎹姞杞藉埌榪涚▼鐨勫湴鍧絀洪棿銆?br />錛?錛夈佺郴緇?span style="color: red">涓烘柊榪涚▼鐨勪富綰跨▼鍒涘緩涓涓嚎紼嬪唴鏍稿璞?/span>錛堜嬌鐢ㄨ鏁頒負1錛夈傚拰榪涚▼鍐呮牳瀵硅薄涓鏍鳳紝綰跨▼鍐呮牳瀵硅薄涔熸槸涓涓皬鍨嬫暟鎹粨鏋勶紝鎿嶄綔緋葷粺鐢ㄥ畠鏉ョ鐞嗚繖涓嚎紼嬨傝繖涓富綰跨▼涓寮濮嬪氨浼氭墽琛岀敱閾炬帴鍣ㄨ涓哄簲鐢ㄧ▼搴忓叆鍙g殑C/C++榪愯鏃跺惎鍔ㄤ緥紼嬶紝騫舵渶緇堣皟鐢ㄤ綘鐨刉inMain錛寃WinMain錛宮ain鎴杦main鍑芥暟銆?br />錛?錛夈佸鏋滅郴緇熸垚鍔熷垱寤轟簡鏂拌繘紼嬪拰涓葷嚎紼嬶紝CreateProcess灝嗚繑鍥濼RUE銆?br />鍒涘緩瀛愯繘紼嬪悗錛?/span>
鍒涘緩涓涓繘紼嬪唴鏍稿璞℃椂錛岀郴緇熶細涓烘瀵硅薄鍒嗛厤涓涓嫭涓鏃犱簩鐨勬爣璇嗙錛岀郴緇熶腑娌℃湁鍒殑榪涚▼鍐呮牳瀵硅薄浼氭湁鐩稿悓鐨処D緙栧彿
6銆佸浣曠粓姝㈢嚎紼嬨?br />鍏抽棴鍒頒竴涓繘紼嬫垨綰跨▼鐨勫彞鏌勶紝涓嶄細寮鴻揩緋葷粺鏉姝繪榪涚▼鎴栫嚎紼嬨傚叧闂彞鏌勫彧鏄憡璇夌郴緇熶綘瀵硅繘紼嬫垨綰跨▼鐨勭粺璁℃暟鎹?br />涓嶅啀鎰熷叴瓚d簡銆傝繘紼嬫垨綰跨▼浼氱戶緇墽琛岋紝鐩磋嚦鑷緇堟銆傦紙璁℃暟錛岄噸鐐規槸璁℃暟錛?br />榪涚▼鍙互閫氳繃浠ヤ笅4縐嶆柟寮忕粓姝細
錛?錛夈佷富綰跨▼鐨勫叆鍙e嚱鏁拌繑鍥烇紙寮虹儓鎺ㄨ崘鐨勬柟寮忥級銆?br /> 璁╀富綰跨▼鐨勫叆鍙e嚱鏁拌繑鍥烇紝鍙互淇濊瘉鍙戠敓浠ヤ笅鍑犱歡浜嬫儏錛?br />魛偩 璇ョ嚎紼嬪垱寤虹殑浠諱綍C++瀵硅薄閮藉皢鐢辮繖浜涘璞$殑鏋愭瀯鍑芥暟姝g‘閿姣併?br />魛偩 鎿嶄綔緋葷粺灝嗘紜噴鏀劇嚎紼嬪爢鏍堜嬌鐢ㄧ殑鍐呭瓨銆?br />魛偩 緋葷粺灝嗚繘紼嬬殑閫鍑轟唬鐮侊紙鍦ㄨ繘紼嬪唴鏍稿璞′腑緇存姢錛夎涓轟綘鐨勫叆鍙e嚱鏁扮殑榪斿洖鍊箋?br />魛偩 緋葷粺閫掑噺榪涚▼鍐呮牳瀵硅薄鐨勪嬌鐢ㄨ鏁般?/span>
錛?錛夈佽繘紼嬩腑鐨勪竴涓嚎紼嬭皟鐢‥xitProcess鍑芥暟錛堣閬垮厤榪欎釜鏂瑰紡錛?br />榪涚▼浼氬湪璇ヨ繘紼嬩腑鐨勪竴涓嚎紼嬭皟鐢‥xitProcess鍑芥暟鏃剁粓姝細
VOID ExitProcess(UINT fuExitCode);
涓鏃︿綘鐨勫簲鐢ㄧ▼搴忕殑涓葷嚎紼嬩粠瀹冪殑鍏ュ彛鍑芥暟榪斿洖錛岄偅涔堜笉綆″綋鍓嶅湪榪涚▼涓槸鍚︽鍦ㄨ繍琛屽叾浠栫嚎紼嬶紝閮戒細璋冪敤ExitProcess鏉ョ粓姝㈣繘紼嬨備笉榪囷紝濡傛灉鍦ㄥ叆鍙e嚱鏁頒腑璋冪敤ExitThread錛岃屼笉鏄皟鐢‥xitProcess鎴栬呯畝鍗曞湴榪斿洖錛屽簲鐢ㄧ▼搴忕殑涓葷嚎紼嬪皢鍋滄鎵ц錛屼絾鍙榪涚▼涓繕鏈夊叾浠栫嚎紼嬫鍦ㄨ繍琛岋紝榪涚▼灝變笉浼氱粓姝€?br />
錛?錛夈佸彟涓涓繘紼嬩腑鐨勭嚎紼嬭皟鐢═erminateProcess鍑芥暟錛堣閬垮厤榪欎釜鏂瑰紡錛?br />璋冪敤TerminateProcess涔熷彲浠ョ粓姝竴涓繘紼嬶紝浣嗘槸榪涚▼鏃犳硶灝嗗畠鍦ㄥ唴瀛樹腑鐨勪換浣曚俊鎭漿鍌ㄥ埌紓佺洏涓娿?/span>
錛?錛夈佽繘紼嬩腑鐨勬墍鏈夌嚎紼嬮兘“鑷劧姝諱骸”錛堣繖鏄緢闅懼彂鐢熺殑錛?/span>
]]>
浣跨敤璁℃暟鏄墍鏈夊唴鏍稿璞$被鍨嬮兘鏈夌殑涓涓暟鎹垚鍛樸傚垵嬈″垱寤轟竴涓璞$殑鏃跺欙紝鍏朵嬌鐢ㄨ鏁拌璁句負1銆傚彟涓涓繘紼嬭幏寰楀鐜版湁鍐呮牳瀵硅薄鐨勮闂悗錛屼嬌鐢ㄨ鏁板氨浼氶掑銆傝繘紼嬬粓姝㈣繍琛屽悗錛屽唴鏍稿皢鑷姩閫掑噺姝よ繘紼嬩粛鐒舵墦寮鐨勬墍鏈夊唴鏍稿璞$殑浣跨敤璁℃暟銆備竴涓璞$殑浣跨敤璁℃暟鍙樻垚0錛屽唴鏍稿氨浼氶攢姣佽瀵硅薄銆傝繖鏍蜂竴鏉ワ紝鍙互淇濊瘉緋葷粺涓笉瀛樺湪娌℃湁琚換浣曡繘紼嬪紩鐢ㄧ殑鍐呮牳瀵硅薄銆?br />
3銆佺鐞嗗唴鏍稿璞?br />涓涓繘紼嬪湪鍒濆鍖栨椂錛岀郴緇熷皢涓哄畠鍒嗛厤涓涓彞鏌勮〃銆備竴涓繘紼嬬殑鍙ユ焺琛紝瀹冨彧鏄竴涓敱鏁版嵁緇撴瀯緇勬垚鐨勬暟緇勩傛瘡涓粨鏋?br />閮藉寘鍚寚鍚戜竴涓唴鏍稿璞$殑鎸囬拡銆佷竴涓闂帺鐮侊紙access mask錛夊拰涓浜涙爣蹇椼?br />錛?錛夈佸垱寤轟竴涓唴鏍稿璞?br />涓涓繘紼嬮嬈″垵濮嬪寲鐨勬椂鍊欙紝鍏跺彞鏌勮〃涓虹┖銆傚綋榪涚▼鍐呯殑涓涓嚎紼嬭皟鐢ㄤ竴涓細鍒涘緩鍐呮牳瀵硅薄鐨勫嚱鏁版椂錛屽唴鏍稿皢涓鴻繖涓璞″垎閰嶅茍鍒濆鍖栦竴涓唴瀛樺潡銆傜劧鍚庯紝鍐呮牳鎵弿榪涚▼鐨勫彞鏌勮〃錛屾煡鎵句竴涓┖鐧界殑璁板綍欏癸紙empty entry錛夈傛寚閽堟垚鍛樹細琚緗垚鍐呮牳瀵硅薄鐨勬暟鎹粨鏋勭殑鍐呴儴鍐呭瓨鍦板潃錛岃闂帺鐮佸皢琚緗垚鎷ユ湁瀹屽叏璁塊棶鏉冮檺錛屾爣蹇椾篃浼氳緗?br />
濡傛灉鍒涘緩璋冪敤澶辮觸錛岄偅涔堣繑鍥炵殑鍙ユ焺鍊奸氬父涓?錛圢ULL錛夈備箣鎵浠ュけ璐ワ紝鍙兘鏄敱浜庣郴緇熷唴瀛樹笉瓚籌紝鎴栬呴亣鍒頒簡涓涓畨鍏ㄩ棶棰樸傞仐鎲劇殑鏄紝鏈夊嚑涓嚱鏁板湪璋冪敤澶辮觸鏃朵細榪斿洖鍙ユ焺鍊?#8211;1銆傛墍浠ヨ鐪嬫竻妤氬啀鍒ゆ柇銆?br />錛?錛夈佸叧闂唴瀛樺璞?br />鏃犺浠ヤ粈涔堟柟寮忓垱寤哄唴鏍稿璞★紝閮借璋冪敤CloseHandle鍚戠郴緇熸寚鍑轟綘宸茬粡緇撴潫浣跨敤瀵硅薄錛?br />BOOL CloseHandle(HANDLE hobject);
緇撴潫鏃墮渶瑕佹敞鎰忥細錛氾紱
①銆佸湪鍐呴儴錛岃鍑芥暟棣栧厛媯鏌ヤ富璋冭繘紼嬬殑鍙ユ焺琛紝楠岃瘉“浼犵粰鍑芥暟鐨勫彞鏌勫?#8221;鏍囪瘑鐨勬槸“榪涚▼紜疄鏈夋潈璁塊棶鐨勪竴涓璞?#8221;銆傚鏋滃彞鏌勬槸鏈夋晥鐨勶紝緋葷粺灝卞皢鑾峰緱鍐呮牳瀵硅薄鐨勬暟鎹粨鏋勭殑鍦板潃錛屽茍鍦ㄧ粨鏋勪腑閫掑噺“浣跨敤璁℃暟”鎴愬憳銆傚鏋滀嬌鐢ㄨ鏁板彉鎴?錛屽唴鏍稿璞″皢琚攢姣侊紝騫朵粠鍐呭瓨涓垹闄ゃ?br /> ②銆佷竴鏃﹁皟鐢–loseHandle錛屼綘鐨勮繘紼嬪氨涓嶈兘璁塊棶閭d釜鍐呮牳瀵硅薄銆?br /> ③銆佸鏋滃璞$殑浣跨敤璁℃暟娌℃湁閫掑噺鑷?錛屽畠灝變笉浼氳閿姣併傚畠琛ㄦ槑鍙﹀榪樻湁涓涓垨澶氫釜榪涚▼鍦ㄤ嬌鐢ㄨ瀵硅薄銆傚綋鍏朵粬榪涚▼鍏ㄩ儴鍋滄浣跨敤榪欎釜瀵硅薄鍚庯紙閫氳繃璋冪敤CloseHandle錛夛紝瀵硅薄灝變細琚攢姣併?br /> ④銆佸湪鍒涘緩涓涓唴鏍稿璞℃椂錛屾垜浠細灝嗗畠鐨勫彞鏌勪繚瀛樺埌涓涓彉閲忎腑銆傚皢姝ゅ彉閲忎綔涓哄弬鏁拌皟鐢ㄤ簡CloseHandle鍑芥暟鍚庯紝榪樺簲鍚屾椂灝嗚繖涓彉閲忚涓篘ULL銆?br /> ⑤銆佸綋榪涚▼緇堟榪愯錛屾搷浣滅郴緇熶細紜繚姝よ繘紼嬫墍浣跨敤鐨勬墍鏈夎祫婧愰兘琚噴鏀撅紒瀵逛簬鍐呮牳瀵硅薄錛屾搷浣滅郴緇熸墽琛岀殑鏄互涓嬫搷浣滐細榪涚▼緇堟鏃訛紝緋葷粺鑷姩鎵弿璇ヨ繘紼嬬殑鍙ユ焺琛ㄣ傚鏋滆繖涓〃涓湁浠諱綍鏈夋晥鐨勮褰曢」錛堝嵆榪涚▼緇堟鍓嶆病鏈夊叧闂殑瀵硅薄錛夛紝鎿嶄綔緋葷粺浼氫負浣犲叧闂繖浜涘璞″彞鏌勩備換浣曡繖浜涘璞$殑浣跨敤璁℃暟閫掑噺鑷?錛屽唴鏍稿氨浼氶攢姣佸璞°?br />
錛?錛夈佽繘紼嬪叡浜唴鏍稿璞°?br />寰堝鍦版柟闇瑕佺敤鍒拌繘紼嬪叡浜唴鏍稿璞°備緥濡?br />①銆佸埄鐢ㄦ枃浠舵槧灝勫璞★紝鍙互鍦ㄥ悓涓鍙版満鍣ㄤ笂榪愯鐨勪袱涓笉鍚岃繘紼?span style="color: red">涔嬮棿鍏?/span>浜暟鎹潡銆?nbsp;
②銆佸熷姪mailslots錛堜俊綆憋級鍜宯amed pipes錛堝尶鍚嶇閬擄級錛屽湪緗戠粶涓殑涓嶅悓璁$畻鏈轟笂榪愯鐨勮繘紼嬪彲浠ョ浉浜掑彂閫佹暟鎹潡銆?br />③銆乵utexes錛堜簰鏂ュ璞★級銆乻emaphores錛堜俊鏍囧璞★級鍜屼簨浠跺厑璁鎬笉鍚岃繘紼嬩腑鐨勭嚎紼嬪悓姝ユ墽琛屻備緥濡傦紝涓涓簲鐢ㄧ▼搴忓彲鑳介渶瑕佸湪瀹屾垚鏌愪釜浠誨姟涔嬪悗錛屽悜鍙︿竴涓簲鐢ㄧ▼搴忓彂鍑洪氱煡銆?br />
涓夌涓嶅悓鐨勬満鍒舵潵鍏佽榪涚▼鍏變韓鍐呮牳瀵硅薄錛?/strong>浣跨敤瀵硅薄鍙ユ焺緇ф壙錛涗負瀵硅薄鍛藉悕錛涗互鍙婂鍒跺璞″彞鏌勩?/strong>
1 浣跨敤瀵硅薄鍙ユ焺緇ф壙
璁劇疆鍙戶鎵挎爣蹇椾負1銆傚璞″彞鏌勭殑緇ф壙鍙細鍦ㄧ敓鎴愬瓙榪涚▼鐨勬椂鍊欏彂鐢熴?br />紼嬪簭鍒濆鍖栨椂浼氫負鐖惰繘紼嬪垱寤轟竴涓繘紼嬪彞鏌勮〃錛屼嬌鐢ㄥ璞″彞鏌勭戶鎵匡紝緋葷粺浼氫負瀛愯繘紼嬪垱寤轟竴涓柊鐨勩佺┖鐧界殑榪涚▼鍙ユ焺琛?#8212;—灝卞儚瀹冧負浠諱綍涓涓柊榪涚▼鎵鍋氱殑閭f牱銆傜郴緇熶細閬嶅巻鐖惰繘紼嬬殑鍙ユ焺琛紝瀵瑰畠鐨勬瘡涓涓褰曢」榪涜媯鏌ャ傚嚒鏄寘鍚竴涓湁鏁堢殑“鍙戶鎵跨殑鍙ユ焺”鐨勯」錛岄兘浼氳瀹屾暣鍦版嫹璐濆埌瀛愯繘紼嬬殑鍙ユ焺琛ㄣ傚湪瀛愯繘紼嬬殑鍙ユ焺琛ㄤ腑錛屾嫹璐濋」鐨勪綅緗笌瀹冨湪鐖惰繘紼嬪彞鏌勮〃涓殑浣嶇疆鏄畬鍏ㄤ竴鏍風殑銆傝繖鏄潪甯擱噸瑕佺殑涓涓璁★紝鍥犱負瀹冩剰鍛崇潃錛氬湪鐖惰繘紼嬪拰瀛愯繘紼嬩腑錛屽涓涓唴鏍稿璞¤繘琛屾爣璇嗙殑鍙ユ焺鍊兼槸瀹屽叏涓鏍風殑銆傚唴鏍稿璞$殑浣跨敤璁℃暟灝嗛掑銆?br />2銆佹敼鍙樺彞鏌勭殑鏍囧織
鐖惰繘紼嬪垱寤轟簡涓涓唴鏍稿璞★紝寰楀埌浜嗕竴涓彲緇ф壙鐨勫彞鏌勶紝鐒跺悗鐢熸垚浜嗕袱涓瓙榪涚▼銆備絾鏄紝鐖惰繘紼嬪彧甯屾湜鍏朵腑鐨勪竴涓瓙榪涚▼緇ф壙鍐呮牳瀵硅薄鍙ユ焺銆傝皟鐢⊿etHandleInformation鍑芥暟鏉ユ敼鍙樺唴鏍稿璞″彞鏌勭殑緇ф壙鏍囧織銆傚嚱鏁板叿浣撳弬鑰僊SDN銆?nbsp;
3銆佷負瀵硅薄鍛藉悕
涓嶈兘鍒涘緩鐩稿悓鍚嶅瓧鐨勫璞★紝綾誨瀷涓嶅悓涔熶笉琛屻傝繘紼嬮棿鍏變韓錛?br />榪涚▼A 鏈夋煇涓懡鍚?JeffMutex" 瀵硅薄 hMutexProcessA,閭d箞榪涚▼B 鍒涘緩涓涓悓鏍?JeffMutex" 瀵硅薄鏃躲傦紝
緋葷粺棣栧厛浼氭煡鐪嬫槸鍚﹀瓨鍦ㄤ竴涓悕涓?#8220;JeffMutex”鐨勫唴鏍稿璞°傜敱浜庣‘瀹炲瓨鍦ㄨ繖鏍風殑涓涓璞★紝鎵浠ュ唴鏍告帴鐫媯鏌ュ璞$殑綾誨瀷銆傜敱浜庤瘯鍥懼垱寤轟竴涓猰utex錛岃屽悕涓?#8220;JeffMutex”鐨勫璞′篃鏄竴涓猰utex錛屾墍浠ョ郴緇熸帴鐫鎵ц涓嬈″畨鍏ㄦ鏌ワ紝楠岃瘉璋冪敤鑰呮槸鍚︽嫢鏈夊璞$殑瀹屽叏璁塊棶鏉冮檺銆傚鏋滅瓟妗堟槸鑲畾鐨勶紝緋葷粺灝變細鍦≒rocess B鐨勫彞鏌勮〃涓煡鎵句竴涓┖鐧借褰曢」錛屽茍灝嗗叾鍒濆鍖栦負鎸囧悜鐜版湁鐨勫唴鏍稿璞°傚鏋滃璞$殑綾誨瀷涓嶅尮閰嶏紝鎴栬皟鐢ㄨ呰鎷掔粷璁塊棶錛孋reateMutex灝變細澶辮觸錛堣繑鍥濶ULL錛夈?br />榪欐牱灝卞疄鐜頒簡榪涚▼鍏變韓瀵硅薄銆備絾闂鏄繘紼婤涓嶇煡閬撹嚜宸卞垱寤虹殑鏄柊瀵硅薄錛岃繕鏄敤涔呭璞°?br />錛?錛夈佸鍒跺璞″彞鏌?br />涓轟簡璺ㄨ秺榪涚▼杈圭晫鏉ュ叡浜唴鏍稿璞★紝鏈鍚庝竴涓妧鏈槸浣跨敤DuplicateHandle鍑芥暟銆?br />榪欎釜鍑芥暟鑾峰緱涓涓繘紼嬬殑鍙ユ焺琛ㄤ腑鐨勪竴涓褰曢」錛岀劧鍚庡湪鍙︿竴涓繘紼嬬殑鍙ユ焺琛ㄤ腑鍒涘緩榪欎釜璁板綍欏圭殑涓涓嫹璐濄?br />
]]>
緇勪歡鐗圭偣錛?/span>
① 銆佸彲淇敼錛屽彲鏇挎崲錛屾弧瓚崇敤鎴風殑闇姹?/span>
② 銆佹湁緇勪歡搴撳彲浠ュ揩閫熺粍瑁咃紝AcitveX鎺т歡
③ 銆佸垎甯冨紡錛氫簨鍔¢昏緫鍜岀郴緇熸湇鍔$浉鍒嗙,綆鍖栦簡緋葷粺寮鍙戠殑澶嶆潅鎬э紝
④ 銆佺粍浠墮渶瑕佸姩鎬佽繛鎺ワ紝錛屼笉鍙兘鍦ㄨ繍琛屾椂緙栬瘧銆?/span>
⑤ 銆佽灝佽錛屼笉瑕佹敼鍙樺叾鎺ュ彛銆?/span>
⑥ 銆佷互浜岃繘鍒剁殑褰㈠紡鍙戝竷錛屽凡緙栬瘧濂界殑銆?/span>
2銆?span style="font: 7pt 'Times New Roman'"> 鎺ュ彛錛氭彁渚涗袱涓笉鍚屽璞¢棿鐨勪竴縐嶈繛鎺ワ紝璁$畻鏈烘槸閫氳繃涓緇勫嚱鏁拌繛鎺ヨ搗鏉ョ殑錛屽叾瀹炶繖緇勫嚱鏁板疄璐ㄤ笂灝辨槸瀹氫箟浜嗙▼搴忎腑涓嶅悓閮ㄥ垎鐨勬帴鍙c傚浜?/span>COM鎺ュ彛鏄寘鍚竴涓嚱鏁版寚閽堟暟緇勭殑鍐呭瓨緇撴瀯銆?/span>
鐢ㄧ函铏氬嚱鏁頒綔涓烘帴鍙c傜湅涓嬮潰緇忓吀渚嬪瓙錛?/span>
#define InSruct struct
InSruct IA //瀹氫箟鎺ュ彛
{
virtual void Fun1()=0;
};
class CA:public IA //瀹氫箟緇勪歡錛堟敞鎰忕被鍙互緇ф壙緇撴瀯浣擄紝緇撴瀯浣撲篃鑳界戶鎵跨粨鏋勪綋錛?/span>
{
void Fun1()
{
cout<<"class Fun1()";
}
};
Void main()
{
CA *pCa=new CA;
IA *pIa=pCa;
pIa->Fun1(); //琛ㄧず鎺ュ彛錛氬湪紼嬪簭鍐呴儴瀹炵幇銆?/span>
delete pCa;
}
//鐗瑰埆娉ㄦ剰鐨勬槸錛氱被涓嶆槸緇勪歡錛岀粍浠朵笉涓瀹氳綾誨疄鐜幫紝涔熶笉涓嶄竴瀹氶渶瑕佺戶鎵褲?/span>
3銆?span style="font: 7pt 'Times New Roman'"> 緇勪歡鐨勫唴瀛橈紙鎺㈣COM鎺ュ彛涓轟粈涔堝彲浠ョ敤綰娊璞″熀綾誨疄鐜?/span>COM緇勪歡錛?/span>
鎶借薄鍩虹被鎻愪緵vtbl鎸囬拡鎸囧悜铏氭嫙鍑芥暟銆佹瘡涓璞″叡浜悓涓涓?/span>vtbl鎸囬拡錛屼絾鏁版嵁鍚勮嚜涓嶅悓
//////////////////////////////////////////////////////////////////////////////////////////////
4銆?span style="font: 7pt 'Times New Roman'"> 瀹㈡埛閫氳繃涓嶆柇璇㈤棶娓呮櫚緇勪歡騫蹭粈涔堬紝浣嗘病鏈夊畬鎴愮煡閬撶粍浠跺唴閮ㄦ庝箞鏍楓?/span>
瀹㈡埛濡備綍鍚戠粍浠惰闂叧浜庡畠鎵鏀寔鐨勬帴鍙o紵緇勪歡濡備綍鍥炵瓟銆佷互鍙婅繖縐嶈姹傚簲絳旀柟寮忕殑緇撴灉銆?/span>
① 銆?/span>HRESULT QueryInterface( REFIID iid, void** ppvObject);鍑芥暟鏌ヨ鏌愪釜緇勪歡鏄惁鏀寔鏌愪釜鐗瑰畾鐨勬帴鍙?/span>
//iid 鏄鏌ヨ鐨勬帴鍙?/span>ID, ppvObject鏄繑鍥炵殑鎺ュ彛鐨勬寚閽堬紝
② 鍏充簬綾誨瀷杞崲錛?/span>
static_cast
銆鐢ㄦ硶錛歴tatic_cast < type-id > ( expression )
銆銆璇ヨ繍綆楃鎶奺xpression杞崲涓簍ype-id綾誨瀷錛屼絾娌℃湁榪愯鏃剁被鍨嬫鏌ユ潵淇濊瘉杞崲鐨勫畨鍏ㄦс傚畠涓昏鏈夊涓嬪嚑縐嶇敤娉曪細
銆銆①鐢ㄤ簬綾誨眰嬈$粨鏋勪腑鍩虹被錛堢埗綾伙級鍜?a target="_blank">媧劇敓綾?/span>錛堝瓙綾伙級涔嬮棿鎸囬拡鎴栧紩鐢ㄧ殑杞崲銆?
銆銆榪涜涓婅杞崲錛堟妸媧劇敓綾葷殑鎸囬拡鎴栧紩鐢ㄨ漿鎹㈡垚鍩虹被琛ㄧず錛夋槸瀹夊叏鐨勶紱
銆銆榪涜涓嬭杞崲錛堟妸鍩虹被鎸囬拡鎴栧紩鐢ㄨ漿鎹㈡垚媧劇敓綾昏〃紺猴級鏃訛紝鐢變簬娌℃湁鍔ㄦ佺被鍨嬫鏌ワ紝鎵浠ユ槸涓嶅畨鍏ㄧ殑銆?
銆銆②鐢ㄤ簬鍩烘湰鏁版嵁綾誨瀷涔嬮棿鐨勮漿鎹紝濡傛妸int杞崲鎴恈har錛屾妸int杞崲鎴恊num銆傝繖縐嶈漿鎹㈢殑瀹夊叏鎬т篃瑕佸紑鍙戜漢鍛樻潵淇濊瘉銆?
銆銆③鎶婄┖鎸囬拡杞崲鎴愮洰鏍囩被鍨嬬殑絀烘寚閽堛?
銆銆④鎶婁換浣曠被鍨嬬殑琛ㄨ揪寮忚漿鎹㈡垚void綾誨瀷銆?
銆銆娉ㄦ剰錛歴tatic_cast涓嶈兘杞崲鎺塭xpression鐨刢onst銆乿olitale銆佹垨鑰卂_unaligned灞炴с?
閫氬父鎴戜滑鍋氱殑紼嬪簭涓嶅簲璇ュ彧灞闄愪簬紼嬪簭闂寸殑鎿嶄綔銆備篃璁歌兘瀵圭數鑴戜笂鍏朵粬鐨勭▼搴忔搷浣滀細鏇存湁鎰忔濄傛垜浠兘鍋氬埌錛屼篃寰堝鏄撳仛鍒般佷嬌鐢?/p>
HWND FindWindow( LPCTSTR lpClassName, // pointer to class name LPCTSTR lpWindowName // pointer to window name );
鎺ㄨ崘浣跨敤HWND FindWindowEx(
HWND hwndParent,// handle to parent window
HWND hwndChildAfter, // handle to a child window
LPCTSTR lpszClass, // pointer to class name
LPCTSTR lpszWindow // pointer to window name ); 鍔熻兘鏇村姞寮哄ぇ銆?/strong>
FindWindowEx 鑳芥牴鎹縐嶆潯浠舵煡鎵俱?/strong>
鎺ㄨ崘浣跨敤灝忓伐鍏?br>
鑳藉揩閫熸煡鎵懼嚭浣犵數鑴戠殑搴旂敤紼嬪簭鐨勭被鍚嶄笌鏍囬銆?/p>