锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久www免费人成看国产片,久久精品国产只有精品66,人妻少妇久久中文字幕http://www.shnenglu.com/alantop/category/1620.html鑲$エ鏁版嵁鏍煎紡杞崲杞歡 http://alantop.5166.info 鍏竷鑲$エ鏁版嵁鏍煎紡鏂囨。 紼沖畾鐩堝埄鐨勫姹囦氦鏄撶郴緇熼粦鐗涘姹囦氦鏄撶郴緇?MT4緙栫▼zh-cnTue, 20 May 2008 01:53:00 GMTTue, 20 May 2008 01:53:00 GMT60鎵樼浠g爜濡備綍璋冪敤闈炴墭綆′唬鐮?c sharp濡備綍璋冪敤c++浠g爜)?http://www.shnenglu.com/alantop/archive/2008/04/16/47318.htmlAlanTopAlanTopWed, 16 Apr 2008 12:32:00 GMThttp://www.shnenglu.com/alantop/archive/2008/04/16/47318.htmlhttp://www.shnenglu.com/alantop/comments/47318.htmlhttp://www.shnenglu.com/alantop/archive/2008/04/16/47318.html#Feedback1http://www.shnenglu.com/alantop/comments/commentRss/47318.htmlhttp://www.shnenglu.com/alantop/services/trackbacks/47318.html闃呰鍏ㄦ枃

AlanTop 2008-04-16 20:32 鍙戣〃璇勮
]]>
鐢辨祬鍏ユ繁錛屼婦渚嬭瑙PC錛堜竴錛?/title><link>http://www.shnenglu.com/alantop/archive/2007/07/09/27727.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Mon, 09 Jul 2007 04:41:00 GMT</pubDate><guid>http://www.shnenglu.com/alantop/archive/2007/07/09/27727.html</guid><wfw:comment>http://www.shnenglu.com/alantop/comments/27727.html</wfw:comment><comments>http://www.shnenglu.com/alantop/archive/2007/07/09/27727.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/alantop/comments/commentRss/27727.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/alantop/services/trackbacks/27727.html</trackback:ping><description><![CDATA[  <p><span>鍏充簬</span><span>RPC</span><span>鐨勬枃绔犲緢澶氾紝浣嗘槸緋葷粺璁茶В鐨勫緢灝戙備笅闈㈡垜灝嗗啓涓涓郴鍒楁姤閬撱傜敤浠g爜鍜岃榪版潵鎶?/span><span>rpc</span><span>鏉ヨ璁叉竻妤氥?/span></p> <p><span>榪欑瘒灝辨槸寮濮嬬涓綃囦簡銆?/span></p> <p> </p> <p><span>鐢變簬宸ヤ綔姣旇緝蹇欍傛垜浠娊鍑轟竴涓槦鏈熺殑鏃墮棿錛屾湁鏃墮棿浼氬啓涓鐐廣傛妸榪欎釜緋誨垪鍐欏畬銆傛墍浠ワ紝鏈夊彲鑳芥瘡涓郴鍒楅兘姣旇緝鐭簺銆?/span></p> <p><span>浠庢渶鍩烘湰鐨勮璧鳳紝璁╁ぇ瀹跺交搴曟槑鐧?/span><span>RPC.</span></p> <p> </p> <p><span>濂戒簡搴熻瘽涓嶅璇翠簡銆傛鏄紑濮嬨?/span></p> <p> </p> <p> </p> <p><span>棣栧厛錛屼綘瑕佺敤</span><span>RPC</span><span>錛屽繀欏誨厛鎼炴竻妤氫粈涔堟槸</span><span>IDL.</span></p> <p> </p> <p><span>Rpc</span><span>鏄粈涔堬紵</span><span> </span></p> <p><span><a href="http://www.shnenglu.com/alantop/archive/2007/07/09/27717.html">http://www.shnenglu.com/alantop/archive/2007/07/09/27717.html</a></span></p> <p><span>IDL</span><span>鏄粈涔堬紵</span></p> <p><span><a href="http://www.shnenglu.com/alantop/archive/2007/07/09/27725.html">http://www.shnenglu.com/alantop/archive/2007/07/09/27725.html</a> </span></p> <p> </p> <p><span>涓嬫潵錛屼婦涓緥瀛愩傛庝箞鏍鋒妸涓涓爣鍑嗙▼搴忔敼鎴愮敤</span><span>IDL</span><span>璇█鍐欑殑紼嬪簭銆?/span></p> <p> </p> <p><span>榪欐槸涓涓爣鍑嗙▼搴忋?/span></p> <table cellSpacing=0 cellPadding=0 border=1> <tbody> <tr> <td vAlign=top width=568> <p><span>// File Standalone.cpp</span></p> <p><span>#include <iostream></span></p> <p> </p> <p><span>// Future server function.</span></p> <p><span>void Output(const char* szOutput)</span></p> <p><span>{</span></p> <p><span><span>   </span>std::cout << szOutput << std::endl;</span></p> <p><span>}</span></p> <p> </p> <p><span>int main()</span></p> <p><span>{</span></p> <p><span><span>   </span>// Future client call.</span></p> <p><span><span>   </span>Output("Hello Lonely World!");</span></p> <p><span>}</span></p> </td> </tr> </tbody> </table> <p> </p> <p><span>涓嬫潵鐪嬫垜浠庝箞鎶婂畠鏀逛負涓涓爣鍑?/span><span>IDL</span><span>璇█鐨勭▼搴?/span></p> <p><span>鐢?/span><span>IDL</span><span>璇█瀹氫箟鎺ュ彛錛?/span></p> <table cellSpacing=0 cellPadding=0 border=1> <tbody> <tr> <td vAlign=top width=568> <p><span>// File Example1.idl</span></p> <p><span>[</span></p> <p><span><span>   </span>// A unique identifier that distinguishes this</span></p> <p><span><span>   </span>// interface from other interfaces.</span></p> <p><span><span>   </span>uuid(00000001-EAF3-4A7A-A0F2-BCE4C30DA77E),</span></p> <p> </p> <p><span><span>   </span>// This is version 1.0 of this interface.</span></p> <p><span><span>   </span>version(1.0),</span></p> <p> </p> <p><span><span>   </span>// This interface will use an implicit binding</span></p> <p><span><span>   </span>// handle named hExample1Binding.</span></p> <p><span><span>   </span>implicit_handle(handle_t hExample1Binding)</span></p> <p><span>]</span></p> <p><span>interface Example1 // The interface is named Example1</span></p> <p><span>{</span></p> <p><span><span>   </span>// A function that takes a zero-terminated string.</span></p> <p><span><span>   </span>void Output(</span></p> <p><span><span>      </span>[in, string] const char* szOutput);</span></p> <p><span>}</span></p> </td> </tr> </tbody> </table> <p><span>涓婇潰榪欎釜鏂囦歡鏄垜浠敤</span><span>idl</span><span>璇█瀹氫箟鐨勶紝鎴戜滑瀹氫箟浜嗕竴涓帴鍙?/span><span>Example1, </span><span>瀹冨甫鏈?/span><span>uuid</span><span>鍜?/span><span>version. </span><span>榪欎釜鎺ュ彛閲屽畾涔変簡涓涓嚱鏁?/span><span>Output.</span></p> <p> </p> <p><span>UUID</span><span>鏄粈涔堬紵</span></p> <p><span><a href="http://www.shnenglu.com/alantop/archive/2007/07/09/27726.html">http://www.shnenglu.com/alantop/archive/2007/07/09/27726.html</a> </span></p> <p> </p> <p> </p> <p><span>鎺ュ彛鐨?/span><span>implicit_handle</span><span>灞炴э紝鎴戜滑鍚庨潰鍐嶈璁恒?/span></p> <p> </p> <p><span>鎺ヤ笅鏉ュ共浠涔堝憿錛?/span></p> <p><span>鎴戜滑涓轟簡鍦ㄧ▼搴忎腑浣跨敤</span><span>idl</span><span>錛屽繀欏婚氳繃閫氳繃緙栬瘧鍣紙</span><span>midl.exe</span><span>錛夋妸瀹冪炕璇戞垚瀹㈡埛浠g悊鍜屾湇鍔″櫒瀛樻牴錛?/span> <span>浠g悊鍜屽瓨鏍瑰皢鍦ㄥ悗闈㈣鎴戜滑鐨勭紪璇戝櫒錛?/span><span>windows</span><span>騫沖彴涓嬬殑</span><span>cl.exe</span><span>錛夋墍浣跨敤銆?/span></p> <p> <br></p> <p><img height=150 alt="" src="http://www.shnenglu.com/images/cppblog_com/alantop/rpcintro1_2.gif" width=363 border=0></p> <p> </p> <p><span>鏀瑰ソ鐨勬湇鍔″櫒绔▼搴忥細</span></p> <table cellSpacing=0 cellPadding=0 border=1> <tbody> <tr> <td vAlign=top width=568> <p><span>// File Example1Server.cpp</span></p> <p><span>#include <iostream></span></p> <p><span>#include "Example1.h"</span></p> <p> </p> <p><span>// Server function.</span></p> <p><span>void Output(const char* szOutput)</span></p> <p><span>{</span></p> <p><span><span>   </span>std::cout << szOutput << std::endl;</span></p> <p><span>}</span></p> <p> </p> <p><span>int main()</span></p> <p><span>{</span></p> <p><span><span>   </span>RPC_STATUS status;</span></p> <p> </p> <p><span><span>   </span>// Uses the protocol combined with the endpoint for receiving</span></p> <p><span><span>   </span>// remote procedure calls.</span></p> <p><span><span>   </span>status = RpcServerUseProtseqEp(</span></p> <p><span><span>      </span>reinterpret_cast<unsigned char*>("ncacn_ip_tcp"), // Use TCP/IP</span></p> <p><span><span>                                                        </span>// protocol.</span></p> <p><span><span>      </span>RPC_C_PROTSEQ_MAX_REQS_DEFAULT, // Backlog queue length for TCP/IP.</span></p> <p><span><span>      </span>reinterpret_cast<unsigned char*>("4747"), // TCP/IP port to use.</span></p> <p><span><span>      </span>NULL); // No security.</span></p> <p> </p> <p><span><span>   </span>if (status)</span></p> <p><span><span>      </span>exit(status);</span></p> <p> </p> <p><span><span>   </span>// Registers the Example1 interface.</span></p> <p><span><span>   </span>status = RpcServerRegisterIf(</span></p> <p><span><span>      </span>Example1_v1_0_s_ifspec, // Interface to register.</span></p> <p><span><span>      </span>NULL, // Use the MIDL generated entry-point vector.</span></p> <p><span><span>      </span>NULL); // Use the MIDL generated entry-point vector.</span></p> <p> </p> <p><span><span>   </span>if (status)</span></p> <p><span><span>      </span>exit(status);</span></p> <p> </p> <p><span><span>   </span>// Start to listen for remote procedure</span></p> <p><span><span>   </span>// calls for all registered interfaces.</span></p> <p><span><span>   </span>// This call will not return until</span></p> <p><span><span>   </span>// RpcMgmtStopServerListening is called.</span></p> <p><span><span>   </span>status = RpcServerListen(</span></p> <p><span><span>     </span>1, // Recommended minimum number of threads.</span></p> <p><span><span>     </span>RPC_C_LISTEN_MAX_CALLS_DEFAULT, // Recommended </span></p> <p><span> <span>                           </span>//maximum number of threads.</span></p> <p><span><span>     </span>FALSE); // Start listening now.</span></p> <p> </p> <p><span><span>   </span>if (status)</span></p> <p><span><span>      </span>exit(status);</span></p> <p><span>}</span></p> <p> </p> <p><span>// Memory allocation function for RPC.</span></p> <p><span>// The runtime uses these two functions for allocating/deallocating</span></p> <p><span>// enough memory to pass the string to the server.</span></p> <p><span>void* __RPC_USER midl_user_allocate(size_t size)</span></p> <p><span>{</span></p> <p><span><span>    </span>return malloc(size);</span></p> <p><span>}</span></p> <p> </p> <p><span>// Memory deallocation function for RPC.</span></p> <p><span>void __RPC_USER midl_user_free(void* p)</span></p> <p><span>{</span></p> <p><span><span>    </span>free(p);</span></p> <p><span>}</span></p> </td> </tr> </tbody> </table> <p> </p> <p><span>榪欐槸鍒濆鍖栵紝鍜屾敞鍐屾帴鍙g殑浠g爜銆?/span></p> <p> </p> <p><span>鐜板湪鐪嬬湅鎬庝箞鍐欏鎴風</span></p> <table cellSpacing=0 cellPadding=0 border=1> <tbody> <tr> <td vAlign=top width=568> <p><span>// File Example1Client.cpp</span></p> <p><span>#include <iostream></span></p> <p><span>#include "Example1.h"</span></p> <p> </p> <p><span>int main()</span></p> <p><span>{</span></p> <p><span><span>   </span>RPC_STATUS status;</span></p> <p><span><span>   </span>unsigned char* szStringBinding = NULL;</span></p> <p> </p> <p><span><span>   </span>// Creates a string binding handle.</span></p> <p><span><span>   </span>// This function is nothing more than a printf.</span></p> <p><span><span>   </span>// Connection is not done here.</span></p> <p><span><span>   </span>status = RpcStringBindingCompose(</span></p> <p><span><span>      </span>NULL, // UUID to bind to.</span></p> <p><span><span>      </span>reinterpret_cast<unsigned char*>("ncacn_ip_tcp"), // Use TCP/IP</span></p> <p><span><span>                                                        </span>// protocol.</span></p> <p><span><span>      </span>reinterpret_cast<unsigned char*>("localhost"), // TCP/IP network</span></p> <p><span><span>                                                     </span>// address to use.</span></p> <p><span><span>      </span>reinterpret_cast<unsigned char*>("4747"), // TCP/IP port to use.</span></p> <p><span><span>      </span>NULL, // Protocol dependent network options to use.</span></p> <p><span><span>      </span>&szStringBinding); // String binding output.</span></p> <p> </p> <p><span><span>   </span>if (status)</span></p> <p><span><span>      </span>exit(status);</span></p> <p> </p> <p><span><span>   </span>// Validates the format of the string binding handle and converts</span></p> <p><span><span>   </span>// it to a binding handle.</span></p> <p><span><span>   </span>// Connection is not done here either.</span></p> <p><span><span>   </span>status = RpcBindingFromStringBinding(</span></p> <p><span><span>      </span>szStringBinding, // The string binding to validate.</span></p> <p><span><span>      </span>&hExample1Binding); // Put the result in the implicit binding</span></p> <p><span><span>                          </span>// handle defined in the IDL file.</span></p> <p> </p> <p><span><span>   </span>if (status)</span></p> <p><span><span>      </span>exit(status);</span></p> <p> </p> <p><span><span>   </span>RpcTryExcept</span></p> <p><span><span>   </span>{</span></p> <p><span><span>      </span>// Calls the RPC function. The hExample1Binding binding handle</span></p> <p><span><span>      </span>// is used implicitly.</span></p> <p><span><span>      </span>// Connection is done here.</span></p> <p><span><span>      </span>Output("Hello RPC World!");</span></p> <p><span><span>   </span>}</span></p> <p><span><span>   </span>RpcExcept(1)</span></p> <p><span><span>   </span>{</span></p> <p><span><span>      </span>std::cerr << "Runtime reported exception " << RpcExceptionCode()</span></p> <p><span><span>    </span><span>            </span><< std::endl;</span></p> <p><span><span>   </span>}</span></p> <p><span><span>   </span>RpcEndExcept</span></p> <p> </p> <p><span><span>   </span>// Free the memory allocated by a string.</span></p> <p><span><span>   </span>status = RpcStringFree(</span></p> <p><span><span>      </span>&szStringBinding); // String to be freed.</span></p> <p> </p> <p><span><span>   </span>if (status)</span></p> <p><span><span>      </span>exit(status);</span></p> <p> </p> <p><span><span>   </span>// Releases binding handle resources and disconnects from the server.</span></p> <p><span><span>   </span>status = RpcBindingFree(</span></p> <p><span><span>      </span>&hExample1Binding); // Frees the implicit binding handle defined in</span></p> <p><span><span>                          </span>// the IDL file.</span></p> <p> </p> <p><span><span>   </span>if (status)</span></p> <p><span><span>      </span>exit(status);</span></p> <p><span>}</span></p> <p> </p> <p><span>// Memory allocation function for RPC.</span></p> <p><span>// The runtime uses these two functions for allocating/deallocating</span></p> <p><span>// enough memory to pass the string to the server.</span></p> <p><span>void* __RPC_USER midl_user_allocate(size_t size)</span></p> <p><span>{</span></p> <p><span><span>    </span>return malloc(size);</span></p> <p><span>}</span></p> <p> </p> <p><span>// Memory deallocation function for RPC.</span></p> <p><span>void __RPC_USER midl_user_free(void* p)</span></p> <p><span>{</span></p> <p><span><span>    </span>free(p);</span></p> <p><span>}</span></p> </td> </tr> </tbody> </table> <p> </p> <img src ="http://www.shnenglu.com/alantop/aggbug/27727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/alantop/" target="_blank">AlanTop</a> 2007-07-09 12:41 <a href="http://www.shnenglu.com/alantop/archive/2007/07/09/27727.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>UUID鏄粈涔堬紵http://www.shnenglu.com/alantop/archive/2007/07/09/27726.htmlAlanTopAlanTopMon, 09 Jul 2007 04:31:00 GMThttp://www.shnenglu.com/alantop/archive/2007/07/09/27726.htmlhttp://www.shnenglu.com/alantop/comments/27726.htmlhttp://www.shnenglu.com/alantop/archive/2007/07/09/27726.html#Feedback1http://www.shnenglu.com/alantop/comments/commentRss/27726.htmlhttp://www.shnenglu.com/alantop/services/trackbacks/27726.htmlUUID灝辨槸Universal Unique IDentifier鐨勭緝鍐欙紝瀹冩槸涓涓?28浣嶏紝16瀛楄妭鐨勫鹼紝騫剁‘淇濆湪鏃墮棿鍜岀┖闂翠笂鍞竴銆?br>瀹冩槸鎶婄‖浠跺湴鍧銆佹椂闂翠互鍙婇殢鏈烘暟緇撳悎鍦ㄤ竴璧鳳紝鏉ョ‘淇濆叾鍞竴鎬х殑銆?/font>
涓鑸儏鍐典笅錛岀敓鎴愮畻娉曠敤璁$畻鏈虹綉鍗$殑鍦板潃鍜屼竴涓?0浣嶇殑timestamp鐢熸垚錛屾椂闂存槸浠?00ns涓烘椂闂撮棿闅斻?/font>
渚嬪錛屼竴鍙?00PL 6862鐨勮綆楁満錛屼富鏉塊泦鎴愮殑緗戝崱鐨凪AC鍦板潃涓?0-04-AC-2E-B7-DC錛岃孶UID鐨勬渶鍚庡叚涓瓧鑺備篃浼氭槸0004AC2EB7DC

AlanTop 2007-07-09 12:31 鍙戣〃璇勮
]]>
IDL鏄粈涔堬紵http://www.shnenglu.com/alantop/archive/2007/07/09/27725.htmlAlanTopAlanTopMon, 09 Jul 2007 04:22:00 GMThttp://www.shnenglu.com/alantop/archive/2007/07/09/27725.htmlhttp://www.shnenglu.com/alantop/comments/27725.htmlhttp://www.shnenglu.com/alantop/archive/2007/07/09/27725.html#Feedback1http://www.shnenglu.com/alantop/comments/commentRss/27725.htmlhttp://www.shnenglu.com/alantop/services/trackbacks/27725.html闃呰鍏ㄦ枃

AlanTop 2007-07-09 12:22 鍙戣〃璇勮
]]>
retval閲婄枒http://www.shnenglu.com/alantop/archive/2006/11/11/14996.htmlAlanTopAlanTopSat, 11 Nov 2006 01:07:00 GMThttp://www.shnenglu.com/alantop/archive/2006/11/11/14996.htmlhttp://www.shnenglu.com/alantop/comments/14996.htmlhttp://www.shnenglu.com/alantop/archive/2006/11/11/14996.html#Feedback0http://www.shnenglu.com/alantop/comments/commentRss/14996.htmlhttp://www.shnenglu.com/alantop/services/trackbacks/14996.html涓轟簡璁╂柟娉曡繑鍥炰竴涓笌''鏂規硶鐨勭墿鐞咹RESULT''涓嶇浉鍏崇殑閫昏緫緇撴灉錛孋OM IDL鏀寔retval鍙傛暟灞炴с俽etval灞炴х殑鍚箟鏄紝鐩稿叧鑱旂殑鐗╃悊鏂規硶鍙傛暟瀹為檯涓婃槸鎿嶄綔鐨勯昏緫緇撴灉錛屽湪鏀寔retval鐨勭幆澧冧腑錛岃鍙傛暟搴旇琚槧灝勪負鎿嶄綔鐨勭粨鏋?/b>銆備緥濡傦紝緇欏畾涓嬮潰鐨処DL鏂規硶瀹氫箟錛?br />

HRESULT Method2( [in] short arg1,[out,retval] short * parg2);

鍦↗ava璇█涓紝搴旇琚槧灝勪負涓嬮潰鐨勫嚱鏁幫細
public short Method2(short arg1);
鑰屽湪Visual Basic涓紝鏂規硶瀹氫箟濡備笅;
Function Method2(arg1 as Integer) as Integer


鍥犱負C++娌℃湁涓撻棬鐨勮繍琛屾椂搴撴潵鏀寔COM鎺ュ彛璁塊棶鎿嶄綔錛屾墍浠icrosoft C++鎶婅繖涓柟娉曟槧灝勭▼涓嬮潰鐨勫嚱鏁幫細
virtual HRESULT __stdcall Method2(short arg1,short* parg2 ) = 0;

//
// interface IVAIS wrapper method implementations
//

inline char IVAIS::ExecVerifyAIS ( _bstr_t AisContent, short length ) {
聽聽聽 char _result;
聽聽聽 HRESULT _hr = raw_ExecVerifyAIS(AisContent, length, &_result);
聽聽聽 if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
聽聽聽 return _result;
}



AlanTop 2006-11-11 09:07 鍙戣〃璇勮
]]>
com涓敤bool綾誨瀷銆?/title><link>http://www.shnenglu.com/alantop/archive/2006/11/10/14937.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Thu, 09 Nov 2006 23:36:00 GMT</pubDate><guid>http://www.shnenglu.com/alantop/archive/2006/11/10/14937.html</guid><wfw:comment>http://www.shnenglu.com/alantop/comments/14937.html</wfw:comment><comments>http://www.shnenglu.com/alantop/archive/2006/11/10/14937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/alantop/comments/commentRss/14937.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/alantop/services/trackbacks/14937.html</trackback:ping><description><![CDATA[鍦╟om鐢ㄧ敤bool綾誨瀷錛岃繕鏄湁浜涜絀躲?br />1. 濡傛灉浣犲彧鏄粰c++鎴杍ava浣跨敤錛屽彲浠ョ敤boolean.鍏朵粬璇█涓嶆敮鎸併?br />2. 浣犺鏄彁楂樿嚜鍔ㄥ寲鍙橀噺VARIANT_BOOL,浠栫殑綾誨瀷鍊兼槸VARIANT_TRUE鎴栬匳ARIANT_FALSE.<br /><br />com涓彲浠ヨ嚜瀹氫箟HRESULT鐨勫箋?br />涓鑸敤S_OK錛岃〃紺哄嚱鏁拌皟鐢ㄦ垚鍔熴?br />鐢‥_UNEXPECTED 琛ㄧず鐨勬槸浠g爜涓殑閿欒銆?br /><br /><img src ="http://www.shnenglu.com/alantop/aggbug/14937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/alantop/" target="_blank">AlanTop</a> 2006-11-10 07:36 <a href="http://www.shnenglu.com/alantop/archive/2006/11/10/14937.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍐嶆錛岃В閲奀ComPtr鍜孋ComQIPtr銆?/title><link>http://www.shnenglu.com/alantop/archive/2006/05/13/7051.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Fri, 12 May 2006 19:44:00 GMT</pubDate><guid>http://www.shnenglu.com/alantop/archive/2006/05/13/7051.html</guid><wfw:comment>http://www.shnenglu.com/alantop/comments/7051.html</wfw:comment><comments>http://www.shnenglu.com/alantop/archive/2006/05/13/7051.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/alantop/comments/commentRss/7051.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/alantop/services/trackbacks/7051.html</trackback:ping><description><![CDATA[ <p> <font face="Courier New" size="2">瀵逛簬鎿嶄綔鍘熷鐨勬帴鍙f寚閽堟槸姣旇緝楹葷儲鐨勶紝闇瑕佹垜浠嚜宸辨帶鍒跺紩鐢ㄨ鏁般丄PI 璋冪敤銆佸紓甯稿鐞嗐備簬鏄?ATL 鎻愪緵浜?涓櫤鑳芥寚閽堢殑妯℃澘鍖呰綾伙紝CComPtr<> 鍜?CComQIPtr<>錛岃繖涓や釜綾婚兘鍦?<atlbase.h> 涓0鏄庛侰ComQIPtr<> 鍖呭惈浜?CComPtr<>鐨勬墍鏈夊姛鑳斤紝鍥犳鎴戜滑鍙互瀹屽叏鐢?CComQIPtr<> 鏉ヤ嬌鐢ㄦ櫤鑳芥帴鍙f寚閽堬紝鍞竴瑕佽鏄庣殑涓鐐瑰氨鏄細CComQIPtr<> 鐢變簬浣跨敤浜嗚繍綆楃鐨勯噸杞藉姛鑳斤紝瀹冧細鑷姩甯垜浠皟鐢≦ueryInterface()鍑芥暟錛屽洜姝?CComQIPtr<> 鍞竴鐨勭己鐐瑰氨鏄笉鑳藉畾涔?IUnknown * 鎸囬拡銆?<br /><br />聽聽聽聽 // 鏅鴻兘鎸囬拡 smart pointer錛屾寜鐓у寛鐗欏埄鍛藉悕娉曪紝涓鑸互 sp 寮澶存潵琛ㄧず鍙橀噺綾誨瀷<br />銆銆聽 CComPtr < IUnknown > spUnk;聽// 姝g‘<br />銆銆聽 // 鍋囪 IFun 鏄竴涓帴鍙g被鍨?br />銆銆聽 CComPtr < IFun > spFun;聽// 姝g‘<br />銆銆聽 CComQIPtr < IFun > spFun;聽// 姝g‘<br />銆銆聽 CComQIPtr < IFun, &IID_IFun > spFun;聽// 姝g‘<br />銆銆聽 CComQIPtr < IUnknown > spUnk;聽// 閿欒錛丆ComQIPtr涓嶈兘瀹氫箟IUnknown鎸囬拡<br />聽聽<br />緇欐櫤鑳芥寚閽堣祴鍊肩殑鏂規硶錛?<br />銆銆聽 CComQIPtr < IFun > spFun;聽// 璋冪敤鏋勯犲嚱鏁幫紝榪樻病鏈夎祴鍊鹼紝琚寘瑁呯殑鍐呴儴鎺ュ彛鎸囬拡涓?NULL<br />銆銆聽 <br />銆銆聽 CComQIPtr < IFun > spFun( pOtherInterface );聽// 璋冪敤鏋勯犲嚱鏁幫紝鍐呴儴鎺ュ彛鎸囬拡璧嬪間負<br />銆銆聽 // 閫氳繃 pOtherInterface 榪欎釜鏅氭帴鍙f寚閽堣皟鐢≦ueryInterface()寰楀埌鐨処Fun鎺ュ彛鎸囬拡<br />銆銆聽 <br />銆銆聽 CComQIPtr < IFun > spFun( spOtherInterface ); // 璋冪敤鏋勯犲嚱鏁幫紝鍐呴儴鎺ュ彛鎸囬拡璧嬪間負<br />銆銆聽 // 閫氳繃 spOtherInterface 榪欎釜鍙兘鎺ュ彛鎸囬拡璋冪敤QueryInterface()寰楀埌鐨処Fun鎺ュ彛鎸囬拡<br />銆銆聽 <br />銆銆聽 CComQIPtr < IFun > spFun ( pUnknown );聽// 璋冪敤鏋勯犲嚱鏁幫紝鐢盜Unknown鐨凲ueryInterface()寰楀埌IFun鎺ュ彛鎸囬拡<br />銆銆聽 <br />銆銆聽 CComQIPtr < IFun > spFun = pOtherInterface;聽// = 榪愮畻絎﹂噸杞斤紝鍚箟鍜屼笂闈竴鏍?br />銆銆聽 spFun = spOtherInterface;聽// 鍚屼笂<br />銆銆聽 spFun = pUnknown;聽// 鍚屼笂<br />銆銆聽 <br />銆銆聽 pUnknown->QueryInterface( IID_IFun, &sp );聽// 涔熷彲浠ラ氳繃QueryInterface璧嬪?br />銆銆聽 <br />銆銆聽 // 鏅鴻兘鎸囬拡璧嬪煎悗錛屽彲浠ョ敤鏉′歡璇彞鍒ゆ柇鏄惁鍚堟硶鏈夋晥<br />銆銆聽 if ( spFun ){}聽聽// 濡傛灉鎸囬拡鏈夋晥<br />銆銆聽 if ( NULL != spFun ){}聽// 濡傛灉鎸囬拡鏈夋晥<br />銆銆聽 <br />銆銆聽 if ( !spFun ){}聽聽// 濡傛灉鎸囬拡鏃犳晥<br />銆銆聽 if ( NULL == spFun ){}聽// 濡傛灉鎸囬拡鏃犳晥 </font> </p> <p> <font face="Courier New" size="2"> </font>聽</p> <p> <font face="Courier New" size="2">鏅鴻兘鎸囬拡璋冪敤鍑芥暟鐨勬柟娉曪細 <br />銆銆聽 spFun.CoCreateInstance(...);聽// 絳変環涓?API 鍑芥暟::CoCreateInstance(...)<br />銆銆聽 spFun.QueryInterface(...);聽// 絳変環涓?API 鍑芥暟::QueryInterface()<br />銆銆聽 <br />銆銆聽 spFun->Add(...);聽// 璋冪敤鍐呴儴鎺ュ彛鎸囬拡鐨勬帴鍙e嚱鏁?</font> </p> <p> <font face="Courier New" size="2">銆銆聽 // 璋冪敤鍐呴儴鎺ュ彛鎸囬拡鐨凲ueryInterface()鍑芥暟錛屽叾瀹炴晥鏋滃拰 spFun.QueryInterface(...) 涓鏍?br />銆銆聽 spFun->QueryInterface(...);聽<br />銆銆聽 <br />銆銆聽 spFun.Release();聽// 閲婃斁鍐呴儴鐨勬帴鍙f寚閽堬紝鍚屾椂鍐呴儴鎸囬拡璧嬪間負 NULL<br />銆銆聽 spFun->Release();聽// 閿欙紒錛侊紒涓瀹氫笉瑕佽繖涔堜嬌鐢ㄣ?br />銆銆聽 // 鍥犱負榪欎釜璋冪敤騫朵笉鎶婂唴閮ㄦ寚閽堟竻絀猴紝閭d箞鏋愭瀯鐨勬椂鍊欎細琚啀嬈¢噴鏀撅紙閲婃斁浜嗕袱嬈★級<br /></font> </p> <img src ="http://www.shnenglu.com/alantop/aggbug/7051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/alantop/" target="_blank">AlanTop</a> 2006-05-13 03:44 <a href="http://www.shnenglu.com/alantop/archive/2006/05/13/7051.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>CComPtr鍜孋ComQIPtr鐨勫尯鍒?http://www.shnenglu.com/alantop/archive/2006/05/13/7050.htmlAlanTopAlanTopFri, 12 May 2006 19:36:00 GMThttp://www.shnenglu.com/alantop/archive/2006/05/13/7050.htmlhttp://www.shnenglu.com/alantop/comments/7050.htmlhttp://www.shnenglu.com/alantop/archive/2006/05/13/7050.html#Feedback0http://www.shnenglu.com/alantop/comments/commentRss/7050.htmlhttp://www.shnenglu.com/alantop/services/trackbacks/7050.htmlCComPtr<IWebBrowser2> m_spWebBrowser2;
IUnknown *pUnknown;
pUnknown->QueryInterface(&m_spWebBrowser2);

CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> m_spWebBrowser2;
IUnknown *pUnknown;
m_spWebBrowser2 = pUnknown;


AlanTop 2006-05-13 03:36 鍙戣〃璇勮
]]>
閫氳繃QueryInterface鎺ュ彛鏌ヨ鍜屼嬌鐢↖Dispatch 鎺ュ彛榪涜鎿嶄綔鐨勫姣斻?/title><link>http://www.shnenglu.com/alantop/archive/2006/05/13/7049.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Fri, 12 May 2006 19:29:00 GMT</pubDate><guid>http://www.shnenglu.com/alantop/archive/2006/05/13/7049.html</guid><wfw:comment>http://www.shnenglu.com/alantop/comments/7049.html</wfw:comment><comments>http://www.shnenglu.com/alantop/archive/2006/05/13/7049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/alantop/comments/commentRss/7049.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/alantop/services/trackbacks/7049.html</trackback:ping><description><![CDATA[鍐欎竴涓彁浜ょ綉欏佃〃鍗曠殑紼嬪簭銆傛瘮杈冧簡涓涓婹ueryInterface鎺ュ彛鏌ヨ鍜屼嬌鐢↖Dispatch 鎺ュ彛榪涜鎿嶄綔<br />銆?br />閫氳繃 QueryInterface 鎺ュ彛鏌ヨ錛岀劧鍚庡啀榪涜鏉′歡鍒ゆ柇鏄劇劧鏄瘮杈冪儲鐞愮殑,浣嗘槸鏁堢巼姣旇緝楂樸傞傚悎鐗瑰畾鐨勫凡鐭ョ綉欏佃璁″唴瀹圭殑紼嬪簭銆?br />渚嬪鑷姩榪涘叆126閭鐨勭▼搴忋?br /><br />鐩存帴浣跨敤 IDispatch 鎺ュ彛榪涜鎿嶄綔鐨勶紝榪欎釜鏂瑰紡鎵ц璧鋒潵紼嶅井鎱竴浜涳紝浣嗙▼搴忔瘮杈冪畝鍗曘?br /><br />鎵句竴涓繖涓祫鏂橧ShellWindows銆?img src ="http://www.shnenglu.com/alantop/aggbug/7049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/alantop/" target="_blank">AlanTop</a> 2006-05-13 03:29 <a href="http://www.shnenglu.com/alantop/archive/2006/05/13/7049.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浜岃繘鍒跺眰嬈′笂浣跨敤緇勪歡鐨勬柟娉曪細http://www.shnenglu.com/alantop/archive/2006/04/29/6467.htmlAlanTopAlanTopSat, 29 Apr 2006 11:08:00 GMThttp://www.shnenglu.com/alantop/archive/2006/04/29/6467.htmlhttp://www.shnenglu.com/alantop/comments/6467.htmlhttp://www.shnenglu.com/alantop/archive/2006/04/29/6467.html#Feedback0http://www.shnenglu.com/alantop/comments/commentRss/6467.htmlhttp://www.shnenglu.com/alantop/services/trackbacks/6467.html

鍖呭 (containment) 錛氫竴涓粍浠跺寘鍚叾浠栫粍浠剁殑鎺ュ彛鎸囬拡銆?/span>

鑱氬悎 (aggregation) 錛氬閮ㄧ粍浠剁洿鎺ヤ紶閫掑唴閮ㄧ粍浠剁殑鎺ュ彛鎸囬拡緇欏鎴風殑緇勪歡鐨勫鐢ㄦ満鍒?/span> .



AlanTop 2006-04-29 19:08 鍙戣〃璇勮
]]>
亚洲中文精品久久久久久不卡| 爱做久久久久久| 久久亚洲AV成人无码电影| 国内精品久久久久影院日本| 久久精品国产亚洲Aⅴ香蕉| 久久亚洲精品无码VA大香大香| 久久婷婷成人综合色综合| 久久99久久成人免费播放| 久久精品国产99久久无毒不卡 | 久久综合九色综合精品| 伊人色综合久久天天网| 久久综合九色综合精品| 色欲av伊人久久大香线蕉影院| 久久亚洲国产精品一区二区| 亚洲国产欧洲综合997久久| 久久亚洲国产精品123区| 久久不射电影网| 精品无码久久久久久午夜| 中文精品99久久国产 | 国内精品伊人久久久久777| 精品久久久久久99人妻| 国产成人精品久久二区二区| 国产69精品久久久久9999APGF| 看全色黄大色大片免费久久久| 日本久久久精品中文字幕| 久久这里只有精品久久| 久久久精品免费国产四虎| 99久久婷婷免费国产综合精品| 亚洲精品乱码久久久久久自慰| 久久精品国产免费观看| 久久人人爽人人爽人人爽| 久久久www免费人成精品| 久久久久久精品免费看SSS | av国内精品久久久久影院| 亚洲国产精品高清久久久 | 国产国产成人久久精品| 99精品久久久久久久婷婷| 久久精品一区二区影院| 香蕉99久久国产综合精品宅男自 | 久久精品无码一区二区三区日韩| 精品综合久久久久久88小说|