锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品系列在线,欧美主播一区二区三区,宅男精品视频http://www.shnenglu.com/netboy/category/16997.htmlzh-cnSun, 29 May 2011 10:18:14 GMTSun, 29 May 2011 10:18:14 GMT60涓枃杈撳叆娉曞叏瑙掑崐瑙掕嚜鍔ㄥ垏鎹㈤棶棰?/title><link>http://www.shnenglu.com/netboy/archive/2011/05/29/147587.html</link><dc:creator>鐜嬪媷鑹?/dc:creator><author>鐜嬪媷鑹?/author><pubDate>Sun, 29 May 2011 04:31:00 GMT</pubDate><guid>http://www.shnenglu.com/netboy/archive/2011/05/29/147587.html</guid><wfw:comment>http://www.shnenglu.com/netboy/comments/147587.html</wfw:comment><comments>http://www.shnenglu.com/netboy/archive/2011/05/29/147587.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/netboy/comments/commentRss/147587.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/netboy/services/trackbacks/147587.html</trackback:ping><description><![CDATA[<p>鏈榪戞湁瀹㈡埛鍦ㄤ嬌鐢ㄦ垜浠殑MIS緋葷粺鐨勬椂鍊欑粡甯擱亣鍒頒竴涓棶棰橈紝濉啓琛ㄥ崟鐨勬椂鍊欐瘡嬈″垏鎹㈡帶浠惰緭鍏ユ硶灝變細杞崲涓哄叏瑙掓ā寮忥紝榪欎釜闂緇欏ぇ瀹墮犳垚浜嗕笉灝忕殑鍥版儜銆?br /> 欏圭洰鏄敤C#寮鍙戠殑錛岀敤鍒頒簡.NET Framework2.0錛岀粡榪囦竴鐣煡鎵撅紝鍙戠幇榪欐槸.NET Framework2.0鐨勪竴涓狟UG</p> <p><a >http://support.microsoft.com/kb/925488</a></p> <p>涓嬭澆瀹夎琛ヤ竵錛圢DP20-KB925488-X86.msp錛夊嵆鍙?/p> <p>鏈夌殑緋葷粺瀹夎涓嶄笂錛屾彁紺?#8220;姝よ蔣浠舵洿鏂頒笌璁$畻鏈轟笂鐨剋indows瀹夎紼嬪簭涓嶅吋瀹癸紝瑕佹洿鏂版偍鐨勮綆楁満璇蜂粠windows涓嬭澆涓績涓嬭澆騫跺畨瑁呯▼搴忓彲鍦ㄥ彂琛岀増鏈?.1鎴栨洿楂樼増鏈紝騫跺畨瑁呯▼搴忓彲鍦ㄥ彂琛岀増鏈?.1鎴栨洿楂樼増鏈?#8221;<br /> <br /> 闇瑕佹洿鏂板鎴風鐨剋indows installer紼嬪簭<br /> <a >http://support.microsoft.com/kb/893803</a></p><img src ="http://www.shnenglu.com/netboy/aggbug/147587.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/netboy/" target="_blank">鐜嬪媷鑹?/a> 2011-05-29 12:31 <a href="http://www.shnenglu.com/netboy/archive/2011/05/29/147587.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦?C# 涓氳繃 P/Invoke 璋冪敤Win32 DLL錛堣漿錛?/title><link>http://www.shnenglu.com/netboy/archive/2009/02/15/73850.html</link><dc:creator>鐜嬪媷鑹?/dc:creator><author>鐜嬪媷鑹?/author><pubDate>Sun, 15 Feb 2009 02:50:00 GMT</pubDate><guid>http://www.shnenglu.com/netboy/archive/2009/02/15/73850.html</guid><wfw:comment>http://www.shnenglu.com/netboy/comments/73850.html</wfw:comment><comments>http://www.shnenglu.com/netboy/archive/2009/02/15/73850.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/netboy/comments/commentRss/73850.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/netboy/services/trackbacks/73850.html</trackback:ping><description><![CDATA[<p>鎴?鍦ㄨ嚜宸辨渶榪戠殑緙栫▼涓敞鎰忓埌涓涓秼鍔匡紝姝f槸榪欎釜瓚嬪娍鎵嶅紩鍑烘湰鏈堢殑涓撴爮涓婚銆傛渶榪戯紝鎴戝湪鍩轟簬 Microsoft® .NET Framework 鐨勫簲鐢ㄧ▼搴忎腑瀹屾垚浜嗗ぇ閲忕殑 Win32® Interop銆傛垜騫朵笉鏄璇存垜鐨勫簲鐢ㄧ▼搴忓厖婊′簡鑷畾涔夌殑 interop 浠g爜錛屼絾鏈夋椂鎴戜細鍦?.NET Framework 綾誨簱涓鍒頒竴浜涙瑕佷絾鍙堢箒緄佷笉鍏呭垎鐨勫唴瀹癸紝閫氳繃璋冪敤璇?Windows® API錛屽彲浠ュ揩閫熷噺灝戣繖鏍風殑楹葷儲銆?/p> <p>鍥犳鎴戣涓猴紝.NET Framework 1.0 鎴?1.1 鐗堢被搴撲腑瀛樺湪浠諱綍 Windows 鎵娌℃湁鐨勫姛鑳介檺鍒墮兘涓嶈凍涓烘傛瘯绔燂紝32 浣嶇殑 Windows錛堜笉綆′綍縐嶇増鏈級鏄竴涓垚鐔熺殑鎿嶄綔緋葷粺錛屼負騫垮ぇ瀹㈡埛鏈嶅姟浜嗗崄澶氬勾銆傜浉姣斾箣涓嬶紝.NET Framework 鍗存槸涓涓柊浜嬬墿銆?/p> <p>闅忕潃瓚婃潵瓚婂鐨勫紑鍙戜漢鍛樺皢鐢熶駭搴旂敤紼嬪簭杞埌鎵樼浠g爜錛屽紑鍙戜漢鍛樻洿棰戠箒鍦扮爺絀跺簳灞傛搷浣滅郴緇熶互鍥炬壘鍑轟竴浜涘叧閿姛鑳芥樉寰楀緢鑷劧 鈥?鑷沖皯鐩墠鏄姝ゃ?/p> <p>鍊煎緱搴嗗垢鐨勬槸錛屽叕鍏辮璦榪愯搴?(CLR) 鐨?interop 鍔熻兘錛堢О涓哄鉤鍙拌皟鐢? (P/Invoke)錛夐潪甯稿畬鍠勩傚湪鏈笓鏍忎腑錛屾垜灝嗛噸鐐逛粙緇嶅浣曞疄闄呬嬌鐢?P/Invoke 鏉ヨ皟鐢?Windows API 鍑芥暟銆傚綋鎸?CLR 鐨? COM Interop 鍔熻兘鏃訛紝P/Invoke 褰撲綔鍚嶈瘝浣跨敤錛涘綋鎸囪鍔熻兘鐨勪嬌鐢ㄦ椂錛屽垯灝嗗叾褰撲綔鍔ㄨ瘝浣跨敤銆傛垜騫朵笉鎵撶畻鐩存帴浠嬬粛 COM Interop錛屽洜涓哄畠姣?P/Invoke 鍏鋒湁鏇村ソ鐨勫彲璁塊棶鎬э紝鍗存洿鍔犲鏉傦紝榪欐湁鐐硅嚜鐩哥煕鐩撅紝榪欎嬌寰楀皢 COM Interop 浣滀負涓撴爮涓婚鏉ヨ璁轟笉澶畝鏄庢壖瑕併?/p> <p>璧拌繘 P/Invoke</p> <p>棣栧厛浠庤冨療涓涓畝鍗曠殑 P/Invoke 紺轟緥寮濮嬨傝鎴戜滑鐪嬩竴鐪嬪浣曡皟鐢?Win32 MessageBeep 鍑芥暟錛屽畠鐨勯潪鎵樼澹版槑濡備互涓嬩唬鐮佹墍紺猴細 </p> <pre class="codeSample">BOOL MessageBeep(<br><br> UINT uType // beep type<br><br>);<br><br></pre> <p>涓轟簡璋冪敤 MessageBeep錛屾偍闇瑕佸湪 C# 涓皢浠ヤ笅浠g爜娣誨姞鍒頒竴涓被鎴栫粨鏋勫畾涔変腑錛?</p> <pre class="codeSample">[DllImport("User32.dll")]<br><br>static extern Boolean MessageBeep(UInt32 beepType);<br><br></pre> <p>浠や漢鎯婅鐨勬槸錛屽彧闇瑕佽繖孌典唬鐮佸氨鍙互浣挎墭綆′唬鐮佽皟鐢ㄩ潪鎵樼鐨?MessageBeep API銆傚畠涓嶆槸涓涓柟娉曡皟鐢紝鑰屾槸涓涓閮ㄦ柟娉曞畾涔夈傦紙鍙﹀錛屽畠鎺ヨ繎浜庝竴涓潵鑷?C 鑰?C# 鍏佽鐨勭洿鎺ョ鍙o紝鍥犳浠ュ畠涓鴻搗鐐規潵浠嬬粛涓浜涙蹇墊槸鏈夊府鍔╃殑銆傦級鏉ヨ嚜鎵樼浠g爜鐨勫彲鑳借皟鐢ㄥ涓嬫墍紺猴細 </p> <pre class="codeSample">MessageBeep(0);<br><br></pre> <p>璇鋒敞鎰忥紝鐜板湪 MessageBeep 鏂規硶琚0鏄庝負 static銆傝繖鏄?P/Invoke 鏂規硶鎵瑕佹眰鐨勶紝鍥犱負鍦ㄨ Windows API 涓病鏈変竴鑷寸殑瀹炰緥姒傚康銆傛帴涓嬫潵錛岃繕瑕佹敞鎰忚鏂規硶琚爣璁頒負 extern銆傝繖鏄彁紺虹紪璇戝櫒璇ユ柟娉曟槸閫氳繃涓涓粠 DLL 瀵煎嚭鐨勫嚱鏁板疄鐜扮殑錛屽洜姝や笉闇瑕佹彁渚涙柟娉曚綋銆?/p> <p>璇村埌緙哄皯鏂規硶浣擄紝鎮ㄦ槸鍚︽敞鎰忓埌 MessageBeep 澹版槑騫舵病鏈夊寘鍚竴涓柟娉曚綋錛熶笌澶у鏁扮畻娉曠敱涓棿璇█ (IL) 鎸囦護緇勬垚鐨勬墭綆℃柟娉曚笉鍚岋紝P/Invoke 鏂規硶鍙槸鍏冩暟鎹紝瀹炴椂 (JIT) 緙栬瘧鍣ㄥ湪榪愯鏃墮氳繃瀹冨皢鎵樼浠g爜涓庨潪鎵樼鐨?DLL 鍑芥暟榪炴帴璧鋒潵銆傛墽琛岃繖縐嶅埌闈炴墭綆′笘鐣岀殑榪炴帴鎵闇鐨勪竴涓噸瑕佷俊鎭氨鏄鍑洪潪鎵樼鏂規硶鐨?DLL 鐨勫悕縐般傝繖涓淇℃伅鏄敱 MessageBeep 鏂規硶澹版槑涔嬪墠鐨?DllImport 鑷畾涔夊睘鎬ф彁渚涚殑銆傚湪鏈緥涓紝鍙互鐪嬪埌錛孧essageBeep 闈炴墭綆?API 鏄敱 Windows 涓殑 User32.dll 瀵煎嚭鐨勩?/p> <p>鍒扮幇鍦ㄤ負姝紝鍏充簬璋冪敤 MessageBeep 灝卞墿涓や釜璇濋娌℃湁浠嬬粛錛岃鍥為【涓涓嬶紝璋冪敤鐨勪唬鐮佷笌浠ヤ笅鎵紺轟唬鐮佺墖孌甸潪甯哥浉浼鹼細 </p> <pre class="codeSample">[DllImport("User32.dll")]<br><br>static extern Boolean MessageBeep(UInt32 beepType);<br><br></pre> <p>鏈鍚庤繖涓や釜璇濋鏄笌鏁版嵁灝侀佸鐞?(data marshaling) 鍜屼粠鎵樼浠g爜鍒伴潪鎵樼鍑芥暟鐨勫疄闄呮柟娉曡皟鐢ㄦ湁鍏崇殑璇濋銆傝皟鐢ㄩ潪鎵樼 MessageBeep 鍑芥暟鍙互鐢辨壘鍒頒綔鐢ㄥ煙鍐呯殑extern MessageBeep 澹版槑鐨勪換浣曟墭綆′唬鐮佹墽琛屻傝璋冪敤綾諱技浜庝換浣曞叾浠栧闈欐佹柟娉曠殑璋冪敤銆傚畠涓庡叾浠栦換浣曟墭綆℃柟娉曡皟鐢ㄧ殑鍏卞悓涔嬪鍦ㄤ簬甯︽潵浜嗘暟鎹皝閫佸鐞嗙殑闇瑕併?</p> <p>C# 鐨勮鍒欎箣涓鏄畠鐨勮皟鐢ㄨ娉曞彧鑳借闂?CLR 鏁版嵁綾誨瀷錛屼緥濡?System.UInt32 鍜?System.Boolean銆侰# 鏄劇劧涓嶈瘑鍒?Windows API 涓嬌鐢ㄧ殑鍩轟簬 C 鐨勬暟鎹被鍨嬶紙渚嬪 UINT 鍜?BOOL錛夛紝榪欎簺綾誨瀷鍙槸 C 璇█綾誨瀷鐨勭被鍨嬪畾涔夎屽凡銆傛墍浠ュ綋 Windows API 鍑芥暟 MessageBeep 鎸変互涓嬫柟寮忕紪鍐欐椂 </p> <pre class="codeSample">BOOL MessageBeep( UINT uType )<br><br></pre> <p>澶栭儴鏂規硶灝卞繀欏諱嬌鐢?CLR 綾誨瀷鏉ュ畾涔夛紝濡傛偍鍦ㄥ墠闈㈢殑浠g爜鐗囨涓墍鐪嬪埌鐨勩傞渶瑕佷嬌鐢ㄤ笌鍩虹 API 鍑芥暟綾誨瀷涓嶅悓浣嗕笌涔嬪吋瀹圭殑 CLR 綾誨瀷鏄?P/Invoke 杈冮毦浣跨敤鐨勪竴涓柟闈€傚洜姝わ紝鍦ㄦ湰涓撴爮鐨勫悗闈㈡垜灝嗙敤瀹屾暣鐨勭珷鑺傛潵浠嬬粛鏁版嵁灝侀佸鐞嗐?</p> <p>鏍峰紡</p> <p>鍦?C# 涓 Windows API 榪涜 P/Invoke 璋冪敤鏄緢綆鍗曠殑銆備絾濡傛灉綾誨簱鎷掔粷浣挎偍鐨勫簲鐢ㄧ▼搴忓彂鍑哄槦澹幫紝搴旇鎯蟲柟璁炬硶璋冪敤 Windows 浣垮畠榪涜榪欓」宸ヤ綔錛屾槸鍚楋紵</p> <p>鏄殑銆備絾鏄笌閫夋嫨鐨勬柟娉曟湁鍏籌紝鑰屼笖鍏崇郴鐢氬ぇ錛侀氬父錛屽鏋滅被搴撴彁渚涙煇縐嶉斿緞鏉ュ疄鐜版偍鐨勬剰鍥撅紝鍒欐渶濂戒嬌鐢?API 鑰屼笉瑕佺洿鎺ヨ皟鐢ㄩ潪鎵樼浠g爜錛屽洜涓? CLR 綾誨瀷鍜?Win32 涔嬮棿鍦ㄦ牱寮忎笂鏈夊緢澶х殑涓嶅悓銆傛垜鍙互灝嗗叧浜庤繖涓棶棰樼殑寤鴻褰掔粨涓轟竴鍙ヨ瘽銆傚綋鎮ㄨ繘琛?P/Invoke 鏃訛紝涓嶈浣垮簲鐢ㄧ▼搴忛昏緫鐩存帴灞炰簬浠諱綍澶栭儴鏂規硶鎴栧叾涓殑鏋勪歡銆傚鏋滄偍閬靛驚榪欎釜灝忚鍒欙紝浠庨暱榪滅湅緇忓父浼氱渷鍘昏澶氱殑楹葷儲銆?/p> <p>鍥?1 涓殑浠g爜鏄劇ず浜嗘垜鎵璁ㄨ鐨?MessageBeep 澶栭儴鏂規硶鐨勬渶灝戦檮鍔犱唬鐮併傚浘 1 涓茍娌℃湁浠諱綍鏄捐憲鐨勫彉鍖栵紝鑰屽彧鏄鏃犲寘瑁呯殑澶栭儴鏂規硶榪涜涓浜涙櫘閫氱殑鏀硅繘錛岃繖鍙互浣垮伐浣滄洿鍔犺交鏉句竴浜涖備粠欏墮儴寮濮嬶紝鎮ㄤ細娉ㄦ剰鍒頒竴涓悕涓?Sound 鐨勫畬鏁寸被鍨嬶紝瀹冧笓鐢ㄤ簬 MessageBeep銆傚鏋滄垜闇瑕佷嬌鐢?Windows API 鍑芥暟 PlaySound 鏉ユ坊鍔犲鎾斁娉㈠艦鐨勬敮鎸侊紝鍒欏彲浠ラ噸鐢?Sound 綾誨瀷銆傜劧鑰岋紝鎴戜笉浼氬洜鍏紑鍗曚釜鍏叡闈欐佹柟娉曠殑綾誨瀷鑰岀敓姘斻傛瘯绔熻繖鍙槸搴旂敤紼嬪簭浠g爜鑰屽凡銆傝繕搴旇娉ㄦ剰鍒幫紝Sound 鏄瘑灝佺殑錛屽茍瀹氫箟浜嗕竴涓┖鐨勭鏈夋瀯閫犲嚱鏁般傝繖浜涘彧鏄竴浜涚粏鑺傦紝鐩殑鏄嬌鐢ㄦ埛涓嶄細閿欒鍦頒粠 Sound 媧劇敓綾繪垨鑰呭垱寤哄畠鐨勫疄渚嬨?/p> <p>鍥?1 涓殑浠g爜鐨勪笅涓涓壒寰佹槸錛孭/Invoke 鍑虹幇浣嶇疆鐨勫疄闄呭閮ㄦ柟娉曟槸 Sound 鐨勭鏈夋柟娉曘傝繖涓柟娉曞彧鏄敱鍏叡 MessageBeep 鏂規硶闂存帴鍏紑錛屽悗鑰呮帴鍙?BeepTypes 綾誨瀷鐨勫弬鏁般傝繖涓棿鎺ョ殑棰濆灞傛槸涓涓緢鍏抽敭鐨勭粏鑺傦紝瀹冩彁渚涗簡浠ヤ笅濂藉銆傞鍏堬紝搴旇鍦ㄧ被搴撲腑寮曞叆涓涓湭鏉ョ殑 beep 鎵樼鏂規硶錛屽彲浠ラ噸澶嶅湴閫氳繃鍏叡 MessageBeep 鏂規硶鏉ヤ嬌鐢ㄦ墭綆?API錛岃屼笉蹇呮洿鏀瑰簲鐢ㄧ▼搴忎腑鐨勫叾浣欎唬鐮併?/p> <p>璇ュ寘瑁呮柟娉曠殑絎簩涓ソ澶勬槸錛氬綋鎮ㄨ繘琛?P/Invoke 璋冪敤鏃訛紝鎮ㄦ斁寮冧簡鍏嶅彈璁塊棶鍐茬獊鍜屽叾浠栦綆綰х牬鍧忕殑鏉冨埄錛岃繖閫氬父鏄敱 CLR 鎻愪緵鐨勩傜紦鍐叉柟娉曞彲浠ヤ繚鎶ゆ偍鐨勫簲鐢ㄧ▼搴忕殑鍏朵綑閮ㄥ垎鍏嶅彈璁塊棶鍐茬獊鍙婄被浼奸棶棰樼殑褰卞搷錛堝嵆浣垮畠涓嶅仛浠諱綍浜嬭屽彧鏄紶閫掑弬鏁幫級銆傝緙撳啿鏂規硶灝嗙敱 P/Invoke 璋冪敤寮曞叆鐨勪換浣曟綔鍦ㄧ殑閿欒鏈湴鍖栥?/p> <p>灝嗙鏈夊閮ㄦ柟娉曢殣钘忓湪鍏叡鍖呰鍚庨潰鐨勭涓夊悓鏃朵篃鏄渶鍚庣殑涓涓ソ澶勬槸錛屾彁渚涗簡鍚戣鏂規硶娣誨姞涓浜涙渶灝忕殑 CLR 鏍峰紡鐨勬満浼氥備緥濡傦紝鍦ㄥ浘 1 涓紝鎴戝皢 Windows API 鍑芥暟榪斿洖鐨?Boolean 澶辮觸杞崲鎴愭洿鍍?CLR 鐨勫紓甯搞傛垜榪樺畾涔変簡涓涓悕涓?BeepTypes 鐨勬灇涓劇被鍨嬶紝瀹冪殑鎴愬憳瀵瑰簲浜庡悓璇?Windows API 涓璧蜂嬌鐢ㄧ殑瀹氫箟鍊箋傜敱浜?C# 涓嶆敮鎸佸畾涔夛紝鍥犳鍙互浣跨敤鎵樼鏋氫婦綾誨瀷鏉ラ伩鍏嶅夠鏁板悜鏁翠釜搴旂敤紼嬪簭浠g爜鎵╂暎銆?/p> <p>鍖呰鏂規硶鐨勬渶鍚庝竴涓ソ澶勫浜庣畝鍗曠殑 Windows API 鍑芥暟錛堝 MessageBeep錛夎瘹鐒舵槸寰笉瓚抽亾鐨勩備絾鏄綋鎮ㄥ紑濮嬭皟鐢ㄦ洿澶嶆潅鐨勯潪鎵樼鍑芥暟鏃訛紝鎮ㄤ細鍙戠幇錛屾墜鍔ㄥ皢 Windows API 鏍峰紡杞崲鎴愬 CLR 鏇村姞鍙嬪ソ鐨勬柟娉曟墍甯︽潵鐨勫ソ澶勪細瓚婃潵瓚婂銆傝秺鏄墦綆楀湪鏁翠釜搴旂敤紼嬪簭涓噸鐢?interop 鍔熻兘錛岃秺鏄簲璇ヨ鐪熷湴鑰冭檻鍖呰鐨勮璁°傚悓鏃舵垜璁や負錛屽湪闈為潰鍚戝璞$殑闈欐佸寘瑁呮柟娉曚腑浣跨敤瀵?CLR 鍙嬪ソ鐨勫弬鏁頒篃騫墮潪涓嶅彲浠ャ?/p> <p>DLL Import 灞炴?/p> <p>鐜板湪鏄洿娣卞叆鍦拌繘琛屾帰璁ㄧ殑鏃跺欎簡銆傚湪瀵規墭綆′唬鐮佽繘琛?P/Invoke 璋冪敤鏃訛紝DllImportAttribute 綾誨瀷鎵紨鐫閲嶈鐨勮鑹層侱llImportAttribute 鐨勪富瑕佷綔鐢ㄦ槸緇?CLR 鎸囩ず鍝釜 DLL 瀵煎嚭鎮ㄦ兂瑕佽皟鐢ㄧ殑鍑芥暟銆傜浉鍏?DLL 鐨勫悕縐拌浣滀負涓涓瀯閫犲嚱鏁板弬鏁頒紶閫掔粰 DllImportAttribute銆?/p> <p>濡傛灉鎮ㄦ棤娉曡偗瀹氬摢涓?DLL 瀹氫箟浜嗘偍瑕佷嬌鐢ㄧ殑 Windows API 鍑芥暟錛孭latform SDK 鏂囨。灝嗕負鎮ㄦ彁渚涙渶濂界殑甯姪璧勬簮銆傚湪 Windows API 鍑芥暟涓婚鏂囧瓧涓磋繎緇撳熬鐨勪綅緗紝SDK 鏂囨。鎸囧畾浜?C 搴旂敤紼嬪簭瑕佷嬌鐢ㄨ鍑芥暟蹇呴』閾炬帴鐨?.lib 鏂囦歡銆傚湪鍑犱箮鎵鏈夌殑鎯呭喌涓嬶紝璇?.lib 鏂囦歡鍏鋒湁涓庡畾涔夎鍑芥暟鐨勭郴緇?DLL 鏂囦歡鐩稿悓鐨勫悕縐般備緥濡傦紝濡傛灉璇ュ嚱鏁伴渶瑕?C 搴旂敤紼嬪簭閾炬帴鍒? Kernel32.lib錛屽垯璇ュ嚱鏁板氨瀹氫箟鍦?Kernel32.dll 涓傛偍鍙互鍦?MessageBeep 涓壘鍒版湁鍏?MessageBeep 鐨?Platform SDK 鏂囨。涓婚銆傚湪璇ヤ富棰樼粨灝懼錛屾偍浼氭敞鎰忓埌瀹冩寚鍑哄簱鏂囦歡鏄?User32.lib錛涜繖琛ㄦ槑 MessageBeep 鏄粠 User32.dll 涓鍑虹殑銆?/p> <p>鍙夌殑 DllImportAttribute 灞炴?/p> <p>闄や簡鎸囧嚭瀹夸富 DLL 澶栵紝DllImportAttribute 榪樺寘鍚簡涓浜涘彲閫夊睘鎬э紝鍏朵腑鍥涗釜鐗瑰埆鏈夎叮錛欵ntryPoint銆丆harSet銆丼etLastError 鍜?CallingConvention銆?/p> <p>EntryPoint 鍦ㄤ笉甯屾湜澶栭儴鎵樼鏂規硶鍏鋒湁涓?DLL 瀵煎嚭鐩稿悓鐨勫悕縐扮殑鎯呭喌涓嬶紝鍙互璁劇疆璇ュ睘鎬ф潵鎸囩ず瀵煎嚭鐨?DLL 鍑芥暟鐨勫叆鍙g偣鍚嶇О銆傚綋鎮ㄥ畾涔変袱涓皟鐢ㄧ浉鍚岄潪鎵樼鍑芥暟鐨勫閮ㄦ柟娉曟椂錛岃繖鐗瑰埆鏈夌敤銆傚彟澶栵紝鍦?Windows 涓繕鍙互閫氳繃瀹冧滑鐨勫簭鍙峰肩粦瀹氬埌瀵煎嚭鐨? DLL 鍑芥暟銆傚鏋滄偍闇瑕佽繖鏍峰仛錛屽垯璇稿“#1”鎴?#8220;#129”鐨?EntryPoint 鍊兼寚紺?DLL 涓潪鎵樼鍑芥暟鐨勫簭鍙峰艱屼笉鏄嚱鏁板悕銆?/p> <p>CharSet 瀵逛簬瀛楃闆嗭紝騫墮潪鎵鏈夌増鏈殑 Windows 閮芥槸鍚屾牱鍒涘緩鐨勩俉indows 9x 緋誨垪浜у搧緙哄皯閲嶈鐨?Unicode 鏀寔錛岃?Windows NT 鍜?Windows CE 緋誨垪鍒欎竴寮濮嬪氨浣跨敤 Unicode銆傚湪榪欎簺鎿嶄綔緋葷粺涓婅繍琛岀殑 CLR 灝哢nicode 鐢ㄤ簬 String 鍜?Char 鏁版嵁鐨勫唴閮ㄨ〃紺恒備絾涔熶笉蹇呮媴蹇?鈥?褰撹皟鐢?Windows 9x API 鍑芥暟鏃訛紝CLR 浼氳嚜鍔ㄨ繘琛屽繀瑕佺殑杞崲錛屽皢鍏朵粠 Unicode杞崲涓?ANSI銆?/p> <p>濡傛灉 DLL 鍑芥暟涓嶄互浠諱綍鏂瑰紡澶勭悊鏂囨湰錛屽垯鍙互蹇界暐 DllImportAttribute 鐨?CharSet 灞炴с傜劧鑰岋紝褰?Char 鎴?String 鏁版嵁鏄瓑寮忕殑涓閮ㄥ垎鏃訛紝搴旇灝?CharSet 灞炴ц緗負 CharSet.Auto銆傝繖鏍峰彲浠ヤ嬌 CLR 鏍規嵁瀹夸富 OS 浣跨敤閫傚綋鐨勫瓧絎﹂泦銆傚鏋滄病鏈夋樉寮忓湴璁劇疆 CharSet 灞炴э紝鍒欏叾榛樿鍊間負 CharSet.Ansi銆傝繖涓粯璁ゅ兼槸鏈夌己鐐圭殑錛屽洜涓哄浜庡湪 Windows 2000銆乄indows XP 鍜?Windows NT® 涓婅繘琛岀殑 interop 璋冪敤錛屽畠浼氭秷鏋佸湴褰卞搷鏂囨湰鍙傛暟灝侀佸鐞嗙殑鎬ц兘銆?/p> <p>搴旇鏄懼紡鍦伴夋嫨 CharSet.Ansi 鎴?CharSet.Unicode 鐨?CharSet 鍊艱屼笉鏄嬌鐢?CharSet.Auto 鐨勫敮涓鎯呭喌鏄細鎮ㄦ樉寮忓湴鎸囧畾浜嗕竴涓鍑哄嚱鏁幫紝鑰岃鍑芥暟鐗瑰畾浜庤繖涓ょ Win32 OS 涓殑鏌愪竴縐嶃俁eadDirectoryChangesW API 鍑芥暟灝辨槸榪欐牱鐨勪竴涓緥瀛愶紝瀹冨彧瀛樺湪浜庡熀浜?Windows NT 鐨勬搷浣滅郴緇熶腑錛屽茍涓斿彧鏀寔 Unicode錛涘湪榪欑鎯呭喌涓嬶紝鎮ㄥ簲璇ユ樉寮忓湴浣跨敤 CharSet.Unicode銆?/p> <p>鏈夋椂錛學indows API 鏄惁鏈夊瓧絎﹂泦鍏崇郴騫朵笉鏄庢樉銆備竴縐嶅喅涓嶄細鏈夐敊鐨勭‘璁ゆ柟娉曟槸鍦?Platform SDK 涓鏌ヨ鍑芥暟鐨?C 璇█澶存枃浠躲傦紙濡傛灉鎮ㄦ棤娉曡偗瀹氳鐪嬪摢涓ご鏂囦歡錛屽垯鍙互鏌ョ湅 Platform SDK 鏂囨。涓垪鍑虹殑姣忎釜 API 鍑芥暟鐨勫ご鏂囦歡銆傦級濡傛灉鎮ㄥ彂鐜拌 API 鍑芥暟紜疄瀹氫箟涓轟竴涓槧灝勫埌浠?A 鎴?W 緇撳熬鐨勫嚱鏁板悕鐨勫畯錛屽垯瀛楃闆嗕笌鎮ㄥ皾璇曡皟鐢ㄧ殑鍑芥暟鏈夊叧緋匯俉indows API 鍑芥暟鐨勪竴涓緥瀛愭槸鍦? WinUser.h 涓0鏄庣殑 GetMessage API錛屾偍涔熻浼氭儕璁跺湴鍙戠幇瀹冩湁 A 鍜?W 涓ょ鐗堟湰銆?/p> <p>SetLastError 閿欒澶勭悊闈炲父閲嶈錛屼絾鍦ㄧ紪紼嬫椂緇忓父琚仐蹇樸傚綋鎮ㄨ繘琛?P/Invoke 璋冪敤鏃訛紝涔熶細闈復鍏朵粬鐨勬寫鎴?鈥?澶勭悊鎵樼浠g爜涓?Windows API 閿欒澶勭悊鍜屽紓甯鎬箣闂寸殑鍖哄埆銆傛垜鍙互緇欐偍涓鐐瑰緩璁?/p> <p>濡傛灉鎮ㄦ鍦ㄤ嬌鐢?P/Invoke 璋冪敤 Windows API 鍑芥暟錛岃屽浜庤鍑芥暟錛屾偍浣跨敤 GetLastError 鏉ユ煡鎵炬墿灞曠殑閿欒淇℃伅錛屽垯搴旇鍦ㄥ閮ㄦ柟娉曠殑 DllImportAttribute 涓皢 SetLastError 灞炴ц緗負 true銆傝繖閫傜敤浜庡ぇ澶氭暟澶栭儴鏂規硶銆?/p> <p>榪欎細瀵艱嚧 CLR 鍦ㄦ瘡嬈¤皟鐢ㄥ閮ㄦ柟娉曚箣鍚庣紦瀛樼敱 API 鍑芥暟璁劇疆鐨勯敊璇傜劧鍚庯紝鍦ㄥ寘瑁呮柟娉曚腑錛屽彲浠ラ氳繃璋冪敤綾誨簱鐨? System.Runtime.InteropServices.Marshal 綾誨瀷涓畾涔夌殑 Marshal.GetLastWin32Error 鏂規硶鏉ヨ幏鍙栫紦瀛樼殑閿欒鍊箋傛垜鐨勫緩璁槸媯鏌ヨ繖浜涙湡鏈涙潵鑷?API 鍑芥暟鐨勯敊璇鹼紝騫朵負榪欎簺鍊煎紩鍙戜竴涓彲鎰熺煡鐨勫紓甯搞傚浜庡叾浠栨墍鏈夊け璐ユ儏鍐碉紙鍖呮嫭鏍規湰灝辨病鎰忔枡鍒扮殑澶辮觸鎯呭喌錛夛紝鍒欏紩鍙戝湪 System.ComponentModel 鍛藉悕絀洪棿涓畾涔夌殑 Win32Exception錛屽茍灝? Marshal.GetLastWin32Error 榪斿洖鐨勫間紶閫掔粰瀹冦傚鏋滄偍鍥炲ご鐪嬩竴涓嬪浘 1 涓殑浠g爜錛屾偍浼氱湅鍒版垜鍦?extern MessageBeep 鏂規硶鐨勫叕鍏卞寘瑁呬腑灝遍噰鐢ㄤ簡榪欑鏂規硶銆?/p> <p>CallingConvention 鎴戝皢鍦ㄦ浠嬬粛鐨勬渶鍚庝篃鍙兘鏄渶涓嶉噸瑕佺殑涓涓?DllImportAttribute 灞炴ф槸 CallingConvention銆傞氳繃姝ゅ睘鎬э紝鍙互緇?CLR 鎸囩ず搴旇灝嗗摢縐嶅嚱鏁拌皟鐢ㄧ害瀹氱敤浜庡爢鏍堜腑鐨勫弬鏁般侰allingConvention.Winapi 鐨勯粯璁ゅ兼槸鏈濂界殑閫夋嫨錛屽畠鍦ㄥぇ澶氭暟鎯呭喌涓嬮兘鍙銆傜劧鑰岋紝濡傛灉璇ヨ皟鐢ㄤ笉璧蜂綔鐢紝鍒欏彲浠ユ鏌?Platform SDK 涓殑澹版槑澶存枃浠訛紝鐪嬬湅鎮ㄨ皟鐢ㄧ殑 API 鍑芥暟鏄惁鏄竴涓笉絎﹀悎璋冪敤綰﹀畾鏍囧噯鐨勫紓甯?API銆?/p> <p>閫氬父錛屾湰鏈哄嚱鏁幫紙渚嬪 Windows API 鍑芥暟鎴?C- 榪愯鏃?DLL 鍑芥暟錛夌殑璋冪敤綰﹀畾鎻忚堪浜嗗浣曞皢鍙傛暟鎺ㄥ叆綰跨▼鍫嗘爤鎴栦粠綰跨▼鍫嗘爤涓竻闄ゃ傚ぇ澶氭暟 Windows API 鍑芥暟閮芥槸棣栧厛灝嗗嚱鏁扮殑鏈鍚庝竴涓弬鏁版帹鍏ュ爢鏍堬紝鐒跺悗鐢辮璋冪敤鐨勫嚱鏁拌礋璐f竻鐞嗚鍫嗘爤銆傜浉鍙嶏紝璁稿 C-榪愯鏃?DLL 鍑芥暟閮借瀹氫箟涓烘寜鐓ф柟娉曞弬鏁板湪鏂規硶絳懼悕涓嚭鐜扮殑欏哄簭灝嗗叾鎺ㄥ叆鍫嗘爤錛屽皢鍫嗘爤娓呯悊宸ヤ綔浜ょ粰璋冪敤鑰呫?/p> <p>騫歌繍鐨勬槸錛岃璁?P/Invoke 璋冪敤宸ヤ綔鍙渶瑕佽澶栧洿璁懼鐞嗚В璋冪敤綰﹀畾鍗沖彲銆傞氬父錛屼粠榛樿鍊? CallingConvention.Winapi 寮濮嬫槸鏈濂界殑閫夋嫨銆傜劧鍚庯紝鍦?C 榪愯鏃?DLL 鍑芥暟鍜屽皯鏁板嚱鏁頒腑錛屽彲鑳介渶瑕佸皢綰﹀畾鏇存敼涓? CallingConvention.Cdecl銆?/p> <p>鏁版嵁灝侀佸鐞?/p> <p>鏁版嵁灝侀佸鐞嗘槸 P/Invoke 鍏鋒湁鎸戞垬鎬х殑鏂歸潰銆傚綋鍦ㄦ墭綆″拰闈炴墭綆′唬鐮佷箣闂翠紶閫掓暟鎹椂錛孋LR 閬靛驚璁稿瑙勫垯錛屽緢灝戞湁寮鍙戜漢鍛樹細緇忓父閬囧埌瀹冧滑鐩磋嚦鍙皢榪欎簺瑙勫垯璁頒綇銆傞櫎闈炴偍鏄竴鍚嶇被搴撳紑鍙戜漢鍛橈紝鍚﹀垯鍦ㄩ氬父鎯呭喌涓嬫病鏈夊繀瑕佹帉鎻″叾緇嗚妭銆備負浜嗘渶鏈夋晥鍦板湪 CLR 涓婁嬌鐢?P/Invoke錛屽嵆浣垮彧鍋跺皵闇瑕?interop 鐨勫簲鐢ㄧ▼搴忓紑鍙戜漢鍛樹粛鐒跺簲璇ョ悊瑙f暟鎹皝閫佸鐞嗙殑涓浜涘熀紜鐭ヨ瘑銆?/p> <p>鍦ㄦ湰鏈堜笓鏍忕殑鍓╀綑閮ㄥ垎涓紝鎴戝皢璁ㄨ綆鍗曟暟瀛楀拰瀛楃涓叉暟鎹殑鏁版嵁灝侀佸鐞嗐傛垜灝嗕粠鏈鍩烘湰鐨勬暟瀛楁暟鎹皝閫佸鐞嗗紑濮嬶紝鐒跺悗浠嬬粛綆鍗曠殑鎸囬拡灝侀佸鐞嗗拰瀛楃涓插皝閫佸鐞嗐?/p> <p>灝侀佹暟瀛楀拰閫昏緫鏍囬噺</p> <p>Windows OS 澶ч儴鍒嗘槸鐢?C 緙栧啓鐨勩傚洜姝わ紝Windows API 鎵鐢ㄥ埌鐨勬暟鎹被鍨嬭涔堟槸 C 綾誨瀷錛岃涔堟槸閫氳繃綾誨瀷瀹氫箟鎴栧畯瀹氫箟閲嶆柊鏍囪鐨?C 綾誨瀷銆傝鎴戜滑鐪嬬湅娌℃湁鎸囬拡鐨勬暟鎹皝閫佸鐞嗐傜畝鍗曡搗瑙侊紝棣栧厛閲嶇偣璁ㄨ鐨勬槸鏁板瓧鍜屽竷灝斿箋?/p> <p>褰撻氳繃鍊煎悜 Windows API 鍑芥暟浼犻掑弬鏁版椂錛岄渶瑕佺煡閬撲互涓嬮棶棰樼殑絳旀錛?</p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="listBullet" valign="top">•</td> <td class="listItem"> <p>鏁版嵁浠庢牴鏈笂璁叉槸鏁村瀷鐨勮繕鏄誕鐐瑰瀷鐨勶紵 </p> </td> </tr> <tr> <td class="listBullet" valign="top">•</td> <td class="listItem"> <p>濡傛灉鏁版嵁鏄暣鍨嬬殑錛屽垯瀹冩槸鏈夌鍙風殑榪樻槸鏃犵鍙風殑錛?</p> </td> </tr> <tr> <td class="listBullet" valign="top">•</td> <td class="listItem"> <p>濡傛灉鏁版嵁鏄暣鍨嬬殑錛屽垯瀹冪殑浣嶆暟鏄灝戯紵 </p> </td> </tr> <tr> <td class="listBullet" valign="top">•</td> <td class="listItem"> <p>濡傛灉鏁版嵁鏄誕鐐瑰瀷鐨勶紝鍒欏畠鏄崟綺懼害鐨勮繕鏄弻綺懼害鐨勶紵</p> </td> </tr> </tbody> </table> <p>鏈夋椂絳旀寰堟槑鏄撅紝浣嗘湁鏃跺嵈涓嶆槑鏄俱俉indows API 浠ュ悇縐嶆柟寮忛噸鏂板畾涔変簡鍩烘湰鐨?C 鏁版嵁綾誨瀷銆傚浘 2 鍒楀嚭浜?C 鍜?Win32 鐨勪竴浜涘叕鍏辨暟鎹被鍨嬪強鍏惰鑼冿紝浠ュ強涓涓叿鏈夊尮閰嶈鑼冪殑鍏叡璇█榪愯搴撶被鍨嬨?</p> <p>閫氬父錛屽彧瑕佹偍閫夋嫨涓涓叾瑙勮寖涓庤鍙傛暟鐨?Win32 綾誨瀷鐩稿尮閰嶇殑 CLR 綾誨瀷錛屾偍鐨勪唬鐮佸氨鑳藉姝e父宸ヤ綔銆備笉榪囦篃鏈変竴浜涚壒渚嬨備緥濡傦紝鍦? Windows API 涓畾涔夌殑 BOOL 綾誨瀷鏄竴涓湁絎﹀彿鐨?32 浣嶆暣鍨嬨傜劧鑰岋紝BOOL 鐢ㄤ簬鎸囩ず Boolean 鍊?true 鎴? false銆傝櫧鐒舵偍涓嶇敤灝?BOOL 鍙傛暟浣滀負 System.Int32 鍊煎皝閫侊紝浣嗘槸濡傛灉浣跨敤 System.Boolean 綾誨瀷錛屽氨浼氳幏寰楁洿鍚堥傜殑鏄犲皠銆傚瓧絎︾被鍨嬬殑鏄犲皠綾諱技浜?BOOL錛屽洜涓烘湁涓涓壒瀹氱殑 CLR 綾誨瀷 (System.Char) 鎸囧嚭瀛楃鐨勫惈涔夈?/p> <p>鍦ㄤ簡瑙h繖浜涗俊鎭箣鍚庯紝閫愭浠嬬粛紺轟緥鍙兘鏄湁甯姪鐨勩備緷鐒墮噰鐢?beep 涓婚浣滀負渚嬪瓙錛岃鎴戜滑鏉ヨ瘯涓涓?Kernel32.dll 浣庣駭 Beep錛屽畠浼氶氳繃璁$畻鏈虹殑鎵0鍣ㄥ彂鐢熷槦澹般傝繖涓柟娉曠殑 Platform SDK 鏂囨。鍙互鍦?Beep 涓壘鍒般傛湰鏈?API 鎸変互涓嬫柟寮忚繘琛岃褰曪細 </p> <pre class="codeSample">BOOL Beep(<br><br> DWORD dwFreq, // Frequency<br><br> DWORD dwDuration // Duration in milliseconds<br><br>);<br><br></pre> <p>鍦ㄥ弬鏁板皝閫佸鐞嗘柟闈紝鎮ㄧ殑宸ヤ綔鏄簡瑙d粈涔?CLR 鏁版嵁綾誨瀷涓?Beep API 鍑芥暟鎵浣跨敤鐨?DWORD 鍜?BOOL 鏁版嵁綾誨瀷鐩稿吋瀹廣傚洖欏句竴涓嬪浘 2 涓殑鍥捐〃錛屾偍灝嗙湅鍒?DWORD 鏄竴涓?32 浣嶇殑鏃犵鍙鋒暣鏁板鹼紝濡傚悓 CLR 綾誨瀷 System.UInt32銆傝繖鎰忓懗鐫鎮ㄥ彲浠ヤ嬌鐢?UInt32 鍊間綔涓洪佸線 Beep 鐨勪袱涓弬鏁般侭OOL 榪斿洖鍊兼槸涓涓潪甯告湁瓚g殑鎯呭喌錛屽洜涓鴻鍥捐〃鍛婅瘔鎴戜滑錛屽湪 Win32 涓紝BOOL 鏄竴涓?32 浣嶇殑鏈夌鍙鋒暣鏁般傚洜姝わ紝鎮ㄥ彲浠ヤ嬌鐢? System.Int32 鍊間綔涓烘潵鑷?Beep 鐨勮繑鍥炲箋傜劧鑰岋紝CLR 涔熷畾涔変簡 System.Boolean 綾誨瀷浣滀負 Boolean 鍊肩殑璇箟錛屾墍浠ュ簲璇ヤ嬌鐢ㄥ畠鏉ユ浛浠c侰LR 榛樿灝?System.Boolean 鍊煎皝閫佷負 32 浣嶇殑鏈夌鍙鋒暣鏁般傛澶勬墍鏄劇ず鐨勫閮ㄦ柟娉曞畾涔夋槸鐢ㄤ簬 Beep 鐨勭粨鏋?P/Invoke 鏂規硶錛?</p> <pre class="codeSample">[DllImport("Kernel32.dll", SetLastError=true)]<br><br>static extern Boolean Beep(<br><br> UInt32 frequency, UInt32 duration);<br><br></pre> <p>鎸囬拡鍙傛暟</p> <p>璁稿 Windows API 鍑芥暟灝嗘寚閽堜綔涓哄畠浠殑涓涓垨澶氫釜鍙傛暟銆傛寚閽堝鍔犱簡灝侀佹暟鎹殑澶嶆潅鎬э紝鍥犱負瀹冧滑澧炲姞浜嗕竴涓棿鎺ュ眰銆傚鏋滄病鏈夋寚閽堬紝鎮ㄥ彲浠ラ氳繃鍊煎湪綰跨▼鍫嗘爤涓紶閫掓暟鎹傛湁浜嗘寚 閽堬紝鍒欏彲浠ラ氳繃寮曠敤浼犻掓暟鎹紝鏂規硶鏄皢璇ユ暟鎹殑鍐呭瓨鍦板潃鎺ㄥ叆綰跨▼鍫嗘爤涓傜劧鍚庯紝鍑芥暟閫氳繃鍐呭瓨鍦板潃闂存帴璁塊棶鏁版嵁銆備嬌鐢ㄦ墭綆′唬鐮佽〃紺烘闄勫姞闂存帴灞傜殑鏂瑰紡鏈夊 縐嶃?/p> <p>鍦?C# 涓紝濡傛灉灝嗘柟娉曞弬鏁板畾涔変負 ref 鎴?out錛屽垯鏁版嵁閫氳繃寮曠敤鑰屼笉鏄氳繃鍊間紶閫掋傚嵆浣挎偍娌℃湁浣跨敤 Interop 涔熸槸榪欐牱錛屼絾鍙槸浠庝竴涓墭綆℃柟娉曡皟鐢ㄥ埌鍙︿竴涓墭綆℃柟娉曘備緥濡傦紝濡傛灉閫氳繃 ref 浼犻?System.Int32 鍙傛暟錛屽垯鍦ㄧ嚎紼嬪爢鏍堜腑浼犻掔殑鏄鏁版嵁鐨勫湴鍧錛岃屼笉鏄暣鏁板兼湰韜備笅闈㈡槸涓涓畾涔変負閫氳繃寮曠敤鎺ユ敹鏁存暟鍊肩殑鏂規硶鐨勭ず渚嬶細 </p> <pre class="codeSample">void FlipInt32(ref Int32 num){<br><br> num = -num;<br><br>}<br><br></pre> <p>榪欓噷錛孎lipInt32 鏂規硶鑾峰彇涓涓?Int32 鍊肩殑鍦板潃銆佽闂暟鎹佸瀹冩眰鍙嶏紝鐒跺悗灝嗘眰鍙嶈繃鐨勫艱祴緇欏師濮嬪彉閲忋傚湪浠ヤ笅浠g爜涓紝FlipInt32 鏂規硶浼氬皢璋冪敤紼嬪簭鐨勫彉閲?x 鐨勫間粠 10 鏇存敼涓?-10錛?</p> <pre class="codeSample">Int32 x = 10;<br><br>FlipInt32(ref x);<br><br></pre> <p>鍦ㄦ墭綆′唬鐮佷腑鍙互閲嶇敤榪欑鑳藉姏錛屽皢鎸囬拡浼犻掔粰闈炴墭綆′唬鐮併備緥濡傦紝FileEncryptionStatus API 鍑芥暟浠?32 浣嶆棤絎﹀彿浣嶆帺鐮佺殑褰㈠紡榪斿洖鏂囦歡鍔犲瘑鐘舵併傝 API 鎸変互涓嬫墍紺烘柟寮忚繘琛岃褰曪細 </p> <pre class="codeSample">BOOL FileEncryptionStatus(<br><br> LPCTSTR lpFileName, // file name<br><br> LPDWORD lpStatus // encryption status<br><br>);<br><br></pre> <p>璇鋒敞鎰忥紝璇ュ嚱鏁板茍涓嶄嬌鐢ㄥ畠鐨勮繑鍥炲艱繑鍥炵姸鎬侊紝鑰屾槸榪斿洖涓涓?Boolean 鍊鹼紝鎸囩ず璋冪敤鏄惁鎴愬姛銆傚湪鎴愬姛鐨勬儏鍐典笅錛屽疄闄呯殑鐘舵佸兼槸閫氳繃絎簩涓弬鏁拌繑鍥炵殑銆傚畠鐨勫伐浣滄柟寮忔槸璋冪敤紼嬪簭鍚戣鍑芥暟浼犻掓寚鍚戜竴涓?DWORD 鍙橀噺鐨勬寚閽堬紝鑰岃 API 鍑芥暟鐢ㄧ姸鎬佸煎~鍏呮寚鍚戠殑鍐呭瓨浣嶇疆銆備互涓嬩唬鐮佺墖孌墊樉紺轟簡涓涓皟鐢ㄩ潪鎵樼 FileEncryptionStatus 鍑芥暟鐨勫彲鑳藉閮ㄦ柟娉曞畾涔夛細 </p> <pre class="codeSample">[DllImport("Advapi32.dll", CharSet=CharSet.Auto)]<br><br>static extern Boolean FileEncryptionStatus(String filename, <br><br> out UInt32 status);<br><br></pre> <p>璇ュ畾涔変嬌鐢?out 鍏抽敭瀛楁潵涓?UInt32 鐘舵佸兼寚紺?by-ref 鍙傛暟銆傝繖閲屾垜涔熷彲浠ラ夋嫨 ref 鍏抽敭瀛楋紝瀹為檯涓婂湪榪愯鏃朵細浜х敓鐩稿悓鐨勬満鍣ㄧ爜銆俹ut 鍏抽敭瀛楀彧鏄竴涓?by-ref 鍙傛暟鐨勮鑼冿紝瀹冨悜 C# 緙栬瘧鍣ㄦ寚紺烘墍浼犻掔殑鏁版嵁鍙湪琚皟鐢ㄧ殑鍑芥暟澶栭儴浼犻掋傜浉鍙嶏紝濡傛灉浣跨敤 ref 鍏抽敭瀛楋紝鍒欑紪璇戝櫒浼氬亣瀹氭暟鎹彲浠ュ湪琚皟鐢ㄧ殑鍑芥暟鐨勫唴閮ㄥ拰澶栭儴浼犻掋?/p> <p>鎵樼浠g爜涓?out 鍜?ref 鍙傛暟鐨勫彟涓涓緢濂界殑鏂歸潰鏄紝鍦板潃浣滀負 by-ref 鍙傛暟浼犻掔殑鍙橀噺鍙互鏄嚎紼嬪爢鏍堜腑鐨勪竴涓湰鍦板彉閲忋佷竴涓被鎴栫粨鏋勭殑鍏冪礌錛屼篃鍙互鏄叿鏈夊悎閫傛暟鎹被鍨嬬殑鏁扮粍涓殑涓涓厓绱犲紩鐢ㄣ傝皟鐢ㄧ▼搴忕殑榪欑鐏墊椿鎬т嬌寰? by-ref 鍙傛暟鎴愪負灝侀佺紦鍐插尯鎸囬拡浠ュ強鍗曟暟鍊兼寚閽堢殑涓涓緢濂界殑璧風偣銆傚彧鏈夊湪鎴戝彂鐜?ref 鎴?out 鍙傛暟涓嶇鍚堟垜鐨勯渶瑕佺殑鎯呭喌涓嬶紝鎴戞墠浼氳冭檻灝嗘寚閽堝皝閫佷負鏇村鏉傜殑 CLR 綾誨瀷錛堜緥濡傜被鎴栨暟緇勫璞★級銆?/p> <p>濡傛灉鎮ㄤ笉鐔熸倝 C 璇硶鎴栬呰皟鐢?Windows API 鍑芥暟錛屾湁鏃跺緢闅劇煡閬撲竴涓柟娉曞弬鏁版槸鍚﹂渶瑕佹寚閽堛備竴涓父瑙佺殑鎸囩ず絎︽槸鐪嬪弬鏁扮被鍨嬫槸鍚︽槸浠ュ瓧姣?P 鎴?LP 寮澶寸殑錛屼緥濡?LPDWORD 鎴? PINT銆傚湪榪欎袱涓緥瀛愪腑錛孡P 鍜?P 鎸囩ず鍙傛暟鏄竴涓寚閽堬紝鑰屽畠浠寚鍚戠殑鏁版嵁綾誨瀷鍒嗗埆涓?DWORD 鎴? INT銆傜劧鑰岋紝鍦ㄦ湁浜涙儏鍐典笅錛屽彲浠ョ洿鎺ヤ嬌鐢?C 璇█璇硶涓殑鏄熷彿 (*) 灝?API 鍑芥暟瀹氫箟涓烘寚閽堛備互涓嬩唬鐮佺墖孌靛睍紺轟簡榪欐柟闈㈢殑紺轟緥錛?</p> <pre class="codeSample">void TakesAPointer(DWORD* pNum);<br><br></pre> <p>鍙互鐪嬪埌錛屼笂榪板嚱鏁扮殑鍞竴涓涓弬鏁版槸鎸囧悜 DWORD 鍙橀噺鐨勬寚閽堛?</p> <p>褰撻氳繃 P/Invoke 灝侀佹寚閽堟椂錛宺ef 鍜?out 鍙敤浜庢墭綆′唬鐮佷腑鐨勫肩被鍨嬨傚綋涓涓弬鏁扮殑 CLR 綾誨瀷浣跨敤 struct 鍏抽敭瀛楀畾涔夋椂錛屽彲浠ヨ涓鴻鍙傛暟鏄竴涓肩被鍨嬨侽ut 鍜?ref 鐢ㄤ簬灝侀佹寚鍚戣繖浜涙暟鎹被鍨嬬殑鎸囬拡錛屽洜涓洪氬父鍊肩被鍨嬪彉閲忔槸瀵硅薄鎴栨暟鎹紝鑰屽湪鎵樼浠g爜涓茍娌℃湁瀵瑰肩被鍨嬬殑寮曠敤銆傜浉鍙嶏紝褰撳皝閫佸紩鐢ㄧ被鍨嬪璞℃椂錛屽茍涓嶉渶瑕? ref 鍜?out 鍏抽敭瀛楋紝鍥犱負鍙橀噺宸茬粡鏄璞$殑寮曠敤浜嗐?/p> <p>濡傛灉鎮ㄥ寮曠敤綾誨瀷鍜屽肩被鍨嬩箣闂寸殑宸埆涓嶆槸寰堢啛鎮夛紝璇鋒煡闃?2000 騫?12 鏈?鍙戣鐨?MSDN® Magazine錛屽湪 .NET 涓撴爮鐨勪富棰樹腑鍙互鎵懼埌鏇村淇℃伅銆傚ぇ澶氭暟 CLR 綾誨瀷閮芥槸寮曠敤綾誨瀷錛涚劧鑰岋紝闄や簡 System.String 鍜? System.Object錛屾墍鏈夌殑鍩哄厓綾誨瀷錛堜緥濡?System.Int32 鍜?System.Boolean錛夐兘鏄肩被鍨嬨?/p> <p>灝侀佷笉閫忔槑 (Opaque) 鎸囬拡錛氫竴縐嶇壒孌婃儏鍐?/p> <p>鏈夋椂鍦?Windows API 涓紝鏂規硶浼犻掓垨榪斿洖鐨勬寚閽堟槸涓嶉忔槑鐨勶紝榪欐剰鍛崇潃璇ユ寚閽堝間粠鎶鏈搴﹁鏄竴涓寚閽堬紝浣嗕唬鐮佸嵈涓嶇洿鎺ヤ嬌鐢ㄥ畠銆傜浉鍙嶏紝浠g爜灝嗚鎸囬拡榪斿洖緇?Windows 浠ヤ究闅忓悗榪涜閲嶇敤銆?/p> <p>涓涓潪甯稿父瑙佺殑渚嬪瓙灝辨槸鍙ユ焺鐨勬蹇點傚湪 Windows 涓紝鍐呴儴鏁版嵁緇撴瀯錛堜粠鏂囦歡鍒板睆騫曚笂鐨勬寜閽級鍦ㄥ簲鐢ㄧ▼搴忎唬鐮佷腑閮借〃紺轟負鍙ユ焺銆傚彞鏌勫叾瀹炲氨鏄笉閫忔槑鐨勬寚閽堟垨鏈夌潃鎸囬拡瀹藉害鐨勬暟鍊鹼紝搴旂敤紼嬪簭鐢ㄥ畠鏉ヨ〃紺哄唴閮ㄧ殑 OS 鏋勯犮?/p> <p>灝戞暟鎯呭喌涓嬶紝API 鍑芥暟涔熷皢涓嶉忔槑鎸囬拡瀹氫箟涓?PVOID 鎴?LPVOID 綾誨瀷銆傚湪 Windows API 鐨勫畾涔変腑錛岃繖浜涚被鍨嬫剰鎬濆氨鏄璇ユ寚閽堟病鏈夌被鍨嬨?/p> <p>褰撲竴涓笉閫忔槑鎸囬拡榪斿洖緇欐偍鐨勫簲鐢ㄧ▼搴忥紙鎴栬呮偍鐨勫簲鐢ㄧ▼搴忔湡鏈涘緱鍒頒竴涓笉閫忔槑鎸囬拡錛夋椂錛屾偍搴旇灝嗗弬鏁版垨榪斿洖鍊煎皝閫佷負 CLR 涓殑涓縐嶇壒孌婄被鍨?鈥? System.IntPtr銆傚綋鎮ㄤ嬌鐢?IntPtr 綾誨瀷鏃訛紝閫氬父涓嶄嬌鐢?out 鎴?ref 鍙傛暟錛屽洜涓?IntPtr 鎰忎負鐩存帴鎸佹湁鎸囬拡銆備笉榪囷紝濡傛灉鎮ㄥ皢涓涓寚閽堝皝閫佷負涓涓寚閽堬紝鍒欏 IntPtr 浣跨敤 by-ref 鍙傛暟鏄悎閫傜殑銆?/p> <p>鍦?CLR 綾誨瀷緋葷粺涓紝System.IntPtr 綾誨瀷鏈変竴涓壒孌婄殑灞炴с備笉鍍忕郴緇熶腑鐨勫叾浠栧熀綾誨瀷錛孖ntPtr 騫舵病鏈夊浐瀹氱殑澶у皬銆傜浉鍙嶏紝瀹冨湪榪愯鏃剁殑澶у皬鏄緷搴曞眰鎿嶄綔緋葷粺鐨勬甯告寚閽堝ぇ灝忚屽畾鐨勩傝繖鎰忓懗鐫鍦?32 浣嶇殑 Windows 涓紝IntPtr 鍙橀噺鐨勫搴︽槸 32 浣嶇殑錛岃屽湪 64 浣嶇殑 Windows 涓紝瀹炴椂緙栬瘧鍣ㄧ紪璇戠殑浠g爜浼氬皢 IntPtr 鍊肩湅浣?64 浣嶇殑鍊箋傚綋鍦ㄦ墭綆′唬鐮佸拰闈炴墭綆′唬鐮佷箣闂村皝閫佷笉閫忔槑鎸囬拡鏃訛紝榪欑鑷姩璋冭妭澶у皬鐨勭壒鐐瑰崄鍒嗘湁鐢ㄣ?/p> <p>璇瘋浣忥紝浠諱綍榪斿洖鎴栨帴鍙楀彞鏌勭殑 API 鍑芥暟鍏跺疄鎿嶄綔鐨勫氨鏄笉閫忔槑鎸囬拡銆傛偍鐨勪唬鐮佸簲璇ュ皢 Windows 涓殑鍙ユ焺灝侀佹垚 System.IntPtr 鍊箋?/p> <p>鎮ㄥ彲浠ュ湪鎵樼浠g爜涓皢 IntPtr 鍊煎己鍒惰漿鎹負 32 浣嶆垨 64 浣嶇殑鏁存暟鍊鹼紝鎴栧皢鍚庤呭己鍒惰漿鎹負鍓嶈呫傜劧鑰岋紝褰撲嬌鐢?Windows API 鍑芥暟鏃訛紝鍥犱負鎸囬拡搴旀槸涓嶉忔槑鐨勶紝鎵浠ラ櫎浜嗗瓨鍌ㄥ拰浼犻掔粰澶栭儴鏂規硶澶栵紝涓嶈兘灝嗗畠浠彟鍋氬畠鐢ㄣ傝繖縐?#8220;鍙檺瀛樺偍鍜屼紶閫?#8221;瑙勫垯鐨勪袱涓壒渚嬫槸褰撴偍闇瑕佸悜澶栭儴鏂規硶浼犻? null 鎸囬拡鍊煎拰闇瑕佹瘮杈?IntPtr 鍊間笌 null 鍊肩殑鎯呭喌銆備負浜嗗仛鍒拌繖涓鐐癸紝鎮ㄤ笉鑳藉皢闆跺己鍒惰漿鎹負 System.IntPtr錛岃屽簲璇ュ湪 IntPtr 綾誨瀷涓婁嬌鐢?Int32.Zero 闈欐佸叕鍏卞瓧孌碉紝浠ヤ究鑾峰緱鐢ㄤ簬姣旇緝鎴栬祴鍊肩殑 null 鍊箋?/p> <p>灝侀佹枃鏈?/p> <p>鍦ㄧ紪紼嬫椂緇忓父瑕佸鏂囨湰鏁版嵁榪涜澶勭悊銆傛枃鏈負 interop 鍒墮犱簡涓浜涢夯鐑︼紝榪欐湁涓や釜鍘熷洜銆傞鍏堬紝搴曞眰鎿嶄綔緋葷粺鍙兘浣跨敤 Unicode 鏉ヨ〃紺哄瓧絎︿覆錛屼篃鍙兘浣跨敤 ANSI銆傚湪鏋佸皯鏁版儏鍐典笅錛屼緥濡?MultiByteToWideChar API 鍑芥暟鐨勪袱涓弬鏁板湪瀛楃闆嗕笂鏄笉涓鑷寸殑銆?/p> <p>絎簩涓師鍥犳槸錛屽綋闇瑕佽繘琛?P/Invoke 鏃訛紝瑕佸鐞嗘枃鏈繕闇瑕佺壒鍒簡瑙e埌 C 鍜?CLR 澶勭悊鏂囨湰鐨勬柟寮忔槸涓嶅悓鐨勩傚湪 C 涓紝瀛楃涓插疄闄呬笂鍙槸涓涓瓧絎﹀兼暟緇勶紝閫氬父浠?null 浣滀負緇撴潫絎︺傚ぇ澶氭暟 Windows API 鍑芥暟鏄寜鐓т互涓嬫潯浠跺鐞嗗瓧絎︿覆鐨勶細瀵逛簬 ANSI錛屽皢鍏朵綔涓哄瓧絎﹀兼暟緇勶紱瀵逛簬 Unicode錛屽皢鍏朵綔涓哄瀛楃鍊兼暟緇勩?/p> <p>騫歌繍鐨勬槸錛孋LR 琚璁″緱鐩稿綋鐏墊椿錛屽綋灝侀佹枃鏈椂闂寰椾互杞繪澗瑙e喅錛岃屼笉鐢ㄥ湪鎰?Windows API 鍑芥暟鏈熸湜浠庢偍鐨勫簲鐢ㄧ▼搴忓緱鍒扮殑鏄粈涔堛傝繖閲屾槸涓浜涢渶瑕佽浣忕殑涓昏鑰冭檻浜嬮」錛?</p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="listBullet" valign="top">•</td> <td class="listItem"> <p>鏄偍鐨勫簲鐢ㄧ▼搴忓悜 API 鍑芥暟浼犻掓枃鏈暟鎹紝榪樻槸 API 鍑芥暟鍚戞偍鐨勫簲鐢ㄧ▼搴忚繑鍥炲瓧絎︿覆鏁版嵁錛熸垨鑰呬簩鑰呭吋鏈夛紵 </p> </td> </tr> <tr> <td class="listBullet" valign="top">•</td> <td class="listItem"> <p>鎮ㄧ殑澶栭儴鏂規硶搴旇浣跨敤浠涔堟墭綆$被鍨嬶紵 </p> </td> </tr> <tr> <td class="listBullet" valign="top">•</td> <td class="listItem"> <p>API 鍑芥暟鏈熸湜寰楀埌鐨勬槸浠涔堟牸寮忕殑闈炴墭綆″瓧絎︿覆錛?/p> </td> </tr> </tbody> </table> <p>鎴戜滑棣栧厛瑙g瓟鏈鍚庝竴涓棶棰樸傚ぇ澶氭暟 Windows API 鍑芥暟閮藉甫鏈?LPTSTR 鎴?LPCTSTR 鍊箋傦紙浠庡嚱鏁拌搴︾湅錛夊畠浠垎鍒槸鍙慨鏀瑰拰涓嶅彲淇敼鐨勭紦鍐插尯錛屽寘鍚互 null 緇撴潫鐨勫瓧絎︽暟緇勩?#8220;C”浠h〃甯告暟錛屾剰鍛崇潃浣跨敤璇ュ弬鏁頒俊鎭笉浼氫紶閫掑埌鍑芥暟澶栭儴銆侺PTSTR 涓殑“T”琛ㄦ槑璇ュ弬鏁板彲浠ユ槸 Unicode 鎴? ANSI錛屽彇鍐充簬鎮ㄩ夋嫨鐨勫瓧絎﹂泦鍜屽簳灞傛搷浣滅郴緇熺殑瀛楃闆嗐傚洜涓哄湪 Windows API 涓ぇ澶氭暟瀛楃涓插弬鏁伴兘鏄繖涓ょ綾誨瀷涔嬩竴錛屾墍浠ュ彧瑕佸湪 DllImportAttribute 涓夋嫨 CharSet.Auto錛孋LR 灝辨寜榛樿鐨勬柟寮忓伐浣溿?</p> <p>鐒惰岋紝鏈変簺 API 鍑芥暟鎴栬嚜瀹氫箟鐨?DLL 鍑芥暟閲囩敤涓嶅悓鐨勬柟寮忚〃紺哄瓧絎︿覆銆傚鏋滄偍瑕佺敤鍒頒竴涓繖鏍風殑鍑芥暟錛屽氨鍙互閲囩敤 MarshalAsAttribute 淇グ澶栭儴鏂規硶鐨勫瓧絎︿覆鍙傛暟錛屽茍鎸囨槑涓縐嶄笉鍚屼簬榛樿 LPTSTR 鐨勫瓧絎︿覆鏍煎紡銆傛湁鍏? MarshalAsAttribute 鐨勬洿澶氫俊鎭紝璇峰弬闃呬綅浜?MarshalAsAttribute Class 鐨?Platform SDK 鏂囨。涓婚銆?/p> <p>鐜板湪璁╂垜浠湅涓涓嬪瓧絎︿覆淇℃伅鍦ㄦ偍鐨勪唬鐮佸拰闈炴墭綆″嚱鏁頒箣闂翠紶閫掔殑鏂瑰悜銆傛湁涓ょ鏂瑰紡鍙互鐭ラ亾澶勭悊瀛楃涓叉椂淇℃伅鐨勪紶閫掓柟鍚戙傜涓涓篃鏄渶鍙潬鐨勪竴涓柟娉曞氨 鏄鍏堢悊瑙e弬鏁扮殑鐢ㄩ斻備緥濡傦紝鎮ㄦ璋冪敤涓涓弬鏁幫紝瀹冪殑鍚嶇О綾諱技 CreateMutex 騫跺甫鏈変竴涓瓧絎︿覆錛屽垯鍙互鎯沖儚璇ュ瓧絎︿覆淇℃伅鏄粠搴旂敤紼嬪簭鍚? API 鍑芥暟浼犻掔殑銆傚悓鏃訛紝濡傛灉鎮ㄨ皟鐢?GetUserName錛屽垯璇ュ嚱鏁扮殑鍚嶇О琛ㄦ槑瀛楃涓蹭俊鎭槸浠庤鍑芥暟鍚戞偍鐨勫簲鐢ㄧ▼搴忎紶閫掔殑銆?/p> <p>闄や簡榪欑姣旇緝鍚堢悊鐨勬柟娉曞錛岀浜岀鏌ユ壘淇℃伅浼犻掓柟鍚戠殑鏂瑰紡灝辨槸鏌ユ壘 API 鍙傛暟綾誨瀷涓殑瀛楁瘝“C”銆備緥濡傦紝GetUserName API 鍑芥暟鐨勭涓涓弬鏁拌瀹氫箟涓?LPTSTR 綾誨瀷錛屽畠浠h〃涓涓寚鍚?Unicode 鎴?ANSI 瀛楃涓茬紦鍐插尯鐨勯暱鎸囬拡銆備絾鏄?CreateMutex 鐨勫悕縐板弬鏁拌綾誨瀷鍖栦負 LTCTSTR銆傝娉ㄦ剰錛岃繖閲岀殑綾誨瀷瀹氫箟鏄竴鏍風殑錛屼絾澧炲姞涓涓瓧姣?#8220;C”鏉ヨ〃鏄庣紦鍐插尯涓哄父鏁幫紝API 鍑芥暟涓嶈兘鍐欏叆銆?/p> <p>涓鏃︽槑紜簡鏂囨湰鍙傛暟鏄彧鐢ㄤ綔杈撳叆榪樻槸鐢ㄤ綔杈撳叆/杈撳嚭錛屽氨鍙互紜畾浣跨敤鍝 CLR 綾誨瀷浣滀負鍙傛暟綾誨瀷銆傝繖閲屾湁涓浜涜鍒欍傚鏋滃瓧絎︿覆鍙傛暟鍙敤浣滆緭鍏ワ紝鍒欎嬌鐢?System.String 綾誨瀷銆傚湪鎵樼浠g爜涓紝瀛楃涓叉槸涓嶅彉鐨勶紝閫傚悎鐢ㄤ簬涓嶄細琚湰鏈?API 鍑芥暟鏇存敼鐨勭紦鍐插尯銆?/p> <p>濡傛灉瀛楃涓插弬鏁板彲浠ョ敤浣滆緭鍏ュ拰/鎴栬緭鍑猴紝鍒欎嬌鐢?System.StringBuilder 綾誨瀷銆係tringBuilder 綾誨瀷鏄竴涓緢鏈夌敤鐨勭被搴撶被鍨嬶紝瀹冨彲浠ュ府鍔╂偍鏈夋晥鍦版瀯寤哄瓧絎︿覆錛屼篃姝eソ鍙互灝嗙紦鍐插尯浼犻掔粰鏈満鍑芥暟錛岀敱鏈満鍑芥暟涓烘偍濉厖瀛楃涓叉暟鎹備竴鏃﹀嚱鏁拌皟鐢ㄨ繑鍥烇紝鎮ㄥ彧 闇瑕佽皟鐢?StringBuilder 瀵硅薄鐨?ToString 灝卞彲浠ュ緱鍒頒竴涓?String 瀵硅薄銆?/p> <p>GetShortPathName API 鍑芥暟鑳藉緢濂藉湴鐢ㄤ簬鏄劇ず浠涔堟椂鍊欎嬌鐢?String銆佷粈涔堟椂鍊欎嬌鐢?StringBuilder錛屽洜涓哄畠鍙甫鏈変笁涓弬鏁幫細涓涓緭鍏ュ瓧絎︿覆銆佷竴涓緭鍑哄瓧絎︿覆鍜屼竴涓寚鏄庤緭鍑虹紦鍐插尯鐨勫瓧絎﹂暱搴︾殑鍙傛暟銆?/p> <p>鍥?3 鎵紺轟負鍔犳敞閲婄殑闈炴墭綆?GetShortPathName 鍑芥暟鏂囨。錛屽畠鍚屾椂鎸囧嚭浜嗚緭鍏ュ拰杈撳嚭瀛楃涓插弬鏁般傚畠寮曞嚭浜嗘墭綆$殑澶栭儴鏂規硶瀹氫箟錛屼篃濡傚浘 3 鎵紺恒傝娉ㄦ剰絎竴涓弬鏁拌灝侀佷負 System.String錛屽洜涓哄畠鏄竴涓彧鐢ㄤ綔杈撳叆鐨勫弬鏁般傜浜屼釜鍙傛暟浠h〃涓涓緭鍑虹紦鍐插尯錛屽畠浣跨敤浜?System.StringBuilder銆?/p> <p>灝忕粨</p> <p>鏈湀涓撴爮鎵浠嬬粛鐨?P/Invoke 鍔熻兘瓚沖璋冪敤 Windows 涓殑璁稿 API 鍑芥暟銆傜劧鑰岋紝濡傛灉鎮ㄥぇ閲忕敤鍒? interop錛屽垯浼氭渶緇堝彂鐜拌嚜宸卞皝閫佷簡寰堝鏉傜殑鏁版嵁緇撴瀯錛岀敋鑷沖彲鑳介渶瑕佸湪鎵樼浠g爜涓氳繃鎸囬拡鐩存帴璁塊棶鍐呭瓨銆傚疄闄呬笂錛屾湰鏈轟唬鐮佷腑鐨?interop 鍙互鏄竴涓皢緇嗚妭鍜屼綆綰ф瘮鐗硅棌鍦ㄩ噷闈㈢殑鐪熸鐨勬綐澶氭媺鐩掑瓙銆侰LR銆丆# 鍜屾墭綆?C++ 鎻愪緵浜嗚澶氭湁鐢ㄧ殑鍔熻兘錛涗篃璁鎬互鍚庢垜浼氬湪鏈笓鏍忎粙緇嶉珮綰х殑 P/Invoke 璇濋銆?/p> <p>鍚屾椂錛屽彧瑕佹偍瑙夊緱 .NET Framework 綾誨簱鏃犳硶鎾斁鎮ㄧ殑澹伴煶鎴栬呬負鎮ㄦ墽琛屽叾浠栦竴浜涘姛鑳斤紝鎮ㄥ彲浠ョ煡閬撳浣曞悜鍘熷鑰屼紭縐鐨?Windows API 瀵繪眰涓浜涘府鍔┿?/p> <p><span id="hvzpftn" class="clsFigs">Figure 1</span> <span id="hvzpftn" class="clsCap">MessageBeep, Interop Done Well</span><br></p> <pre class="clsCode">namespace Wintellect.Interop.Sound{<br><br> using System;<br><br> using System.Runtime.InteropServices;<br><br> using System.ComponentModel;<br><br><br><br> sealed class Sound{<br><br> public static void MessageBeep(BeepTypes type){<br><br> if(!MessageBeep((UInt32) type)){<br><br> Int32 err = Marshal.GetLastWin32Error();<br><br> throw new Win32Exception(err);<br><br> }<br><br> }<br><br><br><br> [DllImport("User32.dll", SetLastError=true)]<br><br> static extern Boolean MessageBeep(UInt32 beepType);<br><br><br><br> private Sound(){}<br><br> }<br><br><br><br> enum BeepTypes{ <br><br> Simple = -1,<br><br> Ok = 0x00000000,<br><br> IconHand = 0x00000010,<br><br> IconQuestion = 0x00000020,<br><br> IconExclamation = 0x00000030,<br><br> IconAsterisk = 0x00000040<br><br> }<br><br>}<br><br></pre> <pre class="clsCode"><span id="hvzpftn" class="clsFigs">Figure 2</span> <span id="hvzpftn" class="clsCap">Non-Pointer Data Types</span><br><br></pre> <pre class="clsCode"> <table border="1" cellpadding="3" cellspacing="0" width="400"> <thead> <tr valign="top"> <th>Win32 Types</th><th>Specification</th><th>CLR Type</th> </tr> </thead> <tbody> <tr valign="top"> <td>char, INT8, SBYTE, CHARâ鈧?nbsp;</td> <td>8-bit signed integer</td> <td>System.SByte</td> </tr> <tr valign="top"> <td>short, short int, INT16, SHORT</td> <td>16-bit signed integer</td> <td>System.Int16</td> </tr> <tr valign="top"> <td>int, long, long int, INT32, LONG32, BOOLâ鈧?nbsp;, INT </td> <td>32-bit signed integer</td> <td>System.Int32</td> </tr> <tr valign="top"> <td>__int64, INT64, LONGLONG</td> <td>64-bit signed integer</td> <td>System.Int64</td> </tr> <tr valign="top"> <td>unsigned char, UINT8, UCHARâ鈧?nbsp;, BYTE</td> <td>8-bit unsigned integer</td> <td>System.Byte</td> </tr> <tr valign="top"> <td>unsigned short, UINT16, USHORT, WORD, ATOM, WCHARâ鈧?nbsp;, __wchar_t</td> <td>16-bit unsigned integer</td> <td>System.UInt16</td> </tr> <tr valign="top"> <td>unsigned, unsigned int, UINT32, ULONG32, DWORD32, ULONG, DWORD, UINT</td> <td>32-bit unsigned integer</td> <td>System.UInt32</td> </tr> <tr valign="top"> <td>unsigned __int64, UINT64, DWORDLONG, ULONGLONG</td> <td>64-bit unsigned integer</td> <td>System.UInt64</td> </tr> <tr valign="top"> <td>float, FLOAT</td> <td>Single-precision floating point</td> <td>System.Single</td> </tr> <tr valign="top"> <td>double, long double, DOUBLE</td> <td>Double-precision floating point</td> <td>System.Double</td> </tr> <tr valign="top"> <td colspan="3">â鈧?nbsp;In Win32 this type is an integer with a specially assigned meaning; in contrast, the CLR provides a specific type devoted to this meaning.</td> </tr> </tbody> </table> </pre> <pre class="clsCode"><hr></pre> <pre class="clsCode"><span id="hvzpftn" class="clsFigs"></span></pre> <pre class="clsCode"><span id="hvzpftn" class="clsFigs">Figure 3</span> <span id="hvzpftn" class="clsCap">GetShortPathName Declarations</span><br></pre> <pre class="clsCode">// ** Documentation for Win32 GetShortPathName() API Function<br><br>// DWORD GetShortPathName(<br><br>// LPCTSTR lpszLongPath, // file for which to get short path <br><br>// LPTSTR lpszShortPath, // short path name (output)<br><br>// DWORD cchBuffer // size of output buffer<br><br>// );<br><br><br><br>[DllImport("Kernel32", CharSet = CharSet.Auto)]<br><br>static extern Int32 GetShortPathName(<br><br> String path, // input string<br><br> StringBuilder shortPath, // output string<br><br> Int32 shortPathLength); // StringBuilder.Capacity<br></pre><img src ="http://www.shnenglu.com/netboy/aggbug/73850.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/netboy/" target="_blank">鐜嬪媷鑹?/a> 2009-02-15 10:50 <a href="http://www.shnenglu.com/netboy/archive/2009/02/15/73850.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://ttdy20.com" target="_blank">亚洲国产另类久久精品</a>| <a href="http://7777731.com" target="_blank">亚洲日韩欧美视频</a>| <a href="http://44368com.com" target="_blank">久久综合图片</a>| <a href="http://xinghejiuye.com" target="_blank">蜜臀va亚洲va欧美va天堂</a>| <a href="http://zhongqingshiye.com" target="_blank">亚洲国产欧美一区二区三区同亚洲 </a>| <a href="http://cswlts.com" target="_blank">亚洲黄色成人久久久</a>| <a href="http://8222666.com" target="_blank">亚洲第一免费播放区</a>| <a href="http://pabjzz.com" target="_blank">欧美精品一级</a>| <a href="http://4c7175.com" target="_blank">亚洲欧美日韩精品一区二区 </a>| <a href="http://749996.com" target="_blank">99精品福利视频</a>| <a href="http://ttmitch.com" target="_blank">国产精品美女久久久久久久 </a>| <a href="http://cc1024.com" target="_blank">免费观看成人www动漫视频</a>| <a href="http://www-876810.com" target="_blank">男人的天堂亚洲</a>| <a href="http://caobenfan1891.com" target="_blank">亚洲影院在线</a>| <a href="http://pktether.com" target="_blank">久久久午夜视频</a>| <a href="http://www17727.com" target="_blank">亚洲视频在线看</a>| <a href="http://xhs1039.com" target="_blank">欧美一区二区在线免费播放</a>| <a href="http://www66441.com" target="_blank">亚洲人成网站在线观看播放</a>| <a href="http://szzzzzzz.com" target="_blank">中文国产亚洲喷潮</a>| <a href="http://wwwbbb888999.com" target="_blank">激情久久综艺</a>| <a href="http://avtt59999.com" target="_blank">日韩午夜剧场</a>| <a href="http://dkmcjc.com" target="_blank">精品成人免费</a>| <a href="http://151545.com" target="_blank">亚洲视频中文</a>| <a href="http://www-4157.com" target="_blank">亚洲国产成人av在线</a>| <a href="http://www134rr.com" target="_blank">亚洲午夜成aⅴ人片</a>| <a href="http://eee2244.com" target="_blank">亚洲国产另类 国产精品国产免费</a>| <a href="http://erosgems.com" target="_blank">夜夜嗨av一区二区三区四季av</a>| <a href="http://9658888.com" target="_blank">国产亚洲一区二区在线观看</a>| <a href="http://477980.com" target="_blank">99re6这里只有精品视频在线观看 99re6这里只有精品 </a>| <a href="http://05078888.com" target="_blank">国产性色一区二区</a>| <a href="http://yc0989.com" target="_blank">亚洲精品看片</a>| <a href="http://9927tv.com" target="_blank">亚洲高清一区二</a>| <a href="http://www-440447.com" target="_blank">亚洲一级黄色片</a>| <a href="http://hkbsi.com" target="_blank">洋洋av久久久久久久一区</a>| <a href="http://9966k.com" target="_blank">久久精品国产亚洲a</a>| <a href="http://0000zz.com" target="_blank">亚洲一区二区在</a>| <a href="http://444al.com" target="_blank">蜜桃久久精品乱码一区二区</a>| <a href="http://0855123.com" target="_blank">久久久久国产成人精品亚洲午夜</a>| <a href="http://cpb-group.com" target="_blank">欧美午夜视频一区二区</a>| <a href="http://by99969.com" target="_blank">亚洲第一毛片</a>| <a href="http://337795.com" target="_blank">亚洲国产精品福利</a>| <a href="http://ximaimicro.com" target="_blank">久久久久久国产精品mv</a>| <a href="http://yys4.com" target="_blank">久久精品日产第一区二区三区 </a>| <a href="http://yp77741.com" target="_blank">久久久国产视频91</a>| <a href="http://tongrenyaoye.com" target="_blank">亚洲欧美电影院</a>| <a href="http://556995.com" target="_blank">欧美日韩成人综合天天影院</a>| <a href="http://xxxx43.com" target="_blank">欧美wwwwww</a>| <a href="http://thisisfil.com" target="_blank">韩日成人av</a>| <a href="http://216667.com" target="_blank">亚久久调教视频</a>| <a href="http://qiruiwangluo.com" target="_blank">亚洲欧美日韩在线观看a三区 </a>| <a href="http://215920.com" target="_blank">欧美人成在线视频</a>| <a href="http://srojsy.com" target="_blank">亚洲国产精品久久久久秋霞影院</a>| <a href="http://winkwink333.com" target="_blank">黄色成人91</a>| <a href="http://www330849.com" target="_blank">久久精品在线播放</a>| <a href="http://jdavmm.com" target="_blank">久久综合综合久久综合</a>| <a href="http://kongtou8.com" target="_blank">国产三级欧美三级日产三级99</a>| <a href="http://688528.com" target="_blank">国产精品99久久久久久久vr</a>| <a href="http://www-85489.com" target="_blank">在线一区二区三区做爰视频网站</a>| <a href="http://82b2.com" target="_blank">欧美人在线观看</a>| <a href="http://musicshq.com" target="_blank">日韩视频在线免费</a>| <a href="http://tzhsdy.com" target="_blank">亚洲在线成人精品</a>| <a href="http://bjygp.com" target="_blank">国产精一区二区三区</a>| <a href="http://bjopl.com" target="_blank">亚洲欧美在线网</a>| <a href="http://3333328.com" target="_blank">久久频这里精品99香蕉</a>| <a href="http://17ccem.com" target="_blank">国自产拍偷拍福利精品免费一</a>| <a href="http://a718sx.com" target="_blank">性亚洲最疯狂xxxx高清</a>| <a href="http://5c55c5c.com" target="_blank">久久久久久9</a>| <a href="http://xuanxuan88.com" target="_blank">好男人免费精品视频</a>| <a href="http://ca88tv.com" target="_blank">久久久久久久久久久一区 </a>| <a href="http://by3799.com" target="_blank">欧美亚洲一区</a>| <a href="http://511caifu.com" target="_blank">久久美女性网</a>| <a href="http://cfqcgw.com" target="_blank">亚洲精品国产无天堂网2021</a>| <a href="http://51-express.com" target="_blank">欧美精品v日韩精品v国产精品 </a>| <a href="http://ccc982.com" target="_blank">亚洲国产va精品久久久不卡综合</a>| <a href="http://www280999.com" target="_blank">最新国产乱人伦偷精品免费网站</a>| <a href="http://72966t.com" target="_blank">欧美大色视频</a>| <a href="http://8x29ft.com" target="_blank">一区二区三区四区五区精品视频 </a>| <a href="http://133969.com" target="_blank">一本色道久久综合亚洲二区三区 </a>| <a href="http://3597777.com" target="_blank">欧美日韩国产小视频</a>| <a href="http://xhamtube.com" target="_blank">亚洲美女在线一区</a>| <a href="http://www8qa.com" target="_blank">午夜精品久久久久久久99樱桃</a>| <a href="http://cnlbogs.com" target="_blank">国产午夜精品久久</a>| <a href="http://4kmz.com" target="_blank">免费亚洲一区二区</a>| <a href="http://041935.com" target="_blank">日韩午夜精品</a>| <a href="http://www474000c.com" target="_blank">久久久久国产免费免费</a>| <a href="http://www333444123.com" target="_blank">欧美黄色一区二区</a>| <a href="http://663747.com" target="_blank">亚洲视频国产视频</a>| <a href="http://www-74987.com" target="_blank">蜜桃久久精品乱码一区二区</a>| <a href="http://ccc982.com" target="_blank">亚洲久久一区</a>| <a href="http://www-49hk.com" target="_blank">国产日韩欧美精品</a>| <a href="http://hongzaixian.com" target="_blank">免费黄网站欧美</a>| <a href="http://ccc36-com.com" target="_blank">亚洲一级在线观看</a>| <a href="http://921367.com" target="_blank">欧美成人自拍视频</a>| <a href="http://papala4444.com" target="_blank">亚洲伊人久久综合</a>| <a href="http://www-tk8899.com" target="_blank">精久久久久久</a>| <a href="http://www-222304.com" target="_blank">国产精品大全</a>| <a href="http://sesese98.com" target="_blank">狂野欧美性猛交xxxx巴西</a>| <a href="http://mauhorng.com" target="_blank">日韩视频―中文字幕</a>| <a href="http://hy8r.com" target="_blank">久久综合久久美利坚合众国</a>| <a href="http://9a5x.com" target="_blank">亚洲一区二区三区在线观看视频</a>| <a href="http://xy3977.com" target="_blank">国产一区免费视频</a>| <a href="http://pansinobbs.com" target="_blank">欧美日韩成人综合</a>| <a href="http://hhhtalk.com" target="_blank">另类欧美日韩国产在线</a>| <a href="http://www227ee.com" target="_blank">亚洲淫片在线视频</a>| <a href="http://irongxun.com" target="_blank">亚洲国产合集</a>| <a href="http://ccnn33.com" target="_blank">久久久久国产精品麻豆ai换脸</a>| <a href="http://794579.com" target="_blank">一本色道久久综合</a>| <a href="http://hcbr365.com" target="_blank">亚洲高清色综合</a>| <a href="http://797298.com" target="_blank">国产视频精品xxxx</a>| <a href="http://spidermanseo.com" target="_blank">欧美日韩在线直播</a>| <a href="http://zxxx3.com" target="_blank">欧美激情精品久久久久久</a>| <a href="http://bx989.com" target="_blank">久久精品视频在线</a>| <a href="http://zhongrenma.com" target="_blank">亚洲欧美日韩高清</a>| <a href="http://sqms2013.com" target="_blank">一区二区三区三区在线</a>| <a href="http://2456yo.com" target="_blank">亚洲高清激情</a>| <a href="http://montnove.com" target="_blank">美女视频一区免费观看</a>| <a href="http://njggmy.com" target="_blank">欧美在线欧美在线</a>| <a href="http://http456446.com" target="_blank">亚洲在线观看免费视频</a>| <a href="http://excellentjy.com" target="_blank">亚洲另类春色国产</a>| <a href="http://ythbhg.com" target="_blank">亚洲激情欧美</a>| <a href="http://www-232323.com" target="_blank">韩日在线一区</a>| <a href="http://5110010.com" target="_blank">国产色爱av资源综合区</a>| <a href="http://www387333.com" target="_blank">国产精品二区在线</a>| <a href="http://jqnyc.com" target="_blank">欧美性猛交99久久久久99按摩</a>| <a href="http://008528.com" target="_blank">欧美成在线视频</a>| <a href="http://7357538.com" target="_blank">老司机精品视频一区二区三区</a>| <a href="http://xxmh686.com" target="_blank">欧美亚洲一区二区三区</a>| <a href="http://www369cf.com" target="_blank">亚洲欧美国产视频</a>| <a href="http://xpj493.com" target="_blank">国产精品99久久不卡二区</a>| <a href="http://yiqipapa8.com" target="_blank">99在线精品视频在线观看</a>| <a href="http://7373se.com" target="_blank">亚洲伦理精品</a>| <a href="http://69xxx6.com" target="_blank">亚洲精品免费观看</a>| <a href="http://www-ss777.com" target="_blank">亚洲国内自拍</a>| <a href="http://cpddddcc.com" target="_blank">亚洲福利视频网</a>| <a href="http://5456yy.com" target="_blank">亚洲第一精品夜夜躁人人爽</a>| <a href="http://18p2.com" target="_blank">欧美大色视频</a>| <a href="http://lukushe.com" target="_blank">欧美激情视频网站</a>| <a href="http://788997.com" target="_blank">亚洲国产精品福利</a>| <a href="http://2302345.com" target="_blank">亚洲人午夜精品</a>| <a href="http://ktokt.com" target="_blank">99精品视频网</a>| <a href="http://nztd20.com" target="_blank">亚洲一区免费视频</a>| <a href="http://chukewang.com" target="_blank">亚洲欧美999</a>| <a href="http://rbet6365.com" target="_blank">午夜精品在线观看</a>| <a href="http://www-699603.com" target="_blank">欧美影院成人</a>| <a href="http://rxbbei.com" target="_blank">久久久久久久性</a>| <a href="http://sz-jyqj.com" target="_blank">牛人盗摄一区二区三区视频</a>| <a href="http://wwwnnnn.com" target="_blank">欧美刺激性大交免费视频</a>| <a href="http://www-988900.com" target="_blank">欧美激情视频给我</a>| <a href="http://nnnn34.com" target="_blank">欧美精品一区二区三区在线看午夜</a>| <a href="http://derinsolar.com" target="_blank">巨乳诱惑日韩免费av</a>| <a href="http://jigu100.com" target="_blank">欧美精品成人一区二区在线观看 </a>| <a href="http://gzw33.com" target="_blank">久久综合伊人</a>| <a href="http://ahqdlq.com" target="_blank">欧美激情亚洲自拍</a>| <a href="http://www-77537.com" target="_blank">国产精品久久久久高潮</a>| <a href="http://pfpf662.com" target="_blank">国产色婷婷国产综合在线理论片a</a>| <a href="http://caosee.com" target="_blank">国产目拍亚洲精品99久久精品</a>| <a href="http://9113c.com" target="_blank">国产欧美日韩精品a在线观看</a>| <a href="http://csmdjs.com" target="_blank">国内精品久久久</a>| <a href="http://110488.com" target="_blank">最近中文字幕日韩精品</a>| <a href="http://hellomusiczone.com" target="_blank">在线午夜精品自拍</a>| <a href="http://hy1598.com" target="_blank">久久久av水蜜桃</a>| <a href="http://ooonefteprompellets.com" target="_blank">麻豆成人在线播放</a>| <a href="http://710477.com" target="_blank">亚洲精品在线观</a>| <a href="http://pourporn.com" target="_blank">香蕉视频成人在线观看</a>| <a href="http://1390555.com" target="_blank">免费成人黄色</a>| <a href="http://pansinobbs.com" target="_blank">欧美在线免费视屏</a>| <a href="http://xuanxuan88.com" target="_blank">老司机精品视频一区二区三区</a>| <a href="http://baidubf.com" target="_blank">欧美精品一区二区三区一线天视频 </a>| <a href="http://wzlingfeng.com" target="_blank">久热精品视频在线观看一区</a>| <a href="http://www-733999.com" target="_blank">欧美精品一区二区三区在线看午夜 </a>| <a href="http://ww9494.com" target="_blank">国产在线欧美</a>| <a href="http://www-232323.com" target="_blank">日韩午夜三级在线</a>| <a href="http://bizssr.com" target="_blank">久久精品国产久精国产思思</a>| <a href="http://sese912.com" target="_blank">久热精品视频在线观看</a>| <a href="http://916969.com" target="_blank">亚洲精品综合精品自拍</a>| <a href="http://499305.com" target="_blank">久久av在线</a>| <a href="http://cfqcgw.com" target="_blank">欧美日韩综合网</a>| <a href="http://yh5557.com" target="_blank">黑人一区二区三区四区五区</a>| <a href="http://73cao.com" target="_blank">亚洲一区二区精品在线观看</a>| <a href="http://wwwq4yy.com" target="_blank">久久久久国产精品一区</a>| <a href="http://kuaikan97.com" target="_blank">99成人在线</a>| <a href="http://283575.com" target="_blank">毛片基地黄久久久久久天堂</a>| <a href="http://playav999.com" target="_blank">国产精品第一区</a>| <a href="http://qdpetlove.com" target="_blank">亚洲国产精品福利</a>| <a href="http://mytopvogue.com" target="_blank">久久福利影视</a>| <a href="http://5xxm.com" target="_blank">一区二区三区久久</a>| <a href="http://91ymz.com" target="_blank">免费在线视频一区</a>| <a href="http://caoav8.com" target="_blank">国内免费精品永久在线视频</a>| <a href="http://baidijs.com" target="_blank">亚洲在线网站</a>| <a href="http://9885888.com" target="_blank">91久久精品一区二区别</a>| <a href="http://bjjxgcsxy.com" target="_blank">欧美中文字幕在线</a>| <a href="http://shght.com" target="_blank">国产精品久久久久久亚洲毛片</a>| <a href="http://xccp4888.com" target="_blank">亚洲精品乱码久久久久久黑人 </a>| <a href="http://yjizz08.com" target="_blank">久久九九国产</a>| <a href="http://4009935888.com" target="_blank">国产伦精品一区二区三区照片91</a>| <a href="http://www24822.com" target="_blank">亚洲精品一级</a>| <a href="http://www66441.com" target="_blank">欧美黄色一级视频</a>| <a href="http://xhtd688.com" target="_blank">久久九九热免费视频</a>| <a href="http://lctongda.com" target="_blank">国产欧美日韩精品一区</a>| <a href="http://621768.com" target="_blank">亚洲你懂的在线视频</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>