锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产视频a,日韩视频在线你懂得,欧美涩涩网站http://www.shnenglu.com/suiaiguo/category/11213.html澶╄鍋ワ紝鍚涘瓙浠ヨ嚜寮轟笉鎭紱 鍦板娍鍧わ紝鍚涘瓙浠ュ帤寰瘋澆鐗?/description>zh-cnMon, 20 Jul 2009 17:16:00 GMTMon, 20 Jul 2009 17:16:00 GMT60COM鎶鏈叆闂ㄥ熀紜鐭ヨ瘑http://www.shnenglu.com/suiaiguo/archive/2009/07/17/90354.htmlSagaSagaFri, 17 Jul 2009 08:41:00 GMThttp://www.shnenglu.com/suiaiguo/archive/2009/07/17/90354.htmlhttp://www.shnenglu.com/suiaiguo/comments/90354.htmlhttp://www.shnenglu.com/suiaiguo/archive/2009/07/17/90354.html#Feedback6http://www.shnenglu.com/suiaiguo/comments/commentRss/90354.htmlhttp://www.shnenglu.com/suiaiguo/services/trackbacks/90354.html   榪欏嚑澶╁湪瀛︿範COM緇勪歡鎶鏈紝緗戜笂鐪嬩簡寰堝鏁欑▼錛屽彂鐜版湁涓浜涘緢鍩虹鐨勪笢瑗垮熀鏈兘娌℃湁娑夊強錛屼笅闈㈡垜灝辯粨鍚堢綉涓婄殑涓浜涙暀紼嬪姞涓婅嚜宸辯殑浣撲細鏉ヨ繘琛屼竴浜涙葷粨銆?br>
   (1)COM緇勪歡鏄粈涔堬紵

   COM緇勪歡鐢變互Win 32鍔ㄦ佽繛鎺ュ簱錛圖LL錛夋垨鍙墽琛屾枃浠訛紙EXE錛夊艦寮忓彂甯冪殑鍙墽琛屼唬鐮佹墍緇勬垚銆?/span>鍐嶅悜娣卞叆浜嗙湅錛屼互C++涓轟緥錛孋OM緇勪歡瀹為檯涓婂氨鏄竴浜涘疄鐜頒簡鐗瑰畾鎺ュ彛鐨勭被錛岃屾帴鍙i兘鏄函铏氱被銆傜粍浠朵粠鎺ュ彛媧劇敓鑰屾潵銆傛垜浠彲浠ョ畝鍗曠殑鐢ㄧ函綺圭殑C++鐨勮娉曞艦寮忔潵鎻忚堪COM鏄釜浠涔堜笢瑗匡細

銆銆class IObject
銆銆
{
銆銆
public:
銆銆銆銆
virtual Function1(= 0;
銆銆銆銆
virtual Function2(= 0;
銆銆銆銆.
銆銆}
;
銆銆
class MyObject : public IObject
銆銆
{
銆銆
public:
銆銆銆銆
virtual Function1(){}
銆銆銆銆
virtual Function2(){}
.
銆銆}

 
銆銆鐪嬫竻妤氫簡鍚楋紵IObject灝辨槸鎴戜滑甯歌鐨勬帴鍙o紝MyObject灝辨槸鎵璋撶殑COM緇勪歡銆傚垏璁板垏璁版帴鍙i兘鏄函铏氱被錛屽畠鎵鍖呭惈鐨勫嚱鏁伴兘鏄函铏氬嚱鏁幫紝鑰屼笖瀹冩病鏈夋垚鍛樺彉閲忋傝孋OM緇勪歡灝辨槸浠庤繖浜涚函铏氱被緇ф壙涓嬫潵鐨勬淳鐢熺被錛屽畠瀹炵幇浜嗚繖浜涜櫄鍑芥暟錛屼粎姝よ屽凡銆備粠涓婇潰涔熷彲浠ョ湅鍑猴紝COM緇勪歡鏄互 C++涓哄熀紜鐨勶紝鐗瑰埆閲嶈鐨勬槸铏氬嚱鏁板拰澶氭佹х殑姒傚康錛孋OM涓墍鏈夊嚱鏁伴兘鏄櫄鍑芥暟錛岄兘蹇呴』閫氳繃铏氬嚱鏁拌〃VTable鏉ヨ皟鐢紝榪欎竴鐐規槸鏃犳瘮閲嶈鐨勶紝蹇呴渶鏃跺埢鐗㈣鍦ㄥ績銆?br>
   (2) COM緇勪歡鏈変笁涓渶鍩烘湰鐨勬帴鍙g被錛屽垎鍒槸IUnknown銆両ClassFactory銆両Dispatch銆?/strong>

銆銆COM瑙勮寖瑙勫畾浠諱綍緇勪歡銆佷換浣曟帴鍙i兘蹇呴』浠嶪Unknown緇ф壙錛孖Unknown鍖呭惈涓変釜鍑芥暟錛屽垎鍒槸 QueryInterface銆丄ddRef銆丷elease銆傝繖涓変釜鍑芥暟鏄棤姣旈噸瑕佺殑錛岃屼笖瀹冧滑鐨勬帓鍒楅『搴忎篃鏄笉鍙敼鍙樼殑銆俀ueryInterface鐢ㄤ簬鏌ヨ緇勪歡瀹炵幇鐨勫叾瀹冩帴鍙o紝璇寸櫧浜嗕篃灝辨槸鐪嬬湅榪欎釜緇勪歡鐨勭埗綾諱腑榪樻湁鍝簺鎺ュ彛綾伙紝AddRef鐢ㄤ簬澧炲姞寮曠敤璁℃暟錛孯elease鐢ㄤ簬鍑忓皯寮曠敤璁℃暟銆傚紩鐢ㄨ鏁頒篃鏄疌OM涓殑涓涓潪甯擱噸瑕佺殑姒傚康銆傚ぇ浣撲笂綆鍗曠殑璇存潵鍙互榪欎箞鐞嗚В錛孋OM緇勪歡鏄釜DLL錛屽綋瀹㈡埛紼嬪簭瑕佺敤瀹冩椂灝辮鎶婂畠瑁呭埌鍐呭瓨閲屻傚彟涓鏂歸潰錛屼竴涓粍浠朵篃涓嶆槸鍙粰浣犱竴涓漢鐢ㄧ殑錛屽彲鑳戒細鏈夊緢澶氫釜紼嬪簭鍚屾椂閮借鐢ㄥ埌瀹冦備絾瀹為檯涓奃LL鍙杞戒簡涓嬈★紝鍗沖唴瀛樹腑鍙湁涓涓狢OM緇勪歡錛岄偅COM緇勪歡鐢辮皝鏉ラ噴鏀撅紵鐢卞鎴風▼搴忓悧錛熶笉鍙兘錛屽洜涓哄鏋滀綘閲婃斁浜嗙粍浠訛紝閭e埆浜烘庝箞鐢紝鎵浠ュ彧鑳界敱COM緇勪歡鑷繁鏉ヨ礋璐c傛墍浠ュ嚭鐜頒簡寮曠敤璁℃暟鐨勬蹇碉紝COM緇存寔涓涓鏁幫紝璁板綍褰撳墠鏈夊灝戜漢鍦ㄧ敤瀹冿紝姣忓涓嬈¤皟鐢ㄨ鏁板氨鍔犱竴錛屽皯涓涓鎴風敤瀹冨氨鍑忎竴錛屽綋鏈鍚庝竴涓鎴烽噴鏀懼畠鐨勬椂渚紝COM鐭ラ亾宸茬粡娌℃湁浜虹敤瀹冧簡錛屽畠鐨勪嬌鐢ㄥ凡緇忕粨鏉熶簡錛岄偅瀹冨氨鎶婂畠鑷繁緇欓噴鏀句簡銆傚紩鐢ㄨ鏁版槸COM緙栫▼閲岄潪甯稿鏄撳嚭閿欑殑涓涓湴鏂癸紝浣嗘墍騫竀C鐨勫悇縐嶅悇鏍風殑綾誨簱閲屽凡緇忓熀鏈笂鎶夾ddRef鐨勮皟鐢ㄧ粰闅愬惈浜嗭紝鍦ㄦ垜鐨勫嵃璞¢噷錛屾垜緙栫▼鐨勬椂渚繕浠庢潵娌℃湁璋冪敤榪嘇ddRef錛屾垜浠彧闇鍦ㄩ傚綋鐨勬椂渚皟鐢≧elease銆傝嚦灝戞湁涓や釜鏃朵警瑕佽浣忚皟鐢≧elease錛岀涓涓槸璋冪敤浜?QueryInterface浠ュ悗錛岀浜屼釜鏄皟鐢ㄤ簡浠諱綍寰楀埌涓涓帴鍙g殑鎸囬拡鐨勫嚱鏁頒互鍚庯紝璁頒綇澶氭煡MSDN 浠ョ‘瀹氭煇涓嚱鏁板唴閮ㄦ槸鍚﹁皟鐢ㄤ簡AddRef錛屽鏋滄槸鐨勮瘽閭h皟鐢≧elease鐨勮矗浠誨氨瑕佸綊浣犱簡銆?IUnknown鐨勮繖涓変釜鍑芥暟鐨勫疄鐜伴潪甯歌鑼冧絾涔熼潪甯哥儲鐞愶紝瀹規槗鍑洪敊錛屾墍騫哥殑浜嬫垜浠彲鑳芥案榪滀篃涓嶉渶瑕佽嚜宸辨潵瀹炵幇瀹冧滑銆?

銆銆IClassFactory鐨勪綔鐢ㄦ槸鍒涘緩COM緇勪歡銆傛垜浠凡緇忕煡閬揅OM緇勪歡瀹為檯涓婂氨鏄竴涓被錛岄偅鎴戜滑騫沖父鏄庝箞瀹炰緥鍖栦竴涓被瀵硅薄鐨勶紵鏄敤‘new’鍛戒護!寰堢畝鍗曞惂錛孋OM緇勪歡涔熶竴鏍峰姝ゃ備絾鏄皝鏉ew瀹冨憿錛熶笉鍙兘鏄鎴風▼搴忥紝鍥犱負瀹㈡埛紼嬪簭涓嶅彲鑳界煡閬撶粍浠剁殑綾誨悕瀛楋紝濡傛灉瀹㈡埛鐭ラ亾緇勪歡鐨勭被鍚嶅瓧閭g粍浠剁殑鍙噸鐢ㄦу氨瑕佹墦涓ぇ澶х殑鎶樻墸浜嗭紝浜嬪疄涓婂鎴風▼搴忓彧涓嶈繃鐭ラ亾涓涓唬琛ㄧ潃緇勪歡鐨?28浣嶇殑鏁板瓧涓茶屽凡錛岃繖涓瓑浼氬啀浠嬬粛銆傛墍浠ュ鎴鋒棤娉曡嚜宸卞垱寤虹粍浠訛紝鑰屼笖鑰冭檻涓涓嬶紝濡傛灉緇勪歡鏄湪榪滅▼鐨勬満鍣ㄤ笂錛屼綘榪樿兘new鍑轟竴涓璞″悧錛熸墍浠ュ垱寤虹粍浠剁殑璐d換浜ょ粰浜嗕竴涓崟鐙殑瀵硅薄錛岃繖涓璞″氨鏄被鍘傘傛瘡涓粍浠墮兘蹇呴』鏈変竴涓笌涔嬬浉鍏崇殑綾誨巶錛岃繖涓被鍘傜煡閬撴庝箞鏍峰垱寤虹粍浠訛紝褰撳鎴瘋姹備竴涓粍浠跺璞$殑瀹炰緥鏃訛紝瀹為檯涓婅繖涓姹備氦緇欎簡綾誨巶錛岀敱綾誨巶鍒涘緩緇勪歡瀹炰緥錛岀劧鍚庢妸瀹炰緥鎸囬拡浜ょ粰瀹㈡埛紼嬪簭銆傝繖涓繃紼嬪湪璺ㄨ繘紼嬪強榪滅▼鍒涘緩緇勪歡鏃剁壒鍒湁鐢紝鍥犱負榪欐椂灝變笉鏄竴涓畝鍗曠殑new鎿嶄綔灝卞彲浠ョ殑浜嗭紝瀹冨繀欏昏緇忚繃璋冨害錛岃岃繖浜涘鏉傜殑鎿嶄綔閮戒氦緇欑被鍘傚璞″幓鍋氫簡銆侷ClassFactory鏈閲嶈鐨勪竴涓嚱鏁板氨鏄疌reateInstance錛岄【鍚嶆濊灝辨槸鍒涘緩緇勪歡瀹炰緥錛屼竴鑸儏鍐典笅鎴戜滑涓嶄細鐩存帴璋冪敤瀹冿紝API鍑芥暟閮戒負鎴戜滑灝佽濂藉畠浜嗭紝鍙湁鏌愪簺鐗規畩鎯呭喌涓嬫墠浼氱敱鎴戜滑鑷繁鏉ヨ皟鐢ㄥ畠錛岃繖涔熸槸VC緙栧啓COM緇勪歡鐨勫ソ澶勶紝浣挎垜浠湁浜嗘洿澶氱殑鎺у埗鏈轟細錛岃孷B緇欐垜浠繖鏍風殑鏈轟細鍒欐槸澶皯澶皯浜嗐?

銆銆IDispatch鍙仛璋冨害鎺ュ彛銆傚畠鐨勪綔鐢ㄤ綍鍦ㄥ憿錛熻繖涓笘涓婇櫎浜咰++榪樻湁寰堝鍒殑璇█錛屾瘮濡俈B銆?VJ銆乂BScript銆丣avaScript絳夌瓑銆傚彲浠ヨ繖涔堣錛屽鏋滆繖涓栦笂娌℃湁榪欎箞澶氫貢涓冨叓緋熺殑璇█錛岄偅灝變笉浼氭湁IDispatch銆?-) 鎴戜滑鐭ラ亾COM緇勪歡鏄疌++綾伙紝鏄潬铏氬嚱鏁拌〃鏉ヨ皟鐢ㄥ嚱鏁扮殑錛屽浜嶸C鏉ヨ姣棤闂錛岃繖鏈潵灝辨槸閽堝C++鑰岃璁$殑錛屼互鍓峍B涓嶈錛岀幇鍦╒B涔熷彲浠ョ敤鎸囬拡浜嗭紝涔熷彲浠ラ氳繃VTable鏉ヨ皟鐢ㄥ嚱鏁頒簡錛孷J涔熷彲浠ワ紝浣嗚繕鏄湁浜涜璦涓嶈錛岄偅灝辨槸鑴氭湰璇█錛屽吀鍨嬬殑濡?VBScript銆丣avaScript銆備笉琛岀殑鍘熷洜鍦ㄤ簬瀹冧滑騫朵笉鏀寔鎸囬拡錛岃繛鎸囬拡閮戒笉鑳界敤榪樻庝箞鐢ㄥ鎬佹у晩錛岃繕鎬庝箞璋冭繖浜涜櫄鍑芥暟鍟娿傚攭錛屾病鍔炴硶錛屼篃涓嶈兘緗繖浜涜剼鏈璦浜庝笉欏懼惂錛岀幇鍦ㄧ綉欏典笂鐢ㄧ殑閮芥槸榪欎簺鑴氭湰璇█錛岃屽垎甯冨紡搴旂敤涔熸槸COM緇勪歡鐨勪竴涓富瑕佸競鍦猴紝瀹冧笉寰椾笉琚繖浜涜剼鏈璦鎵璋冪敤錛屾棦鐒惰櫄鍑芥暟琛ㄧ殑鏂瑰紡琛屼笉閫氾紝鎴戜滑鍙兘鍙﹀浠栨硶浜嗐傛椂鍔塊犺嫳闆勶紝IDispatch搴旇繍鑰岀敓銆?-) 璋冨害鎺ュ彛鎶婃瘡涓涓嚱鏁版瘡涓涓睘鎬ч兘緙栦笂鍙鳳紝瀹㈡埛紼嬪簭瑕佽皟鐢ㄨ繖浜涘嚱鏁板睘鎬х殑鏃朵警灝辨妸榪欎簺緙栧彿浼犵粰IDispatch鎺ュ彛灝辮浜嗭紝IDispatch鍐嶆牴鎹繖浜涚紪鍙瘋皟鐢ㄧ浉搴旂殑鍑芥暟錛屼粎姝よ屽凡銆傚綋鐒跺疄闄呯殑榪囩▼榪滄瘮榪欏鏉傦紝浠呯粰涓涓紪鍙峰氨鑳借鍒漢鐭ラ亾鎬庝箞璋冪敤涓涓嚱鏁伴偅涓嶆槸澶╂柟澶滄江鍚楋紝浣犳誨緱璁╁埆浜虹煡閬撲綘瑕佽皟鐢ㄧ殑鍑芥暟瑕佸甫浠涔堝弬鏁幫紝鍙傛暟綾誨瀷浠涔堜互鍙婅繑鍥炰粈涔堜笢瑗垮惂錛岃岃浠ヤ竴縐嶇粺涓鐨勬柟寮忔潵澶勭悊榪欎簺闂鏄歡寰堝ご鐤肩殑浜嬨侷Dispatch鎺ュ彛鐨勪富瑕佸嚱鏁版槸Invoke錛屽鎴風▼搴忛兘璋冪敤瀹冿紝鐒跺悗Invoke鍐嶈皟鐢ㄧ浉搴旂殑鍑芥暟錛屽鏋滅湅涓鐪婱S鐨勭被搴撻噷瀹炵幇 Invoke鐨勪唬鐮佸氨浼氭儕鍙瑰畠瀹炵幇鐨勫鏉備簡錛屽洜涓轟綘蹇呴』鑰冭檻鍚勭鍙傛暟綾誨瀷鐨勬儏鍐碉紝鎵騫告垜浠笉闇瑕佽嚜宸辨潵鍋氳繖浠朵簨錛岃屼笖鍙兘姘歌繙涔熸病榪欐牱鐨勬満浼氥?-)

   (3) dispinterface鎺ュ彛銆丏ual鎺ュ彛浠ュ強Custom鎺ュ彛

銆銆榪欎竴灝忚妭鏀懼湪榪欓噷浼間箮涓嶅お鍚堥傦紝鍥犱負榪欐槸鍦ˋTL緙栫▼鏃剁敤鍒扮殑鏈銆傛垜鍦ㄨ繖閲屼富瑕佹槸鎯寵皥涓涓嬭嚜鍔ㄥ寲鎺ュ彛鐨勫ソ澶勫強緙虹偣錛岀敤榪欎笁涓湳璇潵瑙i噴鍙兘浼氭洿濂戒竴浜涳紝鑰屼笖浠ュ悗榪熸棭浼氶亣涓婂畠浠紝鎴戝皢浠ヤ竴縐嶉氫織鐨勬柟寮忔潵瑙i噴瀹冧滑錛屽彲鑳藉茍闈為偅涔堢簿紜紝灝卞ソ璞$敤浼唬鐮佹潵鎻忚堪綆楁硶涓鏍楓?:)

銆銆鎵璋撶殑鑷姩鍖栨帴鍙e氨鏄敤IDispatch瀹炵幇鐨勬帴鍙c傛垜浠凡緇忚瑙h繃IDispatch鐨勪綔鐢ㄤ簡錛屽畠鐨勫ソ澶勫氨鏄剼鏈璦璞BScript銆?JavaScript涔熻兘鐢–OM緇勪歡浜嗭紝浠庤屽熀鏈笂鍋氬埌浜嗕笌璇█鏃犲叧瀹冪殑緙虹偣涓昏鏈変袱涓紝絎竴涓氨鏄熷害鎱㈡晥鐜囦綆銆傝繖鏄樉鑰屾槗瑙佺殑錛岄氳繃铏氬嚱鏁拌〃涓涓嬪瓙灝卞彲浠ヨ皟鐢ㄥ嚱鏁頒簡錛岃岄氳繃Invoke鍒欑瓑浜庝腑闂磋漿浜嗛亾鎵嬬畫錛屽挨鍏舵槸闇瑕佹妸鍑芥暟鍙傛暟杞崲鎴愪竴縐嶈鑼冪殑鏍煎紡鎵嶅幓璋冪敤鍑芥暟錛岃借浜嗗緢澶氭椂闂淬傛墍浠ヤ竴鑸嫢闈炴槸榪笉寰楀凡鎴戜滑閮芥兂鐢╒Table鐨勬柟寮忚皟鐢ㄥ嚱鏁頒互鑾峰緱楂樻晥鐜囥傜浜屼釜緙虹偣灝辨槸鍙兘浣跨敤瑙勫畾濂界殑鎵璋撶殑鑷姩鍖栨暟鎹被鍨嬨傚鏋滀笉鐢↖Dispatch鎴戜滑鍙互鎯崇敤浠涔堟暟鎹被鍨嬪氨鐢ㄤ粈涔堢被鍨嬶紝VC浼氳嚜鍔ㄧ粰鎴戜滑鐢熸垚鐩稿簲鐨勮皟搴︿唬鐮併傝岀敤鑷姩鍖栨帴鍙e氨涓嶈浜嗭紝鍥犱負Invoke鐨勫疄鐜頒唬鐮佹槸VC浜嬪厛鍐欏ソ鐨勶紝鑰屽畠涓嶈兘浜嬪厛棰勬枡鍒版垜浠鐢ㄥ埌鐨勬墍鏈夌被鍨嬶紝瀹冨彧鑳芥牴鎹竴浜涘父鐢ㄧ殑鏁版嵁綾誨瀷鏉ュ啓瀹冪殑澶勭悊浠g爜錛岃屼笖瀹冧篃瑕佽冭檻涓嶅悓璇█涔嬮棿鐨勬暟鎹被鍨嬭漿鎹㈤棶棰樸傛墍浠C鑷姩鍖栨帴鍙g敓鎴愮殑璋冨害浠g爜鍙傜敤浜庡畠鎵瑙勫畾濂界殑閭d簺鏁版嵁綾誨瀷錛屽綋鐒惰繖浜涙暟鎹被鍨嬪凡緇忚凍澶熶赴瀵屼簡錛屼絾涓嶈兘婊¤凍鑷畾涔夋暟鎹粨鏋勭殑瑕佹眰銆備綘涔熷彲浠ヨ嚜宸卞啓璋冨害浠g爜鏉ュ鐞嗕綘鐨勮嚜瀹氫箟鏁版嵁緇撴瀯錛屼絾榪欏茍涓嶆槸涓浠跺鏄撶殑浜嬨傝冭檻鍒癐Dispatch鐨勭縐嶇己鐐?瀹冭繕鏈変竴涓己鐐癸紝灝辨槸浣跨敤楹葷儲錛?-) )鐜板湪涓鑸兘鎺ㄨ崘鍐欏弻鎺ュ彛緇勪歡錛岀О涓篸ual鎺ュ彛錛屽疄闄呬笂灝辨槸浠嶪Dispatch緇ф壙鐨勬帴鍙c傛垜浠煡閬撲換浣曟帴鍙i兘蹇呴』浠?IUnknown緇ф壙錛孖Dispatch鎺ュ彛涔熶笉渚嬪銆傞偅浠嶪Dispatch緇ф壙鐨勬帴鍙e疄闄呬笂灝辯瓑浜庢湁涓や釜鍩虹被錛屼竴涓槸IUnknown錛屼竴涓槸IDispatch錛屾墍浠ュ畠鍙互浠ヤ袱縐嶆柟寮忔潵璋冪敤緇勪歡錛屽彲浠ラ氳繃 IUnknown鐢ㄨ櫄鍑芥暟琛ㄧ殑鏂瑰紡璋冪敤鎺ュ彛鏂規硶錛屼篃鍙互閫氳繃IDispatch::Invoke鑷姩鍖栬皟搴︽潵璋冪敤銆傝繖灝辨湁浜嗗緢澶х殑鐏墊椿鎬э紝榪欎釜緇勪歡鏃㈠彲浠ョ敤浜嶤++鐨勭幆澧冧篃鍙互鐢ㄤ簬鑴氭湰璇█涓紝鍚屾椂婊¤凍浜嗗悇鏂歸潰鐨勯渶瑕併?

銆銆鐩稿姣旂殑錛宒ispinterface鏄竴縐嶇函綺圭殑鑷姩鍖栨帴鍙o紝鍙互綆鍗曠殑灝辨妸瀹冪湅浣滄槸IDispatch鎺ュ彛 (铏界劧瀹冨疄闄呬笂涓嶆槸鐨?錛岃繖縐嶆帴鍙e氨鍙兘閫氳繃鑷姩鍖栫殑鏂瑰紡鏉ヨ皟鐢紝COM緇勪歡鐨勪簨浠朵竴鑸兘鐢ㄧ殑鏄繖縐嶅艦寮忕殑鎺ュ彛銆?

銆銆Custom鎺ュ彛灝辨槸浠嶪Unknown鎺ュ彛媧劇敓鐨勭被錛屾樉鐒跺畠灝卞彧鑳界敤铏氬嚱鏁拌〃鐨勬柟寮忔潵璋冪敤鎺ュ彛浜?

   (4) COM緇勪歡鏈変笁縐嶏紝榪涚▼鍐呫佹湰鍦般佽繙紼嬨傚浜庡悗涓よ呮儏鍐靛繀欏昏皟搴︽帴鍙f寚閽堝強鍑芥暟鍙傛暟銆?/strong>

銆銆COM鏄竴涓狣LL錛屽畠鏈変笁縐嶈繍琛屾ā寮忋傚畠鍙互鏄繘紼嬪唴鐨勶紝鍗沖拰璋冪敤鑰呭湪鍚屼竴涓繘紼嬪唴錛屼篃鍙互鍜岃皟鐢ㄨ呭湪鍚屼竴涓満鍣ㄤ笂浣嗗湪涓嶅悓鐨勮繘紼嬪唴錛岃繕鍙互鏍規湰灝卞拰璋冪敤鑰呭湪涓ゅ彴鏈哄櫒涓娿傝繖閲屾湁涓涓牴鏈偣闇瑕佺墷璁幫紝灝辨槸COM緇勪歡瀹冨彧鏄竴涓狣LL錛屽畠鑷繁鏄繍琛屼笉璧鋒潵鐨勶紝蹇呴』鏈変竴涓繘紼嬭薄鐖朵翰鑸収欏懼畠鎵嶈錛屽嵆COM緇勪歡蹇呴』鍦ㄤ竴涓繘紼嬪唴.閭h皝鍏呭綋鐪嬫姢浜虹殑璐d換鍛紵鍏堣璇磋皟搴︾殑闂銆傝皟搴︽槸涓鏉傜殑闂錛屼互鎴戠殑鐭ヨ瘑榪樿涓嶆竻妤氳繖涓棶棰橈紝鎴戝彧鏄竴鑸х殑璋堣皥鍑犱釜鏈鍩烘湰鐨勬蹇點傛垜浠煡閬撳浜嶹IN32紼嬪簭錛屾瘡涓繘紼嬮兘鎷ユ湁4GB鐨勮櫄鎷熷湴鍧絀洪棿錛屾瘡涓繘紼嬮兘鏈夊叾鍚勮嚜鐨勭紪鍧錛屽悓涓涓暟鎹潡鍦ㄤ笉鍚岀殑榪涚▼閲岀殑緙栧潃寰堝彲鑳藉氨鏄笉涓鏍風殑錛屾墍浠ュ瓨鍦ㄧ潃榪涚▼闂寸殑鍦板潃杞崲闂銆傝繖灝辨槸璋冨害闂銆傚浜庢湰鍦板拰榪滅▼榪涚▼鏉ヨ錛孌LL 鍜屽鎴風▼搴忓湪涓嶅悓鐨勭紪鍧絀洪棿錛屾墍浠ヨ浼犻掓帴鍙f寚閽堝埌瀹㈡埛紼嬪簭蹇呴』瑕佺粡榪囪皟搴︺俉indows 宸茬粡鎻愪緵浜嗙幇鎴愮殑璋冨害鍑芥暟錛屽氨涓嶉渶瑕佹垜浠嚜宸辨潵鍋氳繖涓鏉傜殑浜嬫儏浜嗐傚榪滅▼緇勪歡鏉ヨ鍑芥暟鐨勫弬鏁頒紶閫掓槸鍙﹀涓縐嶈皟搴︺侱COM鏄互RPC涓哄熀紜鐨勶紝瑕佸湪緗戠粶闂翠紶閫掓暟鎹繀欏婚伒瀹堟爣鍑嗙殑緗戜笂鏁版嵁浼犺緭鍗忚錛屾暟鎹紶閫掑墠瑕佸厛鎵撳寘錛屼紶閫掑埌鐩殑鍦板悗瑕佽В鍖咃紝榪欎釜榪囩▼灝辨槸璋冨害錛岃繖涓繃紼嬪緢澶嶆潅錛屼笉榪嘩indows宸茬粡鎶婁竴鍒囬兘緇欐垜浠仛濂戒簡錛屼竴鑸儏鍐典笅鎴戜滑涓嶉渶瑕佽嚜宸辨潵緙栧啓璋冨害DLL銆?

銆銆鎴戜滑鍒氳榪囦竴涓狢OM緇勪歡蹇呴』鍦ㄤ竴涓繘紼嬪唴銆傚浜庢湰鍦版ā寮忕殑緇勪歡涓鑸槸浠XE鐨勫艦寮忓嚭鐜幫紝鎵浠ュ畠鏈韓灝卞凡緇忔槸涓涓繘紼嬨傚浜庤繙紼婦LL錛屾垜浠繀欏繪壘涓涓繘紼嬶紝榪欎釜榪涚▼蹇呴』鍖呭惈浜嗚皟搴︿唬鐮佷互瀹炵幇鍩烘湰鐨勮皟搴︺傝繖涓繘紼嬪氨鏄痙llhost.exe銆傝繖鏄疌OM榛樿鐨凞LL浠g悊銆傚疄闄呬笂鍦ㄥ垎甯冨紡搴旂敤涓紝鎴戜滑搴旇鐢∕TS鏉ヤ綔涓篋LL浠g悊錛屽洜涓篗TS鏈夌潃寰堝己澶х殑鍔熻兘錛屾槸涓撻棬鐨勭敤浜庣鐞嗗垎甯冨紡DLL緇勪歡鐨勫伐鍏楓?

銆銆璋冨害紱繪垜浠緢榪戝張浼間箮寰堣繙錛屾垜浠紪紼嬫椂寰堝皯鍏蟲敞鍒板畠錛岃繖涔熸槸COM鐨勪竴涓紭鐐逛箣涓錛屾棦騫沖彴鏃犲叧鎬э紝鏃犺浣犳槸榪滅▼鐨勩佹湰鍦扮殑榪樻槸榪涚▼鍐呯殑錛岀紪紼嬫槸涓鏍風殑錛屼竴鍒囩粏鑺傞兘鐢盋OM鑷繁澶勭悊濂戒簡錛屾墍浠ユ垜浠篃涓嶇敤娣辯┒榪欎釜闂錛屽彧瑕佹湁涓蹇靛氨鍙互浜嗭紝褰撶劧濡傛灉浣犲璋冨害鏈夎嚜宸辯壒孌婄殑瑕佹眰灝遍渶瑕佹繁鍏ヤ簡瑙h皟搴︾殑鏁翠釜榪囩▼浜嗭紝榪欓噷鎺ㄨ崘涓鏈奀OM+鎶鏈唴騫曘嬶紝榪欑粷瀵規槸涓鏈璋冨害鐨勫ソ涔︺?

   (5) COM緇勪歡鐨勬牳蹇冩槸IDL銆?/strong>

銆銆鎴戜滑甯屾湜杞歡鏄竴鍧楀潡鎷艱鍑烘潵鐨勶紝浣嗕笉鍙兘鏄病鏈夎瀹氱殑鑳′貢鎷兼帴錛屾繪槸瑕侀伒瀹堜竴瀹氱殑鏍囧噯錛屽悇涓ā鍧椾箣闂村浣曟墠鑳戒翰瀵嗘棤闂寸殑鍚堜綔錛屽繀欏昏浜嬪厛鍏卞悓鍒惰濂藉畠浠箣闂翠氦浜掔殑瑙勮寖錛岃繖涓鑼冨氨鏄帴鍙c傛垜浠煡閬撴帴鍙e疄闄呬笂閮芥槸綰櫄綾伙紝瀹冮噷闈㈠畾涔夊ソ浜嗗緢澶氱殑綰櫄鍑芥暟錛岀瓑鐫鏌愪釜緇勪歡鍘誨疄鐜板畠錛岃繖涓帴鍙e氨鏄袱涓畬鍏ㄤ笉鐩稿叧鐨勬ā鍧楄兘澶熺粍鍚堝湪涓璧風殑鍏抽敭璇曟兂涓涓嬪鏋滄垜浠槸涓涓簲鐢ㄨ蔣浠跺巶鍟嗭紝鎴戜滑鐨勮蔣浠朵腑闇瑕佺敤鍒版煇涓ā鍧楋紝鎴戜滑娌℃湁鏃墮棿鑷繁寮鍙戯紝鎵浠ユ垜浠兂鍒板競鍦轟笂鎵句竴鎵劇湅鏈夋病鏈夎繖鏍風殑妯″潡錛屾垜浠庝箞鍘繪壘鍛紵涔熻鎴戜滑闇瑕佺殑榪欎釜妯″潡鍦ㄤ笟鐣屽凡緇忔湁浜嗘爣鍑嗭紝宸茬粡鏈変漢鍒惰濂戒簡鏍囧噯鐨勬帴鍙o紝鏈夊緢澶氱粍浠跺伐鍏峰巶鍟嗗凡緇忓湪鑷繁鐨勭粍浠朵腑瀹炵幇浜嗚繖涓帴鍙o紝閭f垜浠鎵劇殑鐩爣灝辨槸榪欎簺宸茬粡瀹炵幇浜嗘帴鍙g殑緇勪歡錛屾垜浠笉鍏沖績緇勪歡浠庡摢鏉ワ紝瀹冩湁浠涔堝叾瀹冪殑鍔熻兘錛屾垜浠彧鍏沖績瀹冩槸鍚﹀緢濂界殑瀹炵幇浜嗘垜浠埗璁㈠ソ鐨勬帴鍙c傝繖縐嶆帴鍙e彲鑳芥槸涓氱晫鐨勬爣鍑嗭紝涔熷彲鑳藉彧鏄綘鍜屽嚑涓巶鍟嗕箣闂村唴閮ㄥ埗璁㈢殑鍗忚錛屼絾鎬諱箣瀹冩槸涓涓爣鍑嗭紝鏄綘鐨勮蔣浠跺拰鍒漢鐨勬ā鍧楄兘澶熺粍鍚堝湪涓璧風殑鍩虹錛屾槸COM緇勪歡閫氫俊鐨勬爣鍑嗐?

銆銆COM鍏鋒湁璇█鏃犲叧鎬э紝瀹冨彲浠ョ敤浠諱綍璇█緙栧啓錛屼篃鍙互鍦ㄤ換浣曡璦騫沖彴涓婅璋冪敤銆備絾鑷充粖涓烘鎴戜滑涓鐩存槸浠++鐨勭幆澧冧腑璋圕OM錛岄偅瀹冪殑璇█鏃犲叧鎬ф槸鎬庝箞浣撶幇鍑烘潵鐨勫憿錛熸垨鑰呮崲鍙ヨ瘽璇達紝鎴戜滑鎬庢牱鎵嶈兘浠ヨ璦鏃犲叧鐨勬柟寮忔潵瀹氫箟鎺ュ彛鍛紵鍓嶉潰鎴戜滑鏄洿鎺ョ敤綰櫄綾葷殑鏂瑰紡瀹氫箟鐨勶紝浣嗘樉鐒舵槸涓嶈鐨勶紝闄や簡C++璋佽繕璁ゅ畠鍛紵姝f槸鍑轟簬榪欑鑰冭檻錛屽井杞喅瀹氶噰鐢↖DL鏉ュ畾涔夋帴鍙c傝鐧戒簡錛孖DL瀹為檯涓婂氨鏄竴縐嶅ぇ瀹墮兘璁よ瘑鐨勮璦錛岀敤瀹冩潵瀹氫箟鎺ュ彛錛屼笉璁烘斁鍒板摢涓璦騫沖彴涓婇兘璁よ瘑瀹冦傛垜浠彲浠ユ兂璞′竴涓嬬悊鎯崇殑鏍囧噯鐨勭粍浠舵ā寮忥紝鎴戜滑鎬繪槸浠嶪DL寮濮嬶紝鍏堢敤IDL鍒惰濂藉悇涓帴鍙o紝鐒跺悗鎶婂疄鐜版帴鍙g殑浠誨姟鍒嗛厤涓嶅悓鐨勪漢錛屾湁鐨勪漢鍙兘鍠勯暱鐢╒C錛屾湁鐨勪漢鍙兘鍠勯暱鐢╒B錛岃繖娌″叧緋伙紝浣滀負欏圭洰璐熻矗浜烘垜涓嶅叧蹇冭繖浜涳紝鎴戝彧鍏沖績浣犳妸鏈緇堢殑DLL 鎷跨粰鎴戙傝繖鏄竴縐嶅涔堝ソ鐨勫紑鍙戞ā寮忥紝鍙互鐢ㄤ換浣曡璦鏉ュ紑鍙戯紝涔熷彲浠ョ敤浠諱綍璇█鏉ユ璧忎綘鐨勫紑鍙戞垚鏋溿?br>
      璁╂垜浠湅IUnknow鎺ュ彛鐨勫畾涔夋枃浠舵槸鎬庢牱鐨勩?br>

[
  local,
  
object,
  uuid(
00000000-0000-0000-C000-000000000046),
  pointer_default(unique)
]

interface IUnknown
{
    typedef [unique] IUnknown 
*LPUNKNOWN;

cpp_quote(
"//////////////////////////////////////////////////////////////////")
cpp_quote(
"// IID_IUnknown and all other system IIDs are provided in UUID.LIB")
cpp_quote(
"// Link that library in with your proxies, clients and servers")
cpp_quote(
"//////////////////////////////////////////////////////////////////")

    HRESULT QueryInterface(
        [
in] REFIID riid,
        [
out, iid_is(riid)] void **ppvObject);
    ULONG AddRef();
    ULONG Release();
}

[local]灞炴х姝駭鐢熺綉緇滀唬鐮併?br>[
object]灞炴ф槸琛ㄦ槑瀹氫箟鐨勬槸涓涓狢OM鎺ュ彛錛岃屼笉鏄疍EC椋庢牸鐨勬帴鍙c?br>[uuid]灞炴х粰鎺ュ彛涓涓狦UID銆?br>[unique]灞炴ц〃鏄巒ull(絀?鎸囬拡涓轟竴涓悎娉曠殑鍙傛暟鍊箋?br>[pointer_defaul]灞炴ф墍鏈夌殑鍐呭祵鎸囬拡鎸囧畾涓涓粯璁ゆ寚閽堝睘鎬?br>typedef [unique] IUnknown *LPUNKNOWN;榪欐槸涓涓被鍨嬪畾涔?br>cpp_quote榪欎釜姣旇緝鏈夎叮錛岃繖鏄竴涓湪idl鏂囦歡鍐欐敞瑙g殑鏂規硶銆傝繖浜涙敞瑙e皢淇濆瓨鍒?/span>***.h鍜?/span>***_i.c鏂囦歡涓?br>[in]琛ㄧず榪欎釜鍙傛暟鏄叆鍙?br>[out]琛ㄧず榪欎釜鍙傛暟鏄嚭鍙?br>[iid_is(riid)]琛ㄧず榪欎釜鍙傛暟闇瑕佸墠涓涓殑riid 鍙傛暟銆?/span>

 

   (6) COM緇勪歡鐨勮繍琛屾満鍒訛紝鍗矯OM鏄庝箞璺戣搗鏉ョ殑銆?/strong>

銆銆榪欓儴鍒嗘垜浠皢鏋勯犱竴涓垱寤篊OM緇勪歡鐨勬渶灝忔鏋剁粨鏋勶紝鐒跺悗鐪嬩竴鐪嬪叾鍐呴儴澶勭悊嫻佺▼鏄庢牱鐨?

銆銆銆銆IUnknown *pUnk=NULL;
銆銆銆銆IObject 
*pObject=NULL;
銆銆銆銆CoInitialize(NULL);
銆銆銆銆CoCreateInstance(CLSID_Object, CLSCTX_INPROC_SERVER, NULL, IID_IUnknown, (
void**)&pUnk);
銆銆銆銆pUnk
->QueryInterface(IID_IOjbect, (void**)&pObject);
銆銆銆銆pUnk
->Release();
銆銆銆銆pObject
->Func();
銆銆銆銆pObject
->Release();
銆銆銆銆CoUninitialize(); 


銆銆榪欏氨鏄竴涓吀鍨嬬殑鍒涘緩COM緇勪歡鐨勬鏋訛紝涓嶈繃鎴戠殑鍏磋叮鍦–oCreateInstance韜笂錛岃鎴戜滑鏉ョ湅鐪嬪畠鍐呴儴鍋氫簡涓浜涗粈涔堜簨鎯呫備互涓嬫槸瀹冨唴閮ㄥ疄鐜扮殑涓涓吉浠g爜:

銆銆銆銆CoCreateInstance(.)
銆銆銆銆
{
銆銆銆銆.
銆銆銆銆IClassFactory 
*pClassFactory=NULL;
銆銆銆銆CoGetClassObject(CLSID_Object, CLSCTX_INPROC_SERVER, NULL, IID_IClassFactory, (
void **)&pClassFactory);
銆銆銆銆pClassFactory
->CreateInstance(NULL, IID_IUnknown, (void**)&pUnk);
銆銆銆銆pClassFactory
->Release();
銆銆銆銆..
銆銆銆}
 

 

銆銆榪欐璇濈殑鎰忔濆氨鏄厛寰楀埌綾誨巶瀵硅薄錛屽啀閫氳繃綾誨巶鍒涘緩緇勪歡浠庤屽緱鍒癐Unknown鎸囬拡銆傜戶緇繁鍏ヤ竴姝ワ紝鐪嬬湅CoGetClassObject鐨勫唴閮ㄤ吉鐮侊細

銆銆銆CoGetClassObject(..)
銆銆銆
{
銆銆銆銆
//閫氳繃鏌ユ敞鍐岃〃CLSID_Object錛屽緱鐭ョ粍浠禗LL鐨勪綅緗佹枃浠跺悕
銆銆銆銆
//瑁呭叆DLL搴?br>銆銆銆銆//浣跨敤鍑芥暟GetProcAddress()寰楀埌DLL搴撲腑鍑芥暟DllGetClassObject鐨勫嚱鏁版寚閽堛?br>銆銆銆銆//璋冪敤DllGetClassObject 
銆銆銆}

銆銆銆銆DllGetClassObject鏄共浠涔堢殑錛屽畠鏄敤鏉ヨ幏寰楃被鍘傚璞$殑銆傚彧鏈夊厛寰楀埌綾誨巶鎵嶈兘鍘誨垱寤虹粍浠?
銆銆銆銆涓嬮潰鏄疍llGetClassObject鐨勪吉鐮侊細
銆銆銆銆DllGetClassObject()
銆銆銆銆
{
銆銆銆銆
銆銆銆銆CFactory
* pFactory= new CFactory; //綾誨巶瀵硅薄
銆銆銆銆pFactory->QueryInterface(IID_IClassFactory, (void**)&pClassFactory);
銆銆銆銆
//鏌ヨIClassFactory鎸囬拡
銆銆銆銆pFactory->Release();
銆銆銆銆
銆銆銆銆}

銆銆銆銆CoGetClassObject鐨勬祦紼嬪凡緇忓埌姝や負姝紝鐜板湪榪斿洖CoCreateInstance錛岀湅鐪婥reateInstance鐨勪吉鐮侊細
銆銆銆銆CFactory::CreateInstance(..)
銆銆銆銆
{
銆銆銆銆..
銆銆銆銆CObject 
*pObject = new CObject; //緇勪歡瀵硅薄
銆銆銆銆pObject->QueryInterface(IID_IUnknown, (void**)&pUnk);
銆銆銆銆pObject
->Release();
銆銆銆銆..
銆銆銆銆}
 

 

銆銆涓嬪浘鏄粠VCKBASE涓瑿OPY鏉ョ殑涓涓緥紼嬪浘錛屼粠鍥句腑鍙互娓呮鐨勭湅鍒癈OM鐨勬暣涓祦紼嬨?

 

   (7) 涓涓吀鍨嬬殑鑷敞鍐岀殑COM DLL鎵蹇呮湁鐨勫洓涓嚱鏁?

銆銆DllGetClassObject:鐢ㄤ簬鑾峰緱綾誨巶鎸囬拡

銆銆DllRegisterServer:娉ㄥ唽涓浜涘繀瑕佺殑淇℃伅鍒版敞鍐岃〃涓?

銆銆DllUnregisterServer:鍗歌澆娉ㄥ唽淇℃伅

銆銆DllCanUnloadNow:緋葷粺絀洪棽鏃朵細璋冪敤榪欎釜鍑芥暟錛屼互紜畾鏄惁鍙互鍗歌澆DLL

銆銆DLL榪樻湁涓涓嚱鏁版槸DllMain,榪欎釜鍑芥暟鍦–OM涓茍涓嶈姹備竴瀹氳瀹炵幇瀹冿紝浣嗘槸鍦╒C鐢熸垚鐨勭粍浠朵腑鑷姩閮藉寘鍚簡瀹冿紝瀹冪殑浣滅敤涓昏鏄緱鍒頒竴涓叏灞鐨勫疄渚嬪璞°?

   (8) 娉ㄥ唽琛ㄥ湪COM涓殑閲嶈浣滅敤

銆銆棣栧厛瑕佺煡閬揋UID鐨勬蹇碉紝COM涓墍鏈夌殑綾匯佹帴鍙c佺被鍨嬪簱閮界敤GUID鏉ュ敮涓鏍囪瘑錛孏UID鏄竴涓?28浣嶇殑瀛椾覆錛屾牴鎹壒鍒剁畻娉曠敓鎴愮殑GUID鍙互淇濊瘉鏄叏涓栫晫鍞竴鐨勩?COM緇勪歡鐨勫垱寤猴紝鏌ヨ鎺ュ彛閮芥槸閫氳繃娉ㄥ唽琛ㄨ繘琛岀殑銆傛湁浜嗘敞鍐岃〃錛屽簲鐢ㄧ▼搴忓氨涓嶉渶瑕佺煡閬撶粍浠剁殑DLL鏂囦歡鍚嶃佷綅緗紝鍙渶瑕佹牴鎹瓹LSID鏌ュ氨鍙互浜嗐傚綋鐗堟湰鍗囩駭鐨勬椂渚紝鍙鏀逛竴涓嬫敞鍐岃〃淇℃伅灝卞彲浠ョ涓嶇煡楝間笉瑙夌殑杞埌鏂扮増鏈殑DLL銆?

   (9) 濡備綍娉ㄥ唽鍜屽嵏杞紺OM緇勪歡

     鍙兘澶у涔熷彂鐜頒簡錛屽湪璋冪敤鏁翠釜COM緇勪歡鐨勮繃紼嬩腑錛屽茍娌℃湁浠g爜鏉ユ槑紜殑鎵ц鍔犺澆DLL鐨勬搷浣滐紝閭d箞鍒板簳COM鏄庢牱琚皟鐢ㄥ埌寰楀憿錛熷疄闄呬笂錛屽湪COM緇勪歡浣跨敤鍓嶏紝鎴戜滑蹇呴』瑕佸厛鎶婂畠榪涜娉ㄥ唽銆?br>     鎵撳紑鍛戒護琛岀獥鍙o紝鍒癉LL鐨勭洰褰曚笅錛岃繍琛宺egsvr32 xxx.dll錛坸xx.dll灝辨槸浣犵殑鍖呭惈COM緇勪歡鐨凞LL鏂囦歡錛夛紝榪愯榪欎釜鍛戒護鏃訛紝DLL鏂囦歡涓殑DllRegisterServer灝變細琚郴緇熻皟鐢紝榪欎釜COM緇勪歡鐨勪俊鎭氨娉ㄥ叆鍒版敞鍐岃〃涓幓浜嗭紝榪欐椂紼嬪簭灝卞彲浠ラ氳繃GUID浠庢敞鍐岃〃涓壘鍒頒綘鐨凜OM緇勪歡浜嗐傜浉鍙嶏紝濡傛灉浣犳兂鍗歌澆浣犵殑COM緇勪歡錛屽彧闇瑕佽繍琛宺egsvr32 /u xxx.dll錛堝浜嗕釜/u錛夛紝DLL鏂囦歡涓殑DllUnregisterServer灝辨槸琚郴緇熻皟鐢紝榪欎釜COM緇勪歡鐨勪俊鎭氨琚粠娉ㄥ唽琛ㄤ腑鍘婚櫎浜嗭紝涔熷氨瀹屾垚浜嗗嵏杞姐?br>
   (10)涓轟粈涔堣鐢–OM

銆銆杞歡宸ョ▼鍙戝睍鍒頒粖澶╋紝浠庝竴寮濮嬬殑緇撴瀯鍖栫紪紼嬶紝鍒伴潰鍚戝璞$紪紼嬶紝鍐嶅埌鐜板湪鐨凜OM緙栫▼錛岀洰鏍囧彧鏈変竴涓紝灝辨槸甯屾湜杞歡鑳借薄縐柟鍧椾竴鏍鋒槸绱搗鏉ョ殑錛屾槸緇勮璧鋒潵鐨勶紝鑰屼笉鏄竴鐐圭偣緙栧嚭鏉ョ殑銆傜粨鏋勫寲緙栫▼鏄嚱鏁板潡鐨勫艦寮忥紝閫氳繃鎶婁竴涓蔣浠跺垝鍒嗘垚璁稿妯″潡錛屾瘡涓ā鍧楀畬鎴愬悇鑷笉鍚岀殑鍔熻兘錛屽敖閲忓仛鍒伴珮鍐呰仛浣庤棔鍚堬紝榪欏凡緇忔槸涓涓緢濂界殑寮濮嬶紝鎴戜滑鍙互鎶婁笉鍚岀殑妯″潡鍒嗙粰涓嶅悓鐨勪漢鍘誨仛錛岀劧鍚庡悎鍒頒竴鍧楋紝榪欏凡緇忔湁浜嗙粍瑁呯殑姒傚康浜嗐傝蔣浠跺伐紼嬬殑鏍稿績灝辨槸瑕佹ā鍧楀寲錛屾渶鐞嗘兂鐨勬儏鍐靛氨鏄?00%鍐呰仛0%钘曞悎銆傛暣涓蔣浠剁殑鍙戝睍涔熼兘鏄湞鐫榪欎釜鏂瑰悜璧扮殑銆傜粨鏋勫寲緙栫▼鏂瑰紡鍙槸涓涓紑濮嬨備笅涓姝ュ氨鍑虹幇浜嗛潰鍚戝璞$紪紼嬶紝瀹冪浉瀵逛簬闈㈠悜鍔熻兘鐨勭粨鏋勫寲鏂瑰紡鏄竴涓法澶х殑榪涙銆傛垜浠煡閬撴暣涓嚜鐒剁晫閮芥槸鐢卞悇縐嶅悇鏍蜂笉鍚岀殑浜嬬墿緇勬垚鐨勶紝浜嬬墿涔嬮棿瀛樺湪鐫澶嶆潅鐨勫崈涓濅竾緙曠殑鍏崇郴錛岃屾鏄潬鐫浜嬬墿涔嬮棿鐨勮仈緋匯佷氦浜掍綔鐢紝鎴戜滑鐨勪笘鐣屾墠鏄湁鐢熷懡鍔涚殑鎵嶆槸媧誨姩鐨勩傛垜浠彲浠ヨ涓哄湪鑷劧鐣屼腑浜嬬墿鍋氫負涓涓蹇碉紝瀹冩槸紼沖畾鐨勪笉鍙樼殑錛岃屼簨鐗╀箣闂寸殑鑱旂郴鏄鍙樼殑銆佽繍鍔ㄧ殑銆備簨鐗╁簲璇ユ槸榪欎釜涓栫晫鐨勬湰璐ㄦ墍鍦ㄣ傞潰鍚戝璞$殑鐫鐪肩偣灝辨槸浜嬬墿錛屽氨鏄繖縐嶇ǔ瀹氱殑姒傚康銆傛瘡涓簨鐗╅兘鏈夊叾鍥烘湁鐨勫睘鎬э紝閮芥湁鍏跺浐鏈夌殑琛屼負錛岃繖浜涢兘鏄簨鐗╂湰韜墍鍥烘湁鐨勪笢瑗匡紝鑰岄潰鍚戝璞$殑鏂規硶灝辨槸鎻忚堪鍑鴻繖縐嶇ǔ瀹氱殑涓滆タ銆傝岄潰鍚戝姛鑳界殑妯″潡鍖栨柟娉曞畠鐨勭潃鐪肩偣鏄簨鐗╀箣闂寸殑鑱旂郴錛屽畠鐪間腑鐪嬩笉鍒頒簨鐗╃殑姒傚康瀹冨彧娉ㄩ噸鍔熻兘錛屾垜浠鉤甯稿湪鍒掑垎妯″潡鐨勬椂渚湁娌℃湁鎯寵繃榪欎釜鍑芥暟涓庡摢浜涘璞℃湁鍏沖憿錛熷緢灝戞湁浜鴻繖涔堟兂錛屼竴涓嚱鏁板畠瀹炵幇涓縐嶅姛鑳斤紝榪欎釜鍔熻兘蹇呭畾涓庢煇浜涗簨鐗╂兂鑱旂郴錛屾垜浠病鏈夊幓鎺屾彙浜嬬墿鏈韓鑰屽彧鑰冭檻浜嬬墿涔嬮棿鏄庝箞鐩鎬簰浣滅敤鑰屽畬鎴愪竴涓姛鑳界殑銆傝鐧戒簡錛岃繖鍙湰鏈掔疆錛屼篃鍙ュ姛榪戝埄錛屽洜涓轟笉鏄垜浠櫤鎱т笉澶燂紝鍙槸鍥犱負鎴戜滑娌℃湁澶氭兂涓姝ャ傞潰鍚戝姛鑳界殑緇撴瀯鍖栨柟娉曞洜涓哄畠娉ㄦ剰鐨勫彧鏄簨鐗╀箣闂寸殑鑱旂郴錛岃岃仈緋繪槸澶氬彉鐨勶紝浜嬬墿鏈韓鍙兘涓嶄細鍙戠敓澶х殑鍙樺寲錛岃岃仈緋誨垯鏄緢鏈夊彲鑳藉彂鐢熸敼鍙樼殑錛岃仈緋諱竴鍙橈紝閭e氨鏄彟涓涓笘鐣屼簡錛岄偅灝辨槸鍙︿竴縐嶅姛鑳戒簡銆傚鏋滄垜浠敤闈㈠悜瀵硅薄鐨勬柟娉曪紝鎴戜滑灝卞彲浠ヤ互涓嶅彉搴斾竾鍙橈紝鍙浜嬪厛鎶婁簨鐗╃敤綾繪弿榪板ソ錛屾垜浠鏀瑰彉鐨勫彧鏄妸榪欎簺綾昏仈緋昏搗鏉ョ殑鏂規硶錛屽彧鏄噸鏂頒嬌鐢ㄦ垜浠殑綾誨簱錛岃岄潰鍚戣繃紼嬬殑鏂規硶鍥犱負瀹冩瀯閫犵殑鏄竴涓笉紼沖畾鐨勪笘鐣岋紝鎵浠ヤ竴鐐瑰皬灝忕殑鍙樺寲涔熷彲鑳藉鑷存暣涓郴緇熼兘瑕佹敼鍙樸傜劧鑰岄潰鍚戝璞℃柟娉曚粛鐒舵湁闂錛岄棶棰樺湪浜庨噸鐢ㄧ殑鏂規硶銆傛惌縐湪寮忕殑杞歡鏋勯犳柟娉曠殑鍩虹鏄湁璁歌澶氬鍚勭鍚勬牱鐨勫彲閲嶇敤鐨勯儴浠躲佹ā鍧椼傛垜浠鍏堟兂鍒扮殑鏄被搴擄紝鍥犱負鎴戜滑鐢ㄩ潰鍚戝璞$殑鏂規硶浜х敓鐨勭洿鎺ョ粨鏋滃氨鏄澶氱殑綾匯備絾綾誨簱鐨勯噸鐢ㄦ槸鍩轟簬婧愮爜鐨勬柟寮忥紝榪欐槸瀹冪殑閲嶅ぇ緙洪櫡銆傞鍏堝畠闄愬埗浜嗙紪紼嬭璦錛屼綘鐨勭被搴撴繪槸鐢ㄤ竴縐嶈璦鍐欑殑鍚э紝閭d綘灝變笉鑳芥嬁鍒板埆鐨勮璦閲岀敤浜嗐傚叾嬈′綘姣忔閮藉繀欏婚噸鏂扮紪璇戯紝鍙湁緙栬瘧浜嗘墠鑳戒笌浣犺嚜宸辯殑浠g爜緇撳悎鍦ㄤ竴璧風敓鎴愬彲鎵ц鏂囦歡銆傚湪寮鍙戞椂榪欏掓病浠涔堬紝鍏抽敭鍦ㄤ簬寮鍙戝畬鎴愬悗錛屼綘鐨凟XE閮藉凡緇忕敓鎴愬ソ浜嗭紝濡傛灉榪欐椂渚綘鐨勭被搴撴彁渚涘巶鍟嗗憡璇変綘浠栦滑鍙堝仛濂戒簡涓涓柊鐨勭被搴擄紝鍔熻兘鏇村己澶ч熷害鏇村揩錛岃屼綘涓轟箣蹇冨姩鍙堟兂鎶婅繖鏂扮増鐨勭被搴撶敤鍒頒綘鑷繁鐨勭▼搴忎腑錛岄偅浣犲氨蹇呴』閲嶆柊緙栬瘧銆侀噸鏂拌皟璇曪紒榪欑鎴戜滑鐞嗘兂鐨勭Н鏈ㄥ紡杞歡鏋勯犳柟娉曡繕鏈変竴瀹氬樊璺濓紝鍦ㄦ垜浠殑璁炬兂閲屽笇鏈涙妸涓涓ā鍧楁嬁鍑烘潵鍐嶆崲涓涓柊鐨勬ā鍧楁槸闈炲父鏂逛究鐨勪簨錛屽彲鏄幇鍦ㄤ笉浣嗚閲嶆柊緙栬瘧錛岃繕瑕佸啋鐫寰堝ぇ鐨勯闄╋紝鍥犱負浣犲彲鑳借閲嶆柊鏀瑰彉浣犺嚜宸辯殑浠g爜銆傚彟涓縐嶉噸鐢ㄦ柟寮忓緢鑷劧鍦板氨鎯沖埌浜嗘槸DLL鐨勬柟寮忋俉indows閲屽埌澶勬槸DLL錛屽畠鏄疻indows 鐨勫熀紜錛屼絾DLL涔熸湁瀹冭嚜宸辯殑緙虹偣銆傛葷粨涓涓嬪畠鑷沖皯鏈夊洓鐐逛笉瓚熾?1)鍑芥暟閲嶅悕闂銆侱LL閲屾槸涓涓竴涓殑鍑芥暟錛屾垜浠氳繃鍑芥暟鍚嶆潵璋冪敤鍑芥暟錛岄偅濡傛灉涓や釜DLL閲屾湁閲嶅悕鐨勫嚱鏁版庝箞鍔烇紵(2)鍚勭紪璇戝櫒瀵笴錛嬶紜鍑芥暟鐨勫悕縐頒慨楗頒笉鍏煎闂銆傚浜嶤錛嬶紜鍑芥暟錛岀紪璇戝櫒瑕佹牴鎹嚱鏁扮殑鍙傛暟淇℃伅涓哄畠鐢熸垚淇グ鍚嶏紝DLL搴撻噷瀛樼殑灝辨槸榪欎釜淇グ鍚嶏紝浣嗘槸涓嶅悓鐨勭紪璇戝櫒浜х敓淇グ鐨勬柟娉曚笉涓鏍鳳紝鎵浠ヤ綘鍦╒C 閲岀紪鍐欑殑DLL鍦˙C閲屽氨鍙互鐢ㄤ笉浜嗐備笉榪囦篃鍙互鐢╡xtern "C";鏉ュ己璋冧嬌鐢ㄦ爣鍑嗙殑C鍑芥暟鐗規э紝鍏抽棴淇グ鍔熻兘錛屼絾榪欐牱涔熶撫澶變簡C錛嬶紜鐨勯噸杞藉鎬佹у姛鑳姐?3)璺緞闂銆傛斁鍦ㄨ嚜宸辯殑鐩綍涓嬮潰錛屽埆浜虹殑紼嬪簭灝辨壘涓嶅埌錛屾斁鍦ㄧ郴緇熺洰褰曚笅錛屽氨鍙兘鏈夐噸鍚嶇殑闂銆傝岀湡姝g殑緇勪歡搴旇鍙互鏀懼湪浠諱綍鍦版柟鐢氳嚦鍙互涓嶅湪鏈満錛岀敤鎴鋒牴鏈笉闇鑰冭檻榪欎釜闂銆?4)DLL涓嶦XE鐨勪緷璧栭棶棰樸傛垜浠竴鑸兘鏄敤闅愬紡榪炴帴鐨勬柟寮忥紝灝辨槸緙栫▼鐨勬椂渚寚鏄庣敤浠涔圖LL錛岃繖縐嶆柟寮忓緢綆鍗曪紝瀹冨湪緙栬瘧鏃跺氨鎶奅XE涓嶥LL緇戝湪涓璧蜂簡銆傚鏋淒LL鍙戣浜嗕竴涓柊鐗堟湰錛屾垜浠緢鏈夊繀瑕侀噸鏂伴摼鎺ヤ竴嬈★紝鍥犱負DLL閲岄潰鍑芥暟鐨勫湴鍧鍙兘宸茬粡鍙戠敓浜嗘敼鍙樸侱LL鐨勭己鐐瑰氨鏄疌OM鐨勪紭鐐廣傞鍏堟垜浠鍏堟妸鎻′綇涓鐐癸紝COM鍜孌LL涓鏍烽兘鏄熀浜庝簩榪涘埗鐨勪唬鐮侀噸鐢紝鎵浠ュ畠涓嶅瓨鍦ㄧ被搴撻噸鐢ㄦ椂鐨勯棶棰樸傚彟涓涓叧閿偣鏄紝COM鏈韓涔熸槸DLL錛屾棦浣挎槸ActiveX鎺т歡.ocx瀹冨疄闄呬笂涔熸槸DLL錛屾墍浠ヨDLL鍦ㄨ繕鏄湁閲嶇敤涓婃湁寰堝ぇ鐨勪紭鍔匡紝鍙笉榪囨垜浠氳繃鍒惰澶嶆潅鐨凜OM鍗忚錛岄欳OM鏈韓鐨勬満鍒舵敼鍙樹簡閲嶇敤鐨勬柟娉曪紝浠ヤ竴縐嶆柊鐨勬柟娉曟潵鍒╃敤DLL錛屾潵鍏嬫湇DLL鏈韓鎵鍥烘湁鐨勭己闄鳳紝浠庤屽疄鐜版洿楂樹竴綰х殑閲嶇敤鏂規硶銆侰OM娌℃湁閲嶅悕闂錛屽洜涓烘牴鏈笉鏄氳繃鍑芥暟鍚嶆潵璋冪敤鍑芥暟錛岃屾槸閫氳繃铏氬嚱鏁拌〃錛岃嚜鐒朵篃涓嶄細鏈夊嚱鏁板悕淇グ鐨勯棶棰樸傝礬寰勯棶棰樹篃涓嶅瀛樺湪錛屽洜涓烘槸閫氳繃鏌ユ敞鍐岃〃鏉ユ壘緇勪歡鐨勶紝鏀懼湪浠涔堝湴鏂歸兘鍙互錛屽嵆浣垮湪鍒殑鏈哄櫒涓婁篃鍙互銆備篃涓嶇敤鑰冭檻鍜孍XE鐨勪緷璧栧叧緋諱簡錛屽畠浠簩鑰呬箣闂存槸鏉炬暎鐨勭粨鍚堝湪涓璧鳳紝鍙互杞繪澗鐨勬崲涓婄粍浠剁殑涓涓柊鐗堟湰錛岃屽簲鐢ㄧ▼搴忔販鐒朵笉瑙夈?br>



Saga 2009-07-17 16:41 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              在线日本成人| 国内精品视频在线观看| 亚洲天堂成人在线视频| 日韩午夜在线观看视频| 欧美三级精品| 久久本道综合色狠狠五月| 久久xxxx| 一本色道久久综合精品竹菊 | 亚洲男女自偷自拍图片另类| 国产精品国产三级国产aⅴ9色| 香港成人在线视频| 久久久国产精彩视频美女艺术照福利| 狠狠入ady亚洲精品| 久久精品电影| 亚洲欧洲日产国产网站| 亚洲永久免费| 久久精品成人| 亚洲无毛电影| 久久午夜精品| 亚洲欧美日韩高清| 久久久久久欧美| 亚洲一区二区三区国产| 久久色在线观看| 亚洲一区二区三区777| 久久都是精品| 亚洲调教视频在线观看| 久久九九久精品国产免费直播| 亚洲美女在线一区| 久久成人久久爱| 亚洲四色影视在线观看| 久久精品二区亚洲w码| 亚洲视频在线观看视频| 久久人人爽人人爽| 欧美亚洲免费| 欧美日韩国产一区二区三区地区| 久久久久久网| 国产精品自拍在线| 99热精品在线观看| 亚洲精品免费看| 久久午夜视频| 久久久久国产成人精品亚洲午夜| 欧美午夜不卡视频| 亚洲国产精品一区二区尤物区| 国产精品网红福利| 一本一本久久| 一本色道久久综合| 欧美精品在线观看91| 欧美成人中文字幕| 精品不卡视频| 久久爱www.| 久久久久久**毛片大全| 国产精品亚洲аv天堂网| 99亚洲视频| 亚洲深爱激情| 国产精品国产福利国产秒拍| 亚洲人久久久| 一区二区av在线| 欧美日韩精品一区二区三区| 欧美黄色小视频| 亚洲人成毛片在线播放| 欧美r片在线| 亚洲日本中文字幕免费在线不卡| 亚洲国语精品自产拍在线观看| 久久久91精品国产| 美国十次成人| 亚洲激情在线播放| 欧美风情在线观看| 亚洲免费大片| 亚洲欧美日韩在线一区| 国产麻豆午夜三级精品| 欧美一区二区精美| 老妇喷水一区二区三区| 在线免费不卡视频| 欧美国产日韩一区二区| 亚洲人成久久| 午夜宅男久久久| 国内不卡一区二区三区| 久久久综合网| 最新国产成人在线观看| 亚洲欧美激情视频| 国产一区二区在线观看免费播放 | 欧美成人一二三| 亚洲高清不卡| 亚洲一区二区精品在线| 国产精品亚洲成人| 久久夜色精品国产欧美乱极品| 欧美电影在线播放| 亚洲一区免费在线观看| 国产一区二区中文| 免费一级欧美片在线观看| 亚洲麻豆国产自偷在线| 欧美在线视频免费观看| 亚洲高清免费视频| 国产精品国产三级国产专区53 | 欧美成人精品1314www| 99国产精品自拍| 国产亚洲一区二区三区| 欧美岛国激情| 欧美中文字幕不卡| 日韩亚洲综合在线| 六月婷婷一区| 西西人体一区二区| 亚洲精选国产| 国内精品一区二区三区| 欧美亚洲不卡| 欧美高清视频一区| 久久国产精彩视频| 一区二区三区www| 欧美高清一区二区| 久久精品女人的天堂av| 国产精品99久久久久久久vr| 在线日韩中文字幕| 国产日韩精品电影| 欧美性感一类影片在线播放 | 玖玖精品视频| 久久精品国产亚洲aⅴ| 中文av一区二区| 亚洲精品国产欧美| 亚洲电影视频在线| 鲁鲁狠狠狠7777一区二区| 亚洲欧美自拍偷拍| 亚洲午夜久久久| 亚洲麻豆国产自偷在线| 影音先锋另类| 国产综合激情| 国产一区二区三区成人欧美日韩在线观看 | 亚洲一区激情| 9l国产精品久久久久麻豆| 亚洲福利国产| 亚洲大片一区二区三区| 免费在线成人| 欧美大片18| 亚洲成在人线av| 欧美激情一区三区| 亚洲国产成人av好男人在线观看| 老司机精品视频网站| 久久色在线观看| 久久亚洲私人国产精品va媚药 | 久久精品国产99| 久久精品九九| 久久综合精品一区| 久久国产精品久久精品国产| 欧美成人午夜激情视频| 亚洲桃花岛网站| 亚洲天堂成人| 欧美一级视频免费在线观看| 亚洲一区二区在线播放| 午夜精品久久久久| 欧美一区国产在线| 久久精品久久综合| 蜜臀久久99精品久久久久久9| 久久青草久久| 亚洲成人在线视频网站| 日韩手机在线导航| 亚洲一区在线免费| 久久久久久久波多野高潮日日 | 亚洲美女在线看| 日韩午夜电影av| 亚洲综合999| 欧美亚洲专区| 欧美成人中文字幕| 欧美三级在线| 国内久久婷婷综合| 99国产精品国产精品久久| 亚洲一区区二区| 久久免费的精品国产v∧| 亚洲福利一区| 亚洲一级电影| 美女图片一区二区| 欧美四级伦理在线| 狠狠色狠狠色综合日日五| 亚洲精品国产日韩| 午夜性色一区二区三区免费视频| 久久久久在线观看| 亚洲精品日韩久久| 欧美中文字幕不卡| 欧美日韩一区二区精品| 好吊妞**欧美| 亚洲在线播放电影| 免播放器亚洲| 亚洲伊人第一页| 欧美成人午夜激情| 国产色综合网| 亚洲午夜电影在线观看| 免费在线国产精品| 亚洲一区免费看| 欧美极品一区| 亚洲国产成人久久综合| 欧美一区二区视频网站| 亚洲看片一区| 久久综合电影一区| 国产午夜久久久久| 亚洲小视频在线观看| 亚洲第一偷拍| 久久久91精品国产| 国产视频一区二区在线观看| 亚洲一区二区视频| 亚洲精品偷拍| 欧美激情综合在线| 亚洲三级视频在线观看|