锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产欧美在线,久久久之久亚州精品露出,在线亚洲伦理http://www.shnenglu.com/cpunion/category/48.htmlAS/C/C++/D/Java/JS/Python/Rubyzh-cnMon, 26 May 2008 15:24:30 GMTMon, 26 May 2008 15:24:30 GMT60鎼http://www.shnenglu.com/cpunion/archive/2006/10/09/13499.htmlqieziqieziMon, 09 Oct 2006 14:33:00 GMThttp://www.shnenglu.com/cpunion/archive/2006/10/09/13499.htmlhttp://www.shnenglu.com/cpunion/comments/13499.htmlhttp://www.shnenglu.com/cpunion/archive/2006/10/09/13499.html#Feedback0http://www.shnenglu.com/cpunion/comments/commentRss/13499.htmlhttp://www.shnenglu.com/cpunion/services/trackbacks/13499.html

qiezi 2006-10-09 22:33 鍙戣〃璇勮
]]>
孌佃惤鏂囨湰娓叉煋寮曟搸http://www.shnenglu.com/cpunion/archive/2006/10/09/13484.htmlqieziqieziMon, 09 Oct 2006 03:44:00 GMThttp://www.shnenglu.com/cpunion/archive/2006/10/09/13484.htmlhttp://www.shnenglu.com/cpunion/comments/13484.htmlhttp://www.shnenglu.com/cpunion/archive/2006/10/09/13484.html#Feedback0http://www.shnenglu.com/cpunion/comments/commentRss/13484.htmlhttp://www.shnenglu.com/cpunion/services/trackbacks/13484.html
鏈変簡freetype瀹炵幇搴曞眰瀛椾綋娓叉煋錛屾垜鍙渶瑕佸鐞嗕竴浜涘竷灞鏂規(guī)硶鍗沖彲錛屽叾涓瀹炵幇鐨勬湁浠ヤ笅鍑犵偣錛?br />
1銆佽嫳銆佷腑瀛椾綋
寰堝涓枃瀛椾綋涓殑鑻辨枃瀛椾綋閮芥瘮杈冮毦鐪嬶紝鎵浠ュ湪X鐨勫瓧浣撻厤緗腑璁劇疆浜嗕竴涓瓧浣撻『搴忋傛垜涔熷彲浠ュ瀛︼紝浼犻掍竴涓瓧浣撳垪琛紝鎷垮埌涓涓瓧絎︽椂錛屾寜欏哄簭浠庡瓧浣撳垪琛ㄤ腑鏌ヨ錛屾煡璇笉鍒版椂灝辨煡涓嬩竴涓瓧浣擄紝榪欐牱灝卞彲浠ュ疄鐜拌嫳銆佷腑浣跨敤涓嶅悓瀛椾綋浜嗐?br />
2銆佸垎琛?br />孌佃惤鍒嗚瑕佽冭檻鍒頒腑銆佽嫳鏂囦笉鍚岀殑鍒嗗壊鏂瑰紡錛岃繕鏈夋爣鐐圭鍙鳳紝鏌愬紩璧鋒爣鐐圭鍙蜂笉鑳藉湪琛屽熬錛堟瘮濡傗?lt;絳夛級錛屾煇浜涙爣鐐逛笉鑳藉湪琛岄錛堟瘮濡傗?gt;錛夛紝鏌愪簺鏍囩偣涓嶈兘鍒嗗壊錛堟瘮濡傜牬鎶樺彿錛夛紝鎵浠ュ疄闄呬笂瑕佹湁涓涓垎鍓茬畻娉曪紝鎶婃钀藉垎鎴愪竴涓釜鐨勬爣璁幫紝姹夊瓧鐩存帴鍒嗗壊錛岃嫳鏂囨寜絀烘牸鍒嗗壊錛屼笉鑳藉湪琛岄鐨勬爣鐐瑰氨鍒嗗埌鍓嶉潰鍗曡瘝閲岋紝涓嶈兘鍦ㄨ灝劇殑灝卞垎鍦ㄥ悗闈㈢殑鍗曡瘝閲屻?br />
3銆佸榻?br />瀵歸綈鏂瑰紡鏈夊乏銆佷腑銆佸彸銆佷袱绔?Full Justification)榪欏嚑縐嶆柟寮忥紝鐩墠澶ч儴鍒嗗紑婧愭覆鏌撳簱閮戒笉鏀寔涓ょ瀵歸綈錛岃繖涔熸槸鎴戣鑷繁瀹炵幇鐨勪富瑕佸師鍥犮傚乏銆佷腑銆佸彸鍙璁$畻鍑轟竴琛岀殑鎵鏈夊瓧絎﹀搴︼紝鍐嶈綆楀嚭宸﹁竟璺濆嵆鍙備袱绔榻愬垯闇瑕佽綆楁瘡涓崟璇嶇殑闂磋窛銆?br />
4銆佹棣栫緝榪?br /> 鍘熸潵璁炬兂鍦ㄥ垎孌靛悗鐩存帴鍔犱笂鍏ㄨ絀烘牸錛屼笉鎯寵繖涓┖鏍煎湪杞垚UNICODE緙栫爜鏃訛紝瀹冪殑緙栫爜鏄痋u0000錛屼笉鑳借幏鍙栧埌鍏ㄨ絀烘牸鐨勫搴︺備簬鏄妸瀹冭鎴愬瓧浣撻珮搴︼紝鐪嬩簡涓涓嬫晥鏋滆繕濂姐?br />

qiezi 2006-10-09 11:44 鍙戣〃璇勮
]]>
[private] 鏂囧瓧緇樺浘搴撹祫鏂欐敹闆?/title><link>http://www.shnenglu.com/cpunion/archive/2006/09/28/13124.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Thu, 28 Sep 2006 12:03:00 GMT</pubDate><guid>http://www.shnenglu.com/cpunion/archive/2006/09/28/13124.html</guid><wfw:comment>http://www.shnenglu.com/cpunion/comments/13124.html</wfw:comment><comments>http://www.shnenglu.com/cpunion/archive/2006/09/28/13124.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/cpunion/comments/commentRss/13124.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/cpunion/services/trackbacks/13124.html</trackback:ping><description><![CDATA[涓昏鏀墮泦鍙互緇樺埗鏂囧瓧鐨勭粯鍥懼簱銆?br /><br />涓銆乮magemagick:<br />http://www.cit.gu.edu.au/~anthony/graphics/imagick6/<br />鍙互緇樺埗鏂囧瓧錛屼笉榪囦腑鏂囧ソ鍍忎笉鑳借嚜鍔ㄦ柇琛屻?br /><br />浜屻乿ips<br />http://vips.sourceforge.net<br />浣跨敤pango緇樺埗鏂囧瓧錛屼腑鏂囧彲浠ユ柇琛岋紝緙哄皯2绔榻愬姛鑳姐傝嚜宸變慨鏀逛唬鐮佸鍔犱簡璋冩暣琛岃窛鍔熻兘錛屽仛鎴恟uby鎵╁睍搴擄紝amd64涓婁嬌鐢ㄥけ璐ワ紝鍘熷洜寰呮煡銆?br /><br />涓夈乫reetype<br />http://vips.sourceforge.net<br />涓嶄緷璧栧叾瀹冨浘褰?紿楀彛搴擄紝鍏跺畠涓嶇啛鎮(zhèn)夛紝寰呮煡銆?br /><br />鍥涖丟raphite<br />璺ㄥ鉤鍙扮殑瀛椾綋娓叉煋搴撱傚緟鏌ャ?br /><br /><br />鎼滃宸叉湁鏁版湀錛岀洰鍓嶇湅鍒扮殑鍑犱釜搴撻兘涓嶅お鐞嗘兂錛宮ac osx涓婂彲鑳芥瘮杈冧笓涓氾紝涓嶈繃闆嗘垚杈冨洶闅俱?br /><br />鑻規(guī)灉緗戠珯涓婄殑姣旇緝瀹屾暣鐨勫瓧浣撶粯鍒跺拰甯冨眬鏂歸潰鐨勮祫鏂欙細(xì)<br />http://developer.apple.com/documentation/Carbon/Conceptual/ATSUI_Concepts/index.html<br />鍏朵腑甯冨眬鏂歸潰鐨勪笓涓氱煡璇嗭細(xì)<br />http://developer.apple.com/documentation/Carbon/Conceptual/ATSUI_Concepts/atsui_chap3/chapter_3_section_3.html#//apple_ref/doc/uid/TP30000029-TPXREF157<br /><br /><br />鍏跺畠璧勬枡錛?br /><ul><li><a title="Uniscribe">Uniscribe</a> (Windows multilingual text rendering engine)</li><li><a title="WorldScript">WorldScript</a> (Old Macintosh multilingual text rendering engine)</li><li><a title="Apple Type Services for Unicode Imaging">Apple Type Services for Unicode Imaging</a> (New Macintosh multilingual text rendering engine)</li></ul><br /><img src ="http://www.shnenglu.com/cpunion/aggbug/13124.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2006-09-28 20:03 <a href="http://www.shnenglu.com/cpunion/archive/2006/09/28/13124.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[RoR] 瀹炵幇涓涓猘uto_redirect_tohttp://www.shnenglu.com/cpunion/archive/2006/05/20/7434.htmlqieziqieziFri, 19 May 2006 18:33:00 GMThttp://www.shnenglu.com/cpunion/archive/2006/05/20/7434.htmlhttp://www.shnenglu.com/cpunion/comments/7434.htmlhttp://www.shnenglu.com/cpunion/archive/2006/05/20/7434.html#Feedback0http://www.shnenglu.com/cpunion/comments/commentRss/7434.htmlhttp://www.shnenglu.com/cpunion/services/trackbacks/7434.html
鎴戦亣鍒扮殑涓涓棶棰樻槸錛屽綋浣跨敤Ajax鏇存柊欏甸潰灞閮ㄥ唴瀹規(guī)椂錛宻ession鍐呭宸茬粡榪囨湡錛岃繖鏃墮渶瑕佹暣涓〉闈㈣煩杞埌鐧誨綍欏甸潰銆?br />
鐩存帴璋冪敤redirect_to浼?xì)鋴慑眬閮ㄥ唴瀹規(guī)樉紺烘垚鐧誨綍欏甸潰錛屽畠鏄湪HTTP澶撮噷鍐欏叆閲嶅畾鍚戝弬鏁版潵瀹炵幇鐨勩傚湪鎴戣繖閲岀殑鐗規(guī)畩鎯呭喌涓嬶紝姝g‘鐨勫仛娉曟槸璁╁畠鎵ц涓涓寘鍚湪<script>鏍囪涓殑鑴氭湰錛屽湪鑴氭湰涓洿鏀圭獥鍙ocation鍊兼潵璺寵漿銆?br />
涓嶈繃RoR涓嬌鐢ˋjax鏃訛紝浼?xì)鏍规?update鍙傛暟鏉ュ喅瀹氭槸浣跨敤Updater榪樻槸Request銆傚鏋滀嬌鐢║pdater鏂瑰紡錛屽垯搴旇繑鍥炰竴孌電函鑴氭湰錛涘鏋滄槸Request鏂瑰紡錛屽簲榪斿洖涓孌靛寘鎷湪<script>鏍囪涓殑鑴氭湰錛涘鏋滄槸鏅氭柟寮忥紝灝卞簲璇ヤ嬌鐢ㄥ師鏈夌殑redirect_to鍑芥暟浜嗐傚洜涓烘湇鍔$鏃犳硶鍖哄垎浣跨敤鐨勬槸鍝鏂瑰紡鏉ヨ姹傦紝鎵浠ョ畝鍗曠殑鍋氭硶鏄瘡涓姹傞兘闄勫姞涓涓弬鏁扮敤鏉ュ尯鍒嗭紝涓嶅姞鍙傛暟鍒欐槸鏅氳姹傛柟寮忋?br />
涓轟簡杈懼埌榪欎釜鐩殑錛屾垜淇敼浜唒rototype_helper涓殑remote_function鍑芥暟銆傝繖涓嚱鏁版牴鎹紶閫掕繘鏉ョ殑鍙傛暟鏉ュ喅瀹氫嬌鐢≧equest鎴栨槸Updater錛屾垜灝卞湪榪欓噷涓嬫墜錛?br />
聽聽聽聽聽聽def聽remote_function(options)
聽聽聽聽聽聽聽聽javascript_options聽
=聽options_for_ajax(options)

聽聽聽聽聽聽聽聽update聽
=''
聽聽聽聽聽聽聽聽
if聽options[:update]聽and聽options[:update].is_a?Hash
聽聽聽聽聽聽聽聽聽聽update聽聽
=聽[]
聽聽聽聽聽聽聽聽聽聽update聽
<<"success:'#{options[:update][:success]}'"if聽options[:update][:success]
聽聽聽聽聽聽聽聽聽聽update聽
<<"failure:'#{options[:update][:failure]}'"if聽options[:update][:failure]
聽聽聽聽聽聽聽聽聽聽update聽聽
='{'+聽update.join(',')聽+'}'
聽聽聽聽聽聽聽聽elsif聽options[:update]
聽聽聽聽聽聽聽聽聽聽update聽
<<"'#{options[:update]}'"
聽聽聽聽聽聽聽聽end

聽聽聽聽聽聽聽聽function聽
=聽update.empty??
聽聽聽聽聽聽聽聽聽聽
"new聽Ajax.Request("聽:
聽聽聽聽聽聽聽聽聽聽
"new聽Ajax.Updater(#{update},聽"
聽聽聽聽
聽聽聽聽聽聽聽聽url_options聽
=聽options[:url]
聽聽聽聽聽聽聽聽ajax_options聽
=聽options[:update]聽?聽{:ajax聽=>'update'}聽:聽{:ajax聽=>'request'}
聽聽聽聽聽聽聽聽url_options聽
=
聽url_options.merge(ajax_options)
聽聽聽聽聽聽聽聽url_options聽
=聽url_options.merge(:escape聽=>false)聽if聽url_options.is_a?聽Hash
聽聽聽聽聽聽聽聽function聽
<<"'#{url_for(url_options)}'"
聽聽聽聽聽聽聽聽function聽
<<",聽#{javascript_options})"

聽聽聽聽聽聽聽聽function聽
="#{options[:before]};聽#{function}"if聽options[:before]
聽聽聽聽聽聽聽聽function聽
="#{function};聽#{options[:after]}"聽聽if聽options[:after]
聽聽聽聽聽聽聽聽function聽
="if聽(#{options[:condition]})聽{聽#{function};聽}"if聽options[:condition]
聽聽聽聽聽聽聽聽function聽
="if聽(confirm('#{escape_javascript(options[:confirm])}'))聽{聽#{function};聽}"if聽options[:confirm]

聽聽聽聽聽聽聽聽
return聽function
聽聽聽聽聽聽end

鏈夌孩鑹茬殑2琛屾槸鎴戞坊鍔犵殑錛岀敱浜庤繖涓紪杈戝櫒鐨勫師鍥狅紝娌℃湁鏄劇ず鎴愭暣琛岀孩鑹層傝繖2琛岀殑浣滅敤鏄垽鏂槸鍚︽湁:update鍙傛暟錛岀敤瀹冩潵鍐沖畾鏄坊鍔燼jax=update榪樻槸ajax=request銆?br />
鐜板湪鍙互瀹炵幇涓涓畝鍗曠殑auto_redirect_to浜嗭細(xì)

聽聽def聽auto_redirect_to(method,聽url)
聽聽聽聽
case聽method
聽聽聽聽when聽
'request'
聽聽聽聽聽聽request_redirect_to(url)
聽聽聽聽when聽
'update'
聽聽聽聽聽聽update_redirect_to(url)
聽聽聽聽
else
聽聽聽聽聽聽redirect_to(url)
聽聽聽聽end
聽聽end
聽聽
聽聽def聽request_redirect_to(url)
聽聽聽聽render聽:update聽
do|page|
聽聽聽聽聽聽page.redirect_to(url)
聽聽聽聽end
聽聽end
聽聽
聽聽def聽update_redirect_to(url)
聽聽聽聽render聽:inline聽
=><<-EOS
聽聽聽聽聽聽
<script聽language="javascript">
聽聽聽聽聽聽
<%=
聽聽聽聽聽聽聽聽render聽:update聽
do|page|
聽聽聽聽聽聽聽聽聽聽page.redirect_to(
"#{url_for(url)}")
聽聽聽聽聽聽聽聽end
聽聽聽聽聽聽
%>
聽聽聽聽聽聽
</script>
聽聽聽聽EOS
聽聽end

浣跨敤helper鏂瑰紡浣垮畠鑳藉琚玦nclude鍒癆pplicationController涓氨琛屼簡銆?br />
涓轟簡涓嶅拰鍙傛暟緇戝緱澶錛岃繖閲屾妸method浣滀負(fù)鍙傛暟鐢辮皟鐢ㄨ呬紶鍏ャ?br />
浣跨敤鏂規(guī)硶錛屼互Login Engine涓轟緥錛屽畠鍦╝ccess_denied涓鐞嗚煩杞傚湪ApplicationController涓噸鍐欒繖涓嚱鏁幫細(xì)

聽聽聽聽def聽access_denied
聽聽聽聽聽聽auto_redirect_to(
params[:ajax],聽:controller聽=>"/user",聽:action聽=>"login")
聽聽聽聽聽聽
false
聽聽聽聽end聽聽

鐜板湪鍙互嫻嬭瘯浜嗐傝姹傚彲浠ユ槸鏅氱殑錛堣秴閾炬帴錛夛紝Updater鏂瑰紡錛堣姹傚埌涓涓狣IV閲岋級錛孯equest鏂瑰紡錛岀幇鍦ㄩ兘鑳藉璺寵漿鍒版紜〉闈€?br />
ajax鍙傛暟閫氳繃hack搴撲唬鐮佹潵瀹炵幇錛屽浜庝嬌鐢ㄨ呮潵璇村熀鏈笂鏄忔槑鐨勩?br />

qiezi 2006-05-20 02:33 鍙戣〃璇勮
]]>
[RoR] 鍦≧oR涓皟鐢?Net webservicehttp://www.shnenglu.com/cpunion/archive/2006/05/14/7138.htmlqieziqieziSun, 14 May 2006 12:08:00 GMThttp://www.shnenglu.com/cpunion/archive/2006/05/14/7138.htmlhttp://www.shnenglu.com/cpunion/comments/7138.htmlhttp://www.shnenglu.com/cpunion/archive/2006/05/14/7138.html#Feedback0http://www.shnenglu.com/cpunion/comments/commentRss/7138.htmlhttp://www.shnenglu.com/cpunion/services/trackbacks/7138.html
using聽System;
using聽System.Web;
using聽System.Web.Services;
using聽System.Web.Services.Protocols;

[WebService(Namespace聽
="http://tempuri.org/")]
[WebServiceBinding(ConformsTo聽
=聽WsiProfiles.BasicProfile1_1)]
publicclass聽Service聽:聽System.Web.Services.WebService
{
聽聽聽聽[WebMethod]
聽聽聽聽
publicstring聽HelloWorld(string聽name)聽{
聽聽聽聽聽聽聽聽
return"Hello,聽"+聽name;
聽聽聽聽}
聽聽聽聽
}

鍦≧oR欏圭洰閲岋紝娣誨姞app/apis/test_api.rb錛?br />
class聽TestApi聽<聽ActionWebService::API::Base
聽聽api_method聽:HelloWorld,聽:expects聽
=>聽[{:name聽=>聽:string}],聽:returns聽=>聽[:string]
end

榪欐槸RoR閲岄潰閫氱敤鐨剋ebservice鍏冧俊鎭弿榪般?br />
娣誨姞app/controllers/test_controller.rb:

class聽TestController聽<聽ApplicationController
聽聽web_client_api聽:test,聽:soap,聽
"http://localhost/test/Service.asmx",聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽:namespace聽
=>"http://tempuri.org/",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽:soap_action_base聽
=>"http://tempuri.org",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽:driver_options
=>{:default_encodingstyle聽=>聽SOAP::EncodingStyle::ASPDotNetHandler::Namespace聽}

聽聽
def聽hello
聽聽聽聽render_text聽test.HelloWorld(
"Li聽Jie")
聽聽end
end

:soap_action_base閫夐」鏄竴涓慨琛ワ紝涓嶅姞榪欎釜閫夐」浼?xì)漶旂敓SOAPAction澶撮敊璇?br />
榪愯鏈嶅姟鍣紝鍦ㄦ祻瑙堝櫒涓闂?test/hello錛屽彂鐜板悕瀛椾負(fù)絀恒傜粡榪囬暱鏃墮棿璋冭瘯錛屽彂鐜?Net鍦ㄨВ鏋怱OAP娑堟伅浣撴椂錛屼笉鑳藉鐞嗚繖縐嶅懡鍚嶇┖闂達細(xì)

聽聽聽聽<n1:HelloWorld聽xmlns:n1="http://tempuri.org/"
聽聽聽聽聽聽聽聽soap:encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/">
聽聽聽聽聽聽
<namexsi:type="xsd:string">Li Jie</name>
聽聽聽聽
</n1:HelloWorld>

鎶妌1鍘繪帀灝辮浜嗐備笉榪囪繖閮ㄥ垎瀹炵幇鍦╮ubylib/soap/rpc/proxy.rb閲岄潰錛屽疄鍦ㄤ笉鏂逛究淇敼銆備負(fù)浜嗚榪欎釜嫻嬭瘯閫氳繃錛屾殏鏃跺仛浜嗙偣灝忎慨鏀癸細(xì)

聽聽def聽route(req_header,聽req_body,聽reqopt,聽resopt)
聽聽聽聽req_env聽
=聽::SOAP::SOAPEnvelope.new(req_header,聽req_body)
聽聽聽聽unless聽reqopt[:envelopenamespace].nil?
聽聽聽聽聽聽set_envelopenamespace(req_env,聽reqopt[:envelopenamespace])
聽聽聽聽end
聽聽聽聽reqopt[:external_content]聽
=聽nil
聽聽聽聽conn_data聽
=聽marshal(req_env,聽reqopt)
聽聽聽聽
if聽ext聽=聽reqopt[:external_content]
聽聽聽聽聽聽mime聽
=聽MIMEMessage.new
聽聽聽聽聽聽ext.each聽do聽
|k,聽v|
聽聽聽聽聽聽聽聽聽聽mime.add_attachment(v.data)
聽聽聽聽聽聽end
聽聽聽聽聽聽mime.add_part(conn_data.send_string聽
+"\r\n")
聽聽聽聽聽聽mime.close
聽聽聽聽聽聽conn_data.send_string聽
=聽mime.content_str
聽聽聽聽聽聽conn_data.send_contenttype聽
=聽mime.headers['content-type'].str
聽聽聽聽end

聽聽聽聽conn_data.send_string.gsub!(
/:n1/,聽'')
聽聽聽聽conn_data.send_string.gsub!(
/n1:/,聽''
)

聽聽聽聽conn_data聽
=聽@streamhandler.send(@endpoint_url,聽conn_data,
聽聽聽聽聽聽reqopt[:soapaction])
聽聽聽聽
if聽conn_data.receive_string.empty?
聽聽聽聽聽聽
return聽nil
聽聽聽聽end
聽聽聽聽unmarshal(conn_data,聽resopt)
聽聽end

鍔犵矖鐨?琛屾槸鎴戞坊鍔犵殑浠g爜錛屽媺寮哄彲浠ヨ瀹冨伐浣滐紝涓嶈繃鏄劇劧涓嶆槸姝g‘鐨勬柟娉曘?br />
涓嶇煡閬撴槸涓嶆槸.Net搴撻噷闈㈢殑BUG銆?img src ="http://www.shnenglu.com/cpunion/aggbug/7138.html" width = "1" height = "1" />

qiezi 2006-05-14 20:08 鍙戣〃璇勮
]]>
[RoR] 鑴氭湰妯℃嫙RJS鍒鋒柊欏甸潰http://www.shnenglu.com/cpunion/archive/2006/05/13/7087.htmlqieziqieziSat, 13 May 2006 15:49:00 GMThttp://www.shnenglu.com/cpunion/archive/2006/05/13/7087.htmlhttp://www.shnenglu.com/cpunion/comments/7087.htmlhttp://www.shnenglu.com/cpunion/archive/2006/05/13/7087.html#Feedback0http://www.shnenglu.com/cpunion/comments/commentRss/7087.htmlhttp://www.shnenglu.com/cpunion/services/trackbacks/7087.html
婕旂ず欏甸潰鐩存帴鍦ㄦ祻瑙堝櫒涓鐪嬨?br />
婕旂ず涓嬭澆

qiezi 2006-05-13 23:49 鍙戣〃璇勮
]]>
[RoR] 鐢╦avascript鑴氭湰妯℃嫙涓涓猘ctionhttp://www.shnenglu.com/cpunion/archive/2006/05/12/7046.htmlqieziqieziFri, 12 May 2006 15:41:00 GMThttp://www.shnenglu.com/cpunion/archive/2006/05/12/7046.htmlhttp://www.shnenglu.com/cpunion/comments/7046.htmlhttp://www.shnenglu.com/cpunion/archive/2006/05/12/7046.html#Feedback0http://www.shnenglu.com/cpunion/comments/commentRss/7046.htmlhttp://www.shnenglu.com/cpunion/services/trackbacks/7046.html
鏈変簺鏃跺欐垜浠茍涓嶉渶瑕佽姹傛湇鍔″櫒錛屽彧鎯沖湪嫻忚鍣ㄤ笂鎵ц鏌愪簺鑴氭湰鏇存柊錛屼絾鍙堟兂浣跨敤RJS銆傛墍浠ヤ負(fù)RoR澧炲姞浜嗚繖欏瑰姛鑳姐?br />
浣跨敤鏂規(guī)硶錛?br />
<script聽language="javascript">
<%=
render聽:update聽do聽
|page|
聽聽page.define_action聽
'test_action'聽do
聽聽聽聽page.call_script聽
<<-EOS
聽聽聽聽聽聽alert(params.comment.title);
聽聽聽聽聽聽alert(params.comment.body);
聽聽聽聽EOS
聽聽聽聽page.replace_html聽
'errors',聽'ERROR'
聽聽end

聽聽page.define_action聽
'link_action'聽do
聽聽聽聽page.replace_html聽
'errors',聽'ERROR'
聽聽end
end
%>
</script>

<div聽id="errors"></div>

<%=聽form_local_tag聽:html聽=>聽{:action聽=>'test_action'}聽%>
聽聽
<input聽name="comment[title]"/><br聽/>
聽聽
<input聽name="comment[body]"/><br聽/>
聽聽
<%=聽submit_tag聽'Create'%>
<%=聽end_form_tag聽%>

<%=聽link_to_local聽'Test',聽:action聽=>'link_action()'%>

涓婇潰婕旂ず浜唂orm_local_tag鍜宭ink_to_local鐨勪嬌鐢紝鎵撳紑榪欎釜欏甸潰浠ュ悗錛屽彲浠ュ叧鎺夋湇鍔″櫒嫻嬭瘯錛屼細(xì)鍙戠幇瀹冧笉璇鋒眰鏈嶅姟鍣ㄤ篃鑳芥墽琛岀浉搴旇剼鏈?br />
define_action瀹氫箟涓涓剼鏈嚱鏁幫紝call_script鐢ㄦ潵瀹炵幇javascript鍜孯JS浠g爜鐨勬販鍚堛傚綋浣跨敤form_local_tag鏃訛紝action鏂規(guī)硶鐨勫弬鏁板凡緇忚澶勭悊榪囷紝鎵浠ュ彲浠ョ洿鎺ュ湪action涓嬌鐢╬arams.comment.title銆?br />
褰撶劧鐜板湪榪樹笉瀹屽杽錛屾瘮濡傝繕鍙兘浣跨敤杞崲瀹岀殑欏甸潰妯℃澘錛屼竴浜涘姩鎬侀〉闈㈠皢鐪嬩笉鍑烘晥鏋溿傝鍋氬埌榪欑偣錛岄渶瑕佺敤javascript瀹炵幇涓鏁村鐨凙ctionView杈呭姪鏂規(guī)硶銆?br />
涓嬮潰鎻愪緵涓涓拡瀵箁ails 1.1.2鐨勪竴涓ˉ涓佹枃浠訛細(xì)

琛ヤ竵鏂囦歡涓嬭澆

qiezi 2006-05-12 23:41 鍙戣〃璇勮
]]>
[RoR] 綆鍗曠殑瑙掕壊鏉冮檺媯鏌ユ彃浠?/title><link>http://www.shnenglu.com/cpunion/archive/2006/05/08/6790.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Mon, 08 May 2006 13:30:00 GMT</pubDate><guid>http://www.shnenglu.com/cpunion/archive/2006/05/08/6790.html</guid><wfw:comment>http://www.shnenglu.com/cpunion/comments/6790.html</wfw:comment><comments>http://www.shnenglu.com/cpunion/archive/2006/05/08/6790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/cpunion/comments/commentRss/6790.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/cpunion/services/trackbacks/6790.html</trackback:ping><description><![CDATA[浠g爜姣旇緝綆鍗曪細(xì)<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">module聽ActionController聽</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">:nodoc:</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000"><br />聽聽class聽CheckGroupError聽</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">聽ActionControllerError聽</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">:nodoc:</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">聽聽聽聽attr_reader聽</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">group_name<br />聽聽聽聽def聽initialize(group_name)<br />聽聽聽聽聽聽</span><span style="COLOR: #800080">@group_name</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽group_name<br />聽聽聽聽end<br />聽聽end<br />聽聽<br />聽聽class聽CheckRoleError聽</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">聽ActionControllerError聽</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">:nodoc:</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">聽聽聽聽attr_reader聽</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">role_name<br />聽聽聽聽def聽initialize(role_name)<br />聽聽聽聽聽聽</span><span style="COLOR: #800080">@role_name</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽role_name<br />聽聽聽聽end<br />聽聽end<br />聽聽<br />聽聽class聽Base聽</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">:nodoc:</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">聽聽聽聽def聽roles<br />聽聽聽聽聽聽[]<br />聽聽聽聽end<br />聽聽聽聽<br />聽聽聽聽def聽groups<br />聽聽聽聽聽聽[]<br />聽聽聽聽end<br />聽聽聽聽<br />聽聽聽聽def聽check_roles(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">role_args)<br />聽聽聽聽聽聽role_args</span><span style="COLOR: #000000">.</span><span style="COLOR: #0000ff">each</span><span style="COLOR: #000000">聽</span><span style="COLOR: #0000ff">do</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">role</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"><br />聽聽聽聽聽聽聽聽check_role(role)<br />聽聽聽聽聽聽end<br />聽聽聽聽end<br />聽聽聽聽<br />聽聽聽聽def聽check_groups(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">group_args)<br />聽聽聽聽聽聽group_args</span><span style="COLOR: #000000">.</span><span style="COLOR: #0000ff">each</span><span style="COLOR: #000000">聽</span><span style="COLOR: #0000ff">do</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">group</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"><br />聽聽聽聽聽聽聽聽check_group(group)<br />聽聽聽聽聽聽end<br />聽聽聽聽end<br />聽聽聽聽<br />聽聽聽聽def聽check_group(group)<br />聽聽聽聽聽聽raise聽CheckGroupError</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">new(group</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">to_s)聽</span><span style="COLOR: #0000ff">unless</span><span style="COLOR: #000000">聽groups()</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">include</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">(group</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">to_s)<br />聽聽聽聽end<br />聽聽聽聽<br />聽聽聽聽def聽check_role(role)<br />聽聽聽聽聽聽raise聽CheckRoleError</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">new(role</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">to_s)聽聽聽</span><span style="COLOR: #0000ff">unless</span><span style="COLOR: #000000">聽roles()</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">include</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">(role</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">to_s)聽聽聽聽聽聽<br />聽聽聽聽end<br />聽聽end<br />聽聽<br />end</span></div><br />鍙渶瑕佸湪ApplicationController涓疄鐜皉oles鍜実roups榪?涓柟娉曪紝瀵規(guī)暟鎹簱妯″紡娌℃湁浠諱綍闄愬埗錛屽彧瑕佽兘淇濊瘉榪?涓柟娉曡兘澶熷緱鍒板綋鍓嶇敤鎴風(fēng)殑瑙掕壊鍜岀粍鍗沖彲銆?br /><br />鏈?涓猚heck鏂規(guī)硶鍙敤錛屽彲浠繪剰浣跨敤涓涓垨澶氫釜銆?br /><br />綆鍗曟ā鎷熸祴璇曚竴涓嬶細(xì)<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">class聽ApplicationController聽</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">聽ActionController</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">Base<br />聽聽def聽roles<br />聽聽聽聽</span><span style="COLOR: #800080">%w</span><span style="COLOR: #000000">(add聽show)<br />聽聽end<br /><br />聽聽def聽groups<br />聽聽聽聽</span><span style="COLOR: #800080">%w</span><span style="COLOR: #000000">(users)<br />聽聽end<br />end</span></div><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">class聽TestController聽</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">聽ApplicationController<br />聽聽def聽test1<br />聽聽聽聽check_role聽</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">add<br />聽聽聽聽render_text聽</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">OK</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br />聽聽end<br /><br />聽聽def聽test2<br />聽聽聽聽check_role聽</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">add<br />聽聽聽聽check_group聽</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">users<br />聽聽聽聽render_text聽</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">OK</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br />聽聽end<br /><br />聽聽def聽test3<br />聽聽聽聽check_groups聽</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">admin</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">users<br />聽聽聽聽render_text聽</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">OK</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br />聽聽end<br /><br />聽聽def聽test4<br />聽聽聽聽check_roles聽</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">add</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">remove<br />聽聽聽聽render_text聽</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">OK</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000"><br />聽聽end<br />end</span></div><br />鍏朵腑錛宼est1銆乼est2閮戒細(xì)鎴愬姛錛岃宼est3鍜宼est4鍒欎細(xì)澶辮觸鏄劇ず寮傚父錛屽彧闇瑕佸鐞唕escue_action鎶婂畠淇敼涓鴻嚜宸辯殑鏄劇ず欏甸潰鍗沖彲銆?img src ="http://www.shnenglu.com/cpunion/aggbug/6790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2006-05-08 21:30 <a href="http://www.shnenglu.com/cpunion/archive/2006/05/08/6790.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C錛嬶紜瀹炵幇綆鍗曠殑綾誨瀷搴?/title><link>http://www.shnenglu.com/cpunion/archive/2005/09/26/435.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Mon, 26 Sep 2005 09:31:00 GMT</pubDate><guid>http://www.shnenglu.com/cpunion/archive/2005/09/26/435.html</guid><wfw:comment>http://www.shnenglu.com/cpunion/comments/435.html</wfw:comment><comments>http://www.shnenglu.com/cpunion/archive/2005/09/26/435.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.shnenglu.com/cpunion/comments/commentRss/435.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/cpunion/services/trackbacks/435.html</trackback:ping><description><![CDATA[寰堜箙浠ュ墠鐪嬪埌鏈変漢闂滃浣曞湪C錛嬶紜涓疄鐜板姩鎬佸姞杞界被鈥濇椂錛岀畝鍗曞湴鍋氫簡涓涓?BR><BR>涓嶈繃褰撴椂娌℃湁鍘昏冭檻鍔ㄦ佸姞杞紻LL鐨勬儏鍐點?BR><BR>浠婂ぉ鍦?A href="mailto:cpp@codingnow.com">cpp@codingnow.com</A>涓篃鏈変漢闂埌榪欎釜闂錛屽氨鎶婂畠緇欏仛瀹屼簡銆?BR><BR>褰撶劧鍙槸綆鍗曞湴鍋氬埌浜嗏滀粠鍏ㄥ眬綾誨瀷搴撲腑錛屾牴鎹被鍚嶅垱寤哄疄渚嬶紝鏀寔鍔ㄦ丏LL鍔犺澆鈥濓紝璇村緱鏇存槑鐧界偣錛?BR><BR>鍦ㄥ簲鐢ㄧ▼搴廇pp1涓紝鍚戝叏灞綾誨瀷搴撲腑娉ㄥ唽涓涓被鍨?Test"錛屽湪鍙︿竴涓殣寮忛摼鎺ョ殑DLL涓紙鍗矨pp1涓鍚姩灝卞姞杞界殑DLL錛夛紝鍚戝叏灞綾誨瀷搴撲腑娉ㄥ唽鍙﹀鍑犱釜綾誨瀷銆傝繖鏃跺彲浠ュ湪App1涓氳繃綾誨瀷鐨勫悕瀛楃敓鎴愬疄渚嬨?BR><BR>鍦ㄥ彟涓涓樉寮忓姞杞界殑DLL涓紙鍗寵皟鐢↙oadLibrary鍔犺澆錛夛紝鍚戝叏灞綾誨瀷搴撲腑娉ㄥ唽鍏跺畠鍑犱釜綾誨瀷銆傝繖鏃墮氳繃LoadLibrary鍔犺澆榪欎釜DLL錛屽氨鍙互鐢熸垚榪欏嚑涓被鍨嬬殑瀹炰緥浜嗐?BR><BR>榪欏湴鏂逛笉鑳戒笂浼犳枃浠訛紝灝辨妸浠g爜璐翠竴鐐瑰惂錛?BR><BR>typelib.h鏂囦歡錛?BR><BR> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">#ifndef __TYPE_LIB_H__<BR></SPAN><SPAN style="COLOR: #0000ff">#define</SPAN><SPAN style="COLOR: #000000"> __TYPE_LIB_H__</SPAN><SPAN style="COLOR: #000000"><BR><BR>typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">CREATE_FUNC)();<BR>typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">RELEASE_FUNC)(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">);<BR><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> regtype (</SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> name, CREATE_FUNC cfunc, RELEASE_FUNC rfunc);<BR><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> createObject (</SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> name);<BR><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> releaseObject (</SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> name, </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> p);<BR><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> ITestInterface<BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">virtual</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">~</SPAN><SPAN style="COLOR: #000000">ITestInterface () {}<BR>    </SPAN><SPAN style="COLOR: #0000ff">virtual</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> print () </SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> create ()<BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> T;<BR>}<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> release (</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> p)<BR>{<BR>    delete (T</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">)p;<BR>}<BR><BR></SPAN><SPAN style="COLOR: #0000ff">#endif</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> __TYPE_LIB_H__</SPAN></DIV><BR>typelib.cpp鏂囦歡錛?BR><BR> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">#include </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">typelib.h</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><BR>#include </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>#include </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">map</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">using</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">namespace</SPAN><SPAN style="COLOR: #000000"> std;<BR><BR></SPAN><SPAN style="COLOR: #0000ff">namespace</SPAN><SPAN style="COLOR: #000000"> TypeRegistry<BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000"> map </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, pair</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">CREATE_FUNC, RELEASE_FUNC</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">  types_info;<BR><BR>    template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> regType (</SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000"> name)<BR>    {<BR>        types_info.insert (make_pair(name, make_pair(create</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, release</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)));<BR>    }<BR>}<BR><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> regtype (</SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> name, CREATE_FUNC cfunc, RELEASE_FUNC rfunc)<BR>{<BR>    TypeRegistry::types_info.insert (make_pair(name, make_pair(cfunc, rfunc)));<BR>}<BR><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> createObject (</SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> name)<BR>{<BR>    map </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, pair</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">CREATE_FUNC, RELEASE_FUNC</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::const_iterator iter;<BR>    iter </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> TypeRegistry::types_info.find (name);<BR>    </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (iter </SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000"> TypeRegistry::types_info.end ())<BR>        </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> (</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">iter</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">second.first)();<BR>    </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> NULL;<BR>}<BR><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> releaseObject (</SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> name, </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> p)<BR>{<BR>    map </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, pair</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">CREATE_FUNC, RELEASE_FUNC</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::const_iterator iter;<BR>    iter </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> TypeRegistry::types_info.find (name);<BR>    </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (iter </SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000"> TypeRegistry::types_info.end ())<BR>        (</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">iter</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">second.second)(p);<BR>}</SPAN></DIV><BR>鎶婂畠緙栬瘧鎴愰潤鎬乴ib鎴朌LL錛屽氨鍙互浣跨敤浜嗐?BR><BR>鍦ㄩ偅2涓負(fù)鎴戜滑鎻愪緵綾誨瀷鐨凞LL涓紝DllMain鍑芥暟涓姞鍏ヤ笅闈㈢殑浠g爜錛?BR><BR> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> FirstTest鍜孲econdTest鏄?涓被鍚?/SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">regtype(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">FirstTest</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, create</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">FirstTest</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, release</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">FirstTest</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">);<BR>regtype(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">FirstTest</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, create</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">SecondTest</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, release</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">SecondTest</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">);</SPAN></DIV><BR>灝卞彲浠ュ悜鍏ㄥ眬綾誨瀷搴撲腑娉ㄥ唽綾誨瀷銆傛敞鎰忓湪綾誨瀷搴撲腑鏄病鏈変繚瀛樼被淇℃伅鐨勶紝鎵浠ユ渶濂芥槸浣跨敤鍗曟牴綾誨簱鏉ュ仛銆?BR><BR>涓嬮潰鏄竴鐐規(guī)祴璇曚唬鐮侊細(xì)<BR><BR> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> main()<BR>{<BR>       </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> 紼嬪簭鍚姩鏃舵敞鍐岀被鍨嬨?BR>       </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> 瀹為檯涓婂惎鍔ㄦ椂灝卞姞杞戒簡鍙︿竴涓姩鎬侀摼鎺ュ簱錛岄偅閲岄潰鏈?涓被鍨嬶紝鎵浠ョ幇鍦ㄦ湁4涓被鍨?/SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">       regtype (</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">MyTest</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, create</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">MyTest</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, release</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">MyTest</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">);<BR>       </SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000"> (</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)<BR>       {<BR>               </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000"> class_name;<BR>               cin </SPAN><SPAN style="COLOR: #000000">>></SPAN><SPAN style="COLOR: #000000"> class_name;<BR>               </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (class_name </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">q</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR>                       </SPAN><SPAN style="COLOR: #0000ff">break</SPAN><SPAN style="COLOR: #000000">;<BR>               </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> 褰撹緭鍏oad鏃訛紝鎶婂彟涓涓姩鎬侀摼鎺ュ簱鍔犺澆榪涙潵錛岄偅涓摼鎺ュ簱涓湁2涓被鍨嬶紝鐜板湪鍏辨湁6涓被鍨嬪彲鐢ㄣ?/SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">               </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (class_name </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">load</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR>               {<BR>                       LoadLibrary(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">typelibdll_test.dll</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>                       </SPAN><SPAN style="COLOR: #0000ff">continue</SPAN><SPAN style="COLOR: #000000">;<BR>               }<BR>               ITestInterface</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> test </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> (ITestInterface</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">)createObject (class_name.c_str());<BR>               </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000">test)<BR>               {<BR>                       cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">This type not found</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl;<BR>                       </SPAN><SPAN style="COLOR: #0000ff">continue</SPAN><SPAN style="COLOR: #000000">;<BR>               }<BR>               test</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">print ();<BR>               releaseObject (class_name.c_str(), test);<BR>       }<BR>       </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}<BR></SPAN></DIV><BR>榪樻湁涓涓病鑰冭檻鐨勫湴鏂癸紝灝辨槸娌℃湁緇欏畠鍔犻攣錛屽洜涓烘湁鍙兘鍦ㄤ竴涓嚎紼嬩腑鍔犺澆涓涓狣LL銆?BR><BR>涓嶈繃鎴戣繕鏈変簺鎬鐤戣繖涓滆タ鏄惁鐪熺殑鏈夌敤錛?img src ="http://www.shnenglu.com/cpunion/aggbug/435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-26 17:31 <a href="http://www.shnenglu.com/cpunion/archive/2005/09/26/435.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓篊錛嬶紜瀹炵幇涓涓狪DL銆錛堜簩錛?/title><link>http://www.shnenglu.com/cpunion/archive/2005/09/20/349.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Tue, 20 Sep 2005 14:34:00 GMT</pubDate><guid>http://www.shnenglu.com/cpunion/archive/2005/09/20/349.html</guid><wfw:comment>http://www.shnenglu.com/cpunion/comments/349.html</wfw:comment><comments>http://www.shnenglu.com/cpunion/archive/2005/09/20/349.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.shnenglu.com/cpunion/comments/commentRss/349.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/cpunion/services/trackbacks/349.html</trackback:ping><description><![CDATA[<P>璇存槑錛?BR>瑕佺湅鎳傚悗闈㈤偅閮ㄥ垎浠g爜錛屽嵆浣跨敤Typelist鐨勯儴鍒嗭紝鏈濂介鍏堢湅榪囥奀錛嬶紜璁捐鏂版濈淮銆嬶紝鑻辨枃鐗堝悕涓恒奙odern C++ Design銆嬨?BR>If妯℃澘綾誨湪鍐欏畬鍚庢兂璧鋒潵濂藉儚鍦ㄥ摢瑙佽繃錛屾棭鏅ㄥ幓鍏徃鏌ラ槄浜嗕竴涓嬶紝鍦ㄣ婁駭鐢熷紡緙栫▼鈥斺旀柟娉曘佸伐鍏蜂笌搴旂敤銆嬩竴涔︿腑鏈夎錛岃嫳鏂囧悕涓恒奊enerative Programming -- Methods, Tools, and Applications銆嬪熀鏈拰鏈瘒涓竴涓牱銆?BR><BR><BR>鍓?綃囦貢涓冨叓緋熷湴璁蹭簡涓浜涳紝鏈変竴涓仐鐣欓棶棰橈紝鍑芥暟鍘熷瀷鐨勬帹瀵箋?BR><BR>綆瑕佹弿榪板涓嬶細(xì)</P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">) </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> method;<BR><BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> 鍚屾璋冪敤</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000"> str </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">hello</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000"> value </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">;<BR>method (</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">a</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">, str, value</SPAN><SPAN style="COLOR: #000000">);<BR><BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> 寮傛璋冪敤1</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">method.async_call (</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">a</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">hello</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> 寮傛璋冪敤2</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> test_func (</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">);<BR>method.async_call (</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">a</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">hello</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, test_func);</SPAN></DIV> <P><BR>瑕佷駭鐢熻繖3縐嶅嚱鏁板艦寮忋傚弬鏁扮被鍨嬪浣曡漿鎹紝鏄互鍚庣殑璇濋錛屾湰綃囦富瑕佽В鍐沖紓姝ヨ皟鐢ㄧ殑鍑芥暟鍘熷艦鎺ㄥ闂銆傛湰綃囦篃涓嶈璁篗ethod鐨勬ā鏉垮弬鏁幫紙鍗抽偅涓嚱鏁扮被鍨嬶級榪斿洖綾誨瀷涓嶄負(fù)void鐨勬儏鍐點?BR><BR>絎竴縐嶅艦寮忥紝鍚屾璋冪敤錛屾瘮杈冨ソ澶勭悊錛屽弬鏁頒釜鏁板拰妯℃澘鍙傛暟鐨勬暟閲忕浉鍚屻?BR><BR>鍚?縐嶅艦寮忥紝濡備綍璁╃紪璇戝櫒鏍規(guī)嵁in/out鏉ユ帹瀵煎嚭鍑芥暟鍘熷瀷錛?BR><BR>鎴戜滑闇瑕佺紪璇戝櫒鍋氳繖鏍風(fēng)殑澶勭悊錛宎sync_call鐨勫弬鏁扮被鍨嬩腑錛宨n綾誨瀷鐨勫弬鏁板皢淇濈暀錛宱ut綾誨瀷鐨勫弬鏁頒笉闇瑕侊紝inout綾誨瀷涔熼渶瑕佷繚鐣欍?BR><BR>瑕佺敤鍒扮殑Loki澶存枃浠訛細(xì)</P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">#include </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">static_check.h</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>#include </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Typelist.h</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR><BR></SPAN><SPAN style="COLOR: #0000ff">using</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">namespace</SPAN><SPAN style="COLOR: #000000"> Loki;<BR></SPAN><SPAN style="COLOR: #0000ff">using</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">namespace</SPAN><SPAN style="COLOR: #000000"> Loki::TL;</SPAN></DIV> <P><BR>棣栧厛鐪嬬湅in/inout/out鐨勫0鏄庛備負(fù)浜嗙畝鍖栵紝榪欓噷鍘繪帀浜嗚窡綾誨瀷鎺ㄥ鏃犲叧鐨勯儴鍒嗐?/P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> NullType<BR>{<BR>    NullType ();<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef T OriginalType;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef T OriginalType;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> inout<BR>{<BR>    typedef T OriginalType;<BR>};<BR></SPAN></DIV><BR>涓嬮潰Method妯℃澘綾葷殑澹版槑錛屼嬌鐢ㄥ亸鐗瑰寲鏉ヤ駭鐢熶唬鐮併備負(fù)浜嗙畝鍖栵紝鎴戝彧鍙栧嚱鏁板弬鏁頒釜鏁頒負(fù)4涓弬鏁扮殑鐗堟湰錛屾瘮鐓х潃涓婇潰鐨勪唬鐮佹潵瑙i噴錛屽彧瑙i噴method.async_call (3, 'a', "hello", test_func);榪欎釜鐗堟湰錛屽洜涓哄彟涓涓瘮瀹冪畝鍗曘?BR><BR> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Method<BR>{<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> Ret, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> B, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> C, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> D</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Ret(A,B,C,D)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> <BR>{<BR>};</SPAN></DIV> <P><BR>鏍規(guī)嵁涓婇潰Method鐨勫畾涔夛紝Method < void(in<INT>, in<CHAR>, inout<STRING>, out<SHORT>) > 錛宎sync_call鍑芥暟鐨勭被鍨嬪皢鏄細(xì)<SPAN style="COLOR: #000000"></P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> (</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, FUNC_TYPE func);</SPAN></DIV></SPAN><BR>瀹為檯涓奆UNC_TYPE搴旇鑳藉鎺ュ彈鏇村箍娉涚殑綾誨瀷錛屾瘮濡倂oid(int, char, char*, short)錛岃繖鍙互鍦ㄥ唴閮ㄥ仛涓浜涜漿鎹紝涓嶈繃鏈瘒鐨勯噸鐐逛笉鍦ㄨ繖閲岋紝鎵浠ュ彧璁蹭笂闈㈢殑閭g褰㈠紡銆?BR><BR>鐩存帴鍦∕ethod綾諱腑瀹炵幇鏈変簺楹葷儲錛屾墍浠ユ垜鎶婅繖涓嚱鏁版斁鍦ㄤ竴涓熀綾諱腑瀹炵幇錛屽彧瑕佺紪璇戝櫒鑳藉府鎴戜滑鎺ㄥ鍑轟笅闈㈣繖縐嶅艦寮忓氨琛屼簡錛?BR><BR> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> Ret, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> B, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> C, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> D</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Ret(A,B,C,D)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> : </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> A, B, C </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>};</SPAN></DIV> <P><BR>娉ㄦ剰錛岃繖閲屾槸浠ethod < void(in<INT>, in<CHAR>, inout<STRING>, out<SHORT>) >榪欑褰㈠紡鏉ヨ鐨勶紝鎵嶄細(xì)鏈変笂闈㈤偅縐嶇戶鎵垮叧緋匯傝屽疄闄呬笂錛岀敱浜巌n/out鍦ㄥ弬鏁頒腑鐨勪綅緗佹暟閲忛兘鏄湭鐭ョ殑錛岃鍒板畾涔夋椂鎵嶈兘紜畾錛屾墍浠ヤ嬌鐢ㄦā鏉挎潵鎺ㄥ銆傦紙鍏ユ棰樹簡錛?/P> <P>涔熷氨鏄錛屽彧瑕佹垜浠兘浣跨敤闈欐佹帹瀵兼柟寮忥紝鑾峰緱A,B,C,D榪欏洓涓弬鏁頒腑鎵鏈夌殑in綾誨瀷錛屾妸瀹冧氦緇橞ase浣滀負(fù)妯℃澘鍙傛暟灝辨垚浜嗐?/P> <P>榪欓噷闇瑕佷竴涓緟鍔╃殑妯℃澘綾伙紝鐢ㄦ潵鍦ㄧ紪璇戞椂甯姪鎺ㄥ錛?BR><BR></P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits<BR>{<BR>    Loki::CompileTimeError </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> Not_Supported_Type;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {isin</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">, isout</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">};<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {isin</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">, isout</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">};<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {isin</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">, isout</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">};<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> NullType </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {isin</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">, isout</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">};<BR>};</SPAN></DIV></SPAN><BR>閫氳繃鍙︿竴涓ā鏉跨被InList鏉ュ府鎴戜滑浜х敓鎵鏈夌殑in綾誨瀷錛屽畠鐨勭粨鏋滄槸涓涓猅ypelist銆備負(fù)浜嗘柟渚夸互鍚庝嬌鐢紝鎴戞妸out綾誨瀷浜х敓鍣ㄤ篃鍋氫簡涓涓狾utList銆?BR><BR> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> CONDITION, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> _IF, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> _ELSE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> If<BR>{<BR>    typedef _IF Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> _IF, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> _ELSE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">, _IF, _ELSE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef _ELSE Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> B </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> C </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> D </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, <BR>    </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> E </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> F </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> G </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> H </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType<BR></SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InList<BR>{<BR>    typedef typename If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> <BR>        InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::isin,<BR>        typename Typelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> A, typename InList</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">B,C,D,E,F,G</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, <BR>        typename InList</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">B,C,D,E,F,G,H</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result <BR>    </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A, NullType, NullType, NullType, NullType, NullType, NullType, NullType</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef typename If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"><BR>        InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::isin,<BR>        typename MakeTypelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result,<BR>        typename MakeTypelist </SPAN><SPAN style="COLOR: #000000"><></SPAN><SPAN style="COLOR: #000000">::Result<BR>    </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> B </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> C </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> D </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, <BR>    </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> E </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> F </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> G </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> H </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType<BR></SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> OutList<BR>{<BR>    typedef typename If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> <BR>        InOutTypeTraits</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::isout,<BR>        typename Typelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> A, typename OutList</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">B,C,D,E,F,G</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, <BR>        typename OutList</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">B,C,D,E,F,G,H</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result <BR>    </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> OutList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A, NullType, NullType, NullType, NullType, NullType, NullType, NullType</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef typename MakeTypelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};</SPAN></DIV><BR>瀹冪殑鍘熺悊鏄紝鏍規(guī)嵁If妯℃澘綾繪潵鍒ゆ柇涓涓被鍨嬫槸涓嶆槸in綾誨瀷錛屾槸鐨勮瘽灝辨妸瀹冨姞鍏ュ埌Typelist涓紝涓嶆槸灝辨帓闄ゅ畠銆?BR><BR>InList <IN<INT>, in<CHAR>, inout<STRING>, out<SHORT>::Result鏄竴涓猅ypelist <IN<INT>, Typelist<IN<CHAR>, Typelist<INOUT<STRING>, NullType> > >綾誨瀷錛岃綆鍗曠偣錛屽畠鍜孧akeTypelist < in<INT>, in<CHAR>, inout<STIRNG> >::Result鏄瓑浠風(fēng)殑銆?BR><BR>鐜板湪Base妯℃澘綾誨皢鎺ュ彈涓涓ā鏉垮弬鏁幫紝瀹冩槸涓涓猅ypelist綾誨瀷錛岃繖涓笉璇︾粏璁蹭簡錛屾妸瀹冪殑瀹氫箟鍐欏嚭鏉ワ細(xì)<BR><BR> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T, </SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> T_COUNT </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> Length </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::value </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base<BR>{<BR>    Loki::CompileTimeError </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> Only_Use_Partial_Specialisation_Version;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)();<BR><BR>    template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> FUNC_TYPE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call ()<BR>    {<BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType);<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0,<BR>        FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0)<BR>    {<BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType);<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1, <BR>        FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1)<BR>    {<BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType);<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v2, <BR>        FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v2)<BR>    {<BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType);<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v2, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v3,<BR>        FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v2,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v3)<BR>    {<BR>    }<BR>};</SPAN></DIV><BR>榪欓儴鍒嗘湁鐐瑰錛屽叾瀹炶繕鏄瘮杈冩竻鏅扮殑銆傛敞鎰忚繖涓狟ase鐨勭増鏈凡緇忎笉鏄笂闈㈡墍璁茬殑閭d釜浜嗐?BR><BR>鍑芥暟鍘熷艦鎺ㄥ闂灝辮瀹屼簡銆備笂闈㈢殑浠g爜涓嶄竴瀹氳繕鑳界紪璇戯紝鏄ㄥぉ鏄兘緙栬瘧鐨勶紝琚垜淇敼浜嗕竴浜涳紝涓轟簡瑙i噴錛屽張鏀規(guī)垚鏄ㄥぉ閭f牱瀛愩?img src ="http://www.shnenglu.com/cpunion/aggbug/349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-20 22:34 <a href="http://www.shnenglu.com/cpunion/archive/2005/09/20/349.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>姝e紡寤虹珛asgard欏圭洰 (鍥燼ncients宸茬粡琚漢浣跨敤浜嗭級http://www.shnenglu.com/cpunion/archive/2005/09/20/327.htmlqieziqieziTue, 20 Sep 2005 02:30:00 GMThttp://www.shnenglu.com/cpunion/archive/2005/09/20/327.htmlhttp://www.shnenglu.com/cpunion/comments/327.htmlhttp://www.shnenglu.com/cpunion/archive/2005/09/20/327.html#Feedback16http://www.shnenglu.com/cpunion/comments/commentRss/327.htmlhttp://www.shnenglu.com/cpunion/services/trackbacks/327.html
欏圭洰鍛藉悕涓篴ncients錛屽瓧闈㈡剰鎬濇槸鈥滆繙鍙ょ殑錛屾棫鐨勨濓紝瀹為檯涓婅繖涓富棰樹篃綆楁槸鏃х殑浜嗐傚師鏈墦綆楀懡鍚嶄負(fù)C++ Remoting錛屼笉榪囨兂浜嗕竴涓嬶紝榪樻槸鎹釜鍚嶅瓧錛屽厤寰楄浜轟竴鐪嬪氨鎯蟲嬁鍘昏窡java, c#鐨剅emoting姣旇緝銆?BR>
鍙栬繖涓悕瀛椾富瑕佹槸鍥犱負(fù)鍠滄鐪嬨婃槦闄呬箣闂ㄣ嬪墽闆嗭紝閲岄潰鏈鍠滄鐨勪竴涓鏃忓氨鏄痑ncients銆?BR>
asgard鏄彟涓涓鏃忥紝鍦╝ncients榪欎釜鍚嶅瓧琚漢鍗犵敤浜嗙殑鎯呭喌涓嬶紝鍙ソ閫夊畠浜嗐傚畠鐨勫瓧闈㈡剰鎬濇槸鈥滀粰瀹濓紝涔熸槸涓嶉敊鐨勫悕瀛楋紝鍛靛懙銆俛sgard榪欎釜縐嶆棌鐨勭鎶闈炲父鍙戣揪錛屾湁鍏堣繘鐨勪簹絀洪棿鏃呰鎶鏈紝鍏堣繘鐨勫厜浼犻佹妧鏈紝韜綋涔熸瘮杈冪鍚堜竴浜涙姤閬撲腑澶栨槦浜虹殑鏍峰瓙銆?BR>
鏆傛椂榪樻病鎵懼埌鍚堥傜殑絀洪棿鏉ユ斁榪欎釜欏圭洰錛屽氨浠ュ帇緙╁寘鐨勫艦寮忓湪榪欎釜blog涓婂仛鍚с?BR>
鎵撶畻鍏堝疄鐜板姩鎬侀儴鍒嗭紝鎴戠粰瀹冨懡鍚嶄負(fù)reflection錛屾ā浠縥ava鐨勶紝褰撶劧涔熶笉浼?xì)鍋氬畠閭d箞瀹屾暣銆傝繖閮ㄥ垎蹇呴』鍏堝仛錛岃繖鏍鋒柟渚跨敤鏉ユ祴璇曢潤鎬佺粨鏋勩?BR>
鐒跺悗鏄潤鎬佺粨鏋勯儴鍒嗭紝鍓嶉潰宸茬粡鍐欎簡2綃囦貢涓冨叓緋熺殑鎻忚堪錛屽墿浣欓棶棰橈紙鍑芥暟鍘熷艦鎺ㄥ闂錛夊熀鏈凡緇忚В鍐充簡銆?BR>
鏁翠釜妗嗘灦鍦⊿ervice浠ヤ笅閮芥槸鐜鏃犲叧鐨勶紝榪欓噷鐨勭幆澧冩寚鐨勬槸鍗忚銆侀氳絳夌幆澧冦備篃灝辨槸璇達紝瀹氫箟涓涓猄ervice錛屽茍涓嶅湪涓寮濮嬪氨鎸囧畾瀹冩墍浣跨敤鐨勯氳鍗忚銆傚畾涔夊畬鎴愪互鍚庯紝鎶婂畠鎸囧畾緇欎竴涓崗璁紝灝卞彲浠ュ疄鐜板崗璁粦瀹氾紝鐢氳嚦鍦ㄨ繍琛屾椂鍒誨姩鎬佸垏鎹㈠埌鍙︿竴涓崗璁傚綋鐒惰繖鍙兘鏄笉鍚堢悊鐨勶紝涓嶈繃鎴戣涓哄鏋滄敮鎸佽繖縐嶅仛娉曪紝鏈韓灝辨槸鐏墊椿鎬х殑涓縐嶄綋鐜般?BR>


鍓嶉潰榪樻湁浜涘湴鏂癸紝鍜屽疄闄呮儏鍐墊湁浜涘樊鍒殑錛岄渶瑕佽ˉ鍏呭畬鍠勩傜畝瑕佹弿榪板涓嬶細(xì)

浣跨敤瀹忔潵瀹氫箟Service錛屽墠闈㈠彧瀹氫箟浜嗘柟娉曠殑鍘熷瀷銆佸悕縐般佹湇鍔$緇戝畾鐨勫嚱鏁幫紝鍏跺疄榪樺樊涓涓噸瑕佺殑涓滆タ錛屽氨鏄弬鏁扮殑鍚嶅瓧銆?BR>濡傛灉浣跨敤鑷繁鐨勫崗璁紝鎴栬呮槸欏哄簭瀛樺偍鐨勫崗璁紝姣斿BENCODE錛屾潵浣滀負(fù)榪滅▼璋冪敤鍗忚錛岄偅涔堝弬鏁扮殑鍚嶅瓧鏄笉閲嶈鐨勶紝鍙鎸夐『搴忔妸鍙傛暟搴忓垪鍖栥佸弽搴忓垪鍖栧氨鍙互浜嗐?BR>浣嗗湪浣跨敤SOAP浣滀負(fù)榪滅▼璋冪敤鍗忚鏃訛紝灝卞緱鑰冭檻涓哄弬鏁板姞涓婂悕瀛椾簡錛孲OAP鏄粠XML鍏冪礌涓紝鎸夊弬鏁板悕縐版潵鎻愬彇鍙傛暟鍊肩殑錛岃櫧鐒舵垜浠彲浠ヤ負(fù)鍙傛暟鐢熸垚涓涓悕瀛楋紝浣嗚繖涓悕瀛椾笉鑳芥弿榪板弬鏁版墍琛ㄨ揪鐨勬剰鎬濄?BR>鎵浠ラ渶瑕佽冭檻涓哄弬鏁板彇涓婂悕瀛椼?BR>
鏆傛椂灝辮ˉ鍏呰繖涓鐐癸紝鍏跺畠鏂歸潰鏈夌瓑榪涗竴姝ョ爺絀躲?img src ="http://www.shnenglu.com/cpunion/aggbug/327.html" width = "1" height = "1" />

qiezi 2005-09-20 10:30 鍙戣〃璇勮
]]>
涓篊錛嬶紜瀹炵幇涓涓狪DL銆錛堜竴錛?/title><link>http://www.shnenglu.com/cpunion/archive/2005/09/17/284.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Sat, 17 Sep 2005 11:40:00 GMT</pubDate><guid>http://www.shnenglu.com/cpunion/archive/2005/09/17/284.html</guid><wfw:comment>http://www.shnenglu.com/cpunion/comments/284.html</wfw:comment><comments>http://www.shnenglu.com/cpunion/archive/2005/09/17/284.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/cpunion/comments/commentRss/284.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/cpunion/services/trackbacks/284.html</trackback:ping><description><![CDATA[<P>鍓嶉潰綆鍗曞啓浜嗙偣闈欐佺粨鏋勶紝榪欎竴嬈″皢涓昏鍏蟲敞鍔ㄦ佹ā鍨嬩互鍙婅皟鐢ㄦ柟寮忋?/P> <P>榪欎釜緋誨垪鐨勫悕瀛楀彨鈥滀負(fù)C++瀹炵幇涓涓狪DL鈥濓紝瀹為檯涓婂簲璇ュ彨鈥滀負(fù)C++瀹炵幇涓涓猂emoting鈥濆彲鑳芥洿濂戒竴浜涳紝璇存槸IDL錛屼富瑕佹槸鎯抽氳繃瀹忥紝浣跨敤綆鍗曠殑綾誨瀷瀹氫箟杈懼埌鑷姩鐢熸垚璋冪敤浠g爜鐨勭洰鐨勩?/P> <P><STRONG>涓銆侀鍏堟潵鐪嬬湅璋冪敤涔?fàn)鎯?/STRONG></P> <P>浠庤皟鐢ㄤ範(fàn)鎯叆鎵嬶紝涓昏鏄洜涓虹湅鍒扮洰鍓嶆湁寰堝搴?宸ュ叿鍖呭湪璋冪敤涓婇兘鏈夊緢澶氫笉渚夸箣澶勩傚亣濡傝兘鍦ㄤ竴寮濮嬪氨浠庤繖鐐瑰嚭鍙戯紝灝辮兘鎶婅皟鐢ㄦ帴鍙h璁″緱鏇村ソ涓浜涖?/P> <P>鍏堟潵鐪嬬湅鏈嶅姟绔浣曞紑鏀句竴涓湇鍔°?/P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽main聽()<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽鍙戝竷涓篠OAP鏈嶅姟錛屽厛鐢熸垚涓涓湇鍔″鍣ㄣ?BR>聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽鏈嶅姟灝嗗彂甯冨湪localhost鐨?911涓婏紝localhost鐢ㄦ潵緇戝畾loopback緗戝崱銆?/SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">聽聽聽聽SOAPProxy聽soap_service聽(</SPAN><SPAN style="COLOR: #000000">7911</SPAN><SPAN style="COLOR: #000000">,聽鈥渓ocalhost鈥?;<BR><BR>聽聽聽聽TestService聽test_service;聽<BR>聽聽聽聽soap_service.addService聽聽(鈥渢est_service鈥?聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test_service);<BR><BR>聽聽聽聽TestService聽service1;<BR>聽聽聽聽soap_service.addService聽(鈥淗elloService鈥?聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">service1);<BR><BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">{<BR>聽聽聽聽聽聽聽聽soap_service.run聽();<BR>聽聽聽聽}聽</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">聽(SocketException</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽e)<BR>聽聽聽聽{<BR>聽聽聽聽}聽</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">聽(SignalException</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽e)<BR>聽聽聽聽{<BR>聽聽聽聽}<BR><BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}</SPAN></DIV> <P><BR>鎴戝笇鏈涘氨鏄繖涔堢畝鍗曪紝瀹㈡埛绔皟鐢ㄦ湁澶氱鏂瑰紡錛?BR>1銆伮犱嬌鐢ㄦ湇鍔$殑IDL瀹氫箟錛岀洿鎺ヨ皟鐢細(xì)</P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽main聽()<BR>{<BR>聽聽聽聽SOAPProxy聽soap_service聽(</SPAN><SPAN style="COLOR: #000000">7911</SPAN><SPAN style="COLOR: #000000">,聽鈥渓ocalhost鈥?;<BR><BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">{<BR>聽聽聽聽聽聽聽聽TestService聽test_service聽(鈥渢est_service鈥?聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">soap_service);<BR>聽聽聽聽聽聽聽聽test_service.method1聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽}聽</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">聽(SocketException</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽e)<BR>聽聽聽聽{<BR>聽聽聽聽}<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}</SPAN></DIV> <P><BR>榪欑鏂瑰紡姣旇緝綆鍗曪紝璋冪敤鏃朵細(xì)媯鏌ユ槸鍚﹀凡緇忚繛鎺ワ紝鐒跺悗鍙戦佽皟鐢ㄨ姹傦紝騫跺鐞嗚皟鐢ㄧ粨鏋溿?/P> <P>2銆伮犳湇鍔¢獙璇佹柟寮忥細(xì)</P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽main聽()<BR>{<BR>聽聽聽聽SOAPProxy聽soap_service聽(</SPAN><SPAN style="COLOR: #000000">7911</SPAN><SPAN style="COLOR: #000000">,聽鈥渓ocalhost鈥?;<BR>聽聽聽聽TestService聽test_service;<BR>聽聽聽聽soap_service.getService聽(鈥渢est_service鈥?聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test_service);<BR><BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">聽(test_service)<BR>聽聽聽聽{<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">{<BR>聽聽聽聽聽聽聽聽聽聽聽聽test_service.method1聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽}聽</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">聽(SocketException</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽e)<BR>聽聽聽聽聽聽聽聽{<BR>聽聽聽聽聽聽聽聽}<BR>聽聽聽聽}<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}</SPAN></DIV> <P><BR>3銆伮犳湇鍔″彂鐜版柟寮忥細(xì)</P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽main聽()<BR>{<BR>聽聽聽聽SOAPProxy聽soap_service聽(</SPAN><SPAN style="COLOR: #000000">7911</SPAN><SPAN style="COLOR: #000000">,聽鈥渓ocalhost鈥?;<BR>聽聽聽聽vector聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽services_name聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽soap_service.getServiceNames聽();<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽<IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">聽聽聽聽IService</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽test_service聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽soap_service.getService聽(鈥渢est_service鈥?;<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">聽(test_service)<BR>聽聽聽聽{<BR>聽聽聽聽聽聽聽聽vector聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽methods聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽test_service</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">getMethodNames聽();<BR>聽聽聽聽聽聽聽聽IMethod</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽method聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽test_service</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">getMethod聽(鈥渕ethod1鈥?;<BR>聽聽聽聽聽聽聽聽vector聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Type</SPAN><SPAN style="COLOR: #000000">*></SPAN><SPAN style="COLOR: #000000">聽types聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽method</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">getParameterType聽s()<BR>聽聽聽聽聽聽聽聽method</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">addArg聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽method</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">addArg聽(</SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽<IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">聽聽聽聽聽聽聽聽method</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">invoke聽();<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽<IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">聽聽聽聽}<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}</SPAN></DIV> <P><STRONG><BR>浜屻佸熀鏈渶姹傘?BR><BR></STRONG>綆鍗曞垎鏋愪竴涓嬶紝涓婇潰涓鍏辨秹鍙婁簡鍝簺綾誨瀷錛?BR>IProxy:<BR>榪欐槸鎵鏈塒roxy綾葷殑鍩虹被(鍜屾帴鍙?錛屽畠鍙互瀹圭撼澶氫釜鏈嶅姟瀵硅薄錛屾彁渚涙湇鍔$粦瀹氥佹湇鍔℃煡璇€佹湇鍔″彂鐜般佹湇鍔¢獙璇併?BR>IService:<BR>鎵鏈塖ervice綾葷殑鍩虹被錛屽彲浠ュ綰沖涓柟娉?Method)錛屾彁渚涙柟娉曟煡璇€佹湇鍔¢獙璇併?BR>IMethod:<BR>鎵鏈塎ethod妯℃澘綾葷殑鍩虹被錛屽綰沖涓弬鏁幫紝鍖呮嫭榪斿洖鍊鹼紝鍙氳繃鏌ヨ鍙傛暟綾誨瀷鑾峰緱鏂規(guī)硶鐨勭被鍨嬪畾涔夈?BR>IParameter:<BR>鎵鏈夊弬鏁扮殑鍩虹被錛屽寘鍚竴涓弬鏁扮被鍨嬫弿榪板拰涓涓弬鏁板箋?BR>IType:<BR>鎵鏈夌被鍨嬬殑鍩虹被錛岄瀹氫箟浜嗕竴浜涘熀鏈被鍨嬶紝鍙嚜瀹氫箟綾誨瀷銆?/P> <P>鐪嬭搗鏉ユ尯澶氱殑錛屽叾瀹炲緢闅炬帴瑙﹀埌榪欎簺錛屽彧闇瑕佷嬌鐢ㄥ畯鏉ュ畾涔変竴涓湇鍔★紝灝卞彲浠ラ氳繃妯℃澘鐨勭被鍨嬫帹瀵鹼紝鑷姩鐢熸垚榪欎簺澶嶆潅鐨勫畾涔夈?/P><STRONG>涓夈佽皟鐢ㄨ繃紼嬨?BR><BR></STRONG>浠ヤ笅鍙畝鍗曞垎鏋愪竴涓嬪悓姝ヨ皟鐢紝寮傛璋冪敤灝嗘槸浠ュ悗鐨勬墿鍏呰瘽棰樸?BR>鏍規(guī)嵁絎簩鑺傜殑3縐嶄笉鍚岃皟鐢ㄨ繃紼嬶紝綆瑕佹弿榪板涓嬶細(xì) <OL> <LI>鐩存帴璋冪敤銆?BR><BR> <UL> <LI>鐢熸垚SOAPProxy錛岃瀹冭繛鎺ュ埌榪滅▼涓繪満銆?BR> <LI>鐢熸垚涓涓猅estService瀵硅薄錛岃緗繙紼嬩富鏈轟笂鐨勬湇鍔″悕縐幫紝騫舵寚瀹氫嬌鐢⊿OAPProxy錛屼篃鍗充嬌鐢⊿OAP鍗忚銆?BR> <LI>璋冪敤TestService::method1鏂規(guī)硶銆傛牴鎹甿ethod1鐨勫畾涔夛紝鎶婃湇鍔″悕縐般佹柟娉曞悕縐般佸悇涓猧n鍙傛暟絳夋墦鍖呮垚涓涓滈泦鍚堚濓紝浜ょ粰SOAPProxy澶勭悊銆?BR> <LI>SOAPProxy鎶婅繖涓滈泦鍚堚濊漿鎹㈡垚SOAP娑堟伅錛屽彂閫佸埌榪滅▼涓繪満錛岄樆濉炵嚎紼嬨?BR> <LI>榪滅▼涓繪満涓婄殑SOAPProxy瀵硅薄鏀跺埌鏁版嵁錛岃繘琛岃В鏋愩傚綋瑙f瀽鍑轟竴涓湇鍔¤皟鐢ㄦ椂錛屾妸瀹冧氦緇橳estService鏈嶅姟澶勭悊銆?BR> <LI>TestService瑙f瀽鍑轟竴涓柟娉曡皟鐢紝鎶婂畠浜ょ粰Method澶勭悊銆?BR> <LI>Method瑙f瀽鍑哄悇涓弬鏁幫紝楠岃瘉鍙傛暟綾誨瀷銆佸畬鏁存х瓑錛屽茍鎵ц璋冪敤鎴栬繑鍥為敊璇?BR> <LI>Method璋冪敤鐨勮繑鍥炰俊鎭?鍖呮嫭璋冪敤緇撴灉銆佽繑鍥炲箋乷ut鍙傛暟絳?琚墦鍖呮垚涓涓滈泦鍚堚濓紝浜ょ粰TestService澶勭悊銆?BR> <LI>TestService澶勭悊鍚庯紝浜ょ粰SOAPProxy銆?BR> <LI>SOAPProxy鎶婄粨鏋滄墦鍖呮垚SOAP娑堟伅錛屽彂鍥炶皟鐢ㄧ銆?BR> <LI>璋冪敤绔В鏋怱OAP娑堟伅錛屾妸OUT鍙傛暟鍊艱祴緇欒皟鐢ㄨ呮彁渚涚殑瀵硅薄錛岃皟鐢ㄥ畬鎴愩?</LI></UL> <P>聽</P> <LI>鏈嶅姟楠岃瘉鏂瑰紡銆?BR> <UL> <LI>鐢熸垚SOAPProxy錛岃瀹冭繛鎺ュ埌榪滅▼涓繪満銆?BR> <LI>鐢熸垚TestService瀵硅薄錛岃皟鐢⊿OAPProxy鐨刧etService楠岃瘉鐗堟湰銆?BR> <LI>SOAPProxy鎶奣estService瀵硅薄鐨勪俊鎭?鍚嶇О銆佹垚鍛樺強鍩虹被鍨嬬瓑)鍙戦佸埌榪滅▼涓繪満錛岄樆濉炪?BR> <LI>榪滅▼涓繪満瑙f瀽鏀跺埌鐨勪俊鎭紝鏌ユ壘鏈嶅姟鍚嶏紝騫舵瘮杈冩煡鎵懼埌鐨勬湇鍔$被鍨嬩笌瑙f瀽寰楀埌鐨勭被鍨嬨?BR> <LI>姣旇緝緇撴灉鍙戝洖緇欒皟鐢ㄧ銆?BR> <LI>璋冪敤绔帴鐫閲囩敤鐩存帴璋冪敤鐨勬柟寮忥紝璋冪敤榪滅▼鏈嶅姟銆?/LI></UL><BR>榪欑鏂瑰紡鐪嬭搗鏉ュ浜嗕竴浜涙搷浣滐紝涓嶈繃楠岃瘉鐨勫ソ澶勬槸鑳藉鍑忓皯璋冪敤鏃剁殑寮傚父銆? <P></P> <LI>鏈嶅姟鍙戠幇鏂瑰紡銆?BR> <UL> <LI>鐢熸垚SOAPProxy錛岃瀹冭繛鎺ュ埌榪滅▼涓繪満銆?BR> <LI>鏌ヨ榪滅▼寮鏀劇殑鏈嶅姟鍚嶇О銆?鍙渷鐣?<BR> <LI>鏌ユ壘鐗瑰畾鏈嶅姟錛屽緱鍒版湇鍔℃弿榪頒俊鎭?BR> <LI>鏌ユ壘鏈嶅姟涓殑鏂規(guī)硶錛屽緱鍒版柟娉曟弿榪頒俊鎭?BR> <LI>鍘嬪叆鍚勪釜鍙傛暟錛屽茍鎵ц璋冪敤銆?BR> <LI>璋冪敤鍓嶅厛鍒ゆ柇鍙傛暟鏄惁涓庢弿榪頒竴鑷達紝鐒跺悗璋冪敤SOAPProxy鐢熸垚SOAP娑堟伅錛屽彂閫佸埌榪滅▼涓繪満錛岄樆濉炪?BR> <LI>榪滅▼涓繪満瑙f瀽鍑鴻皟鐢ㄣ傘傘傚悗闈㈣繃紼嬩笌絎?縐嶆柟寮忕浉鍚岋紝榪滅▼涓繪満騫朵笉鐭ラ亾瀹㈡埛绔嬌鐢ㄧ殑鏄摢縐嶆柟寮忔潵璋冪敤銆傝繙紼嬩富鏈哄鐞嗙粨鏉燂紝灝嗚繑鍥濻OAP娑堟伅緇欒皟鐢ㄧ銆?BR> <LI>璋冪敤绔В鏋愬嚭璋冪敤緇撴灉錛屽茍鎶婂悇涓狾UT鍙傛暟鐨勫艱祴緇檓ethod瀵硅薄銆?/LI></UL><BR>浣跨敤榪欑鏂瑰紡錛岃皟鐢ㄧ涓嶉渶瑕佹湇鍔$殑綾誨瀷瀹氫箟銆? <P></P></LI></OL> <P><STRONG>鍥涖佸紓姝ヨ皟鐢?寮傛鍒嗘淳(AMI/AMD)銆?BR></STRONG><BR>鍚屾璋冪敤鏃訛紝璋冪敤绔嚎紼嬮渶瑕佺瓑寰呰皟鐢ㄧ粨鏋滐紝鏈嶅姟绔嚎紼嬩篃瑕佺瓑寰呰皟鐢ㄧ粨鏉熻繑鍥烇紝鎵嶅鐞嗕笅涓涓皟鐢ㄣ?BR>涓轟簡鍦ㄦ湇鍔¤皟鐢ㄦ湡闂磋綰跨▼鑳藉仛鏇村鐨勪簨錛?BR>璋冪敤绔妸璋冪敤浜ょ粰綰跨▼姹犲畬鎴愶紝騫跺湪璋冪敤瀹屾垚鍚庨噰鐢ㄦ煇縐嶆満鍒墮氱煡綰跨▼澶勭悊緇撴灉錛屾垨鑰呯洿鎺ョ敱綰跨▼姹犱腑鐨勮皟鐢ㄧ嚎紼嬭皟鐢ㄧ粨鏋滃鐞嗗嚱鏁般傝繖縐嶆柟寮忕О涓篈MI(寮傛鏂規(guī)硶璋冪敤)銆?BR>鏈嶅姟绔富綰跨▼鍒欐妸鎺ユ敹鍒扮殑娑堟伅瑙f瀽鍚庯紝鏀懼叆澶勭悊闃熷垪錛岀敱綰跨▼姹犲幓澶勭悊璋冪敤榪囩▼銆傚綋璋冪敤瀹屾垚鍚庯紝緇撴灉鏀懼叆緇撴灉闃熷垪錛岀敱涓葷嚎紼嬪鐞嗘垚娑堟伅錛屽彂閫佸洖璋冪敤绔傝繖縐嶆柟寮忕О涓篈MD(寮傛鏂規(guī)硶鍒嗘淳)銆?BR>璋冪敤绔拰鏈嶅姟绔緷鏃ф槸浣跨敤閫氳鍗忚鏉ユ矡閫氾紝鍙屾柟閮戒笉鐭ラ亾瀵規(guī)柟鏄惁閲囩敤浜嗗紓姝ユ柟寮忋?/P> <P>AMI鍜孉MD瀵逛簬闈欐佸畾涔夌殑鏈嶅姟鏄湁褰卞搷鐨勶紝姣斿涓嬮潰涓涓湇鍔★細(xì)</P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService<BR>{<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽method1;<BR>}</SPAN></DIV> <P><BR>鍦ㄥ悓姝ヨ皟鐢ㄦ椂錛屽畠鐨勮皟鐢ㄦ柟寮忥細(xì)</P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">TestService聽test_service;<BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽a;<BR>service.method1聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽a);聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽鎴栬吢爏ervice.method1聽(3,聽&a)錛屾墦綆楀吋瀹硅繖2縐嶆柟寮忋?/SPAN></DIV> <P><BR>寮傛璋冪敤鏃訛紝璋冪敤鏂瑰紡錛?/P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽method1_result聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">);<BR>TestService聽test_service;<BR>test_service.method1.async_call(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽method1_result);聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽璋冪敤瀹屾垚鍚庯紝璁╄皟鐢ㄧ嚎紼嬪幓璋冪敤method1_result閫氱煡璋冪敤緇撴灉銆?BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽鎴栬呭儚涓嬮潰</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">IMethod</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽result聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽test_service.method1.async_call聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">聽(</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000">result</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">done())聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽榪樻湁寰堝濂藉姙娉曪紝榪欓噷鍙槸涓轟簡綆鍗曘?/SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">{<BR>聽聽聽聽sleep聽(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">);<BR>}<BR>cout聽</SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000">聽result</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">getArg(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">toInt();聽<BR></SPAN></DIV> <P><BR>姝e涓婇潰婕旂ず鐨勪竴鏍鳳紝寮傛璋冪敤鐨勭粨鏋滄湁2縐嶆柟寮忓幓澶勭悊銆?BR>涓鏄敱綰跨▼姹犺皟鐢ㄥ畬浠ュ悗錛屾帴鐫璋冪敤涓涓嚱鏁頒互閫氱煡緇撴灉銆傚畠涓嶉渶瑕佽疆璇紝涓嶈繃娑夊強鍒頒簡綰跨▼闂錛屽鍔犱簡涓浜涘鏉傛с?BR>鍙︿竴縐嶆柟寮忚皟鐢ㄧ粨鏉熷悗錛屽師璋冪敤綰跨▼鍦ㄦ煇涓傚綋鐨勨滄椂鏈衡濆幓鏌ヨ璋冪敤緇撴灉銆傝繖涓椂鏈哄彲浠ユ槸瀹氭椂鏌ヨ錛屼篃鍙互鏄綰跨▼娑堟伅閫氱煡鑰屽幓澶勭悊銆?/P> <P><STRONG>浜斻佸叾瀹冦?BR></STRONG><BR>榪欎竴綃囧姞涓婂墠涓綃囷紝搴旇鏄彁鍒頒簡鍏ㄩ儴鐨勮鐐廣?BR>鐩墠鍓╀笅鐨勫敮涓涓涓毦鐐癸紝鍙兘鏄湪澶勭悊寮傛璋冪敤鏃訛紝Method鐨勫畾涔夈?BR>姝e涓婇潰婕旂ず鐨勶紝涓涓柟娉曞湪鍚屾璋冪敤鍜屽紓姝ヨ皟鐢ㄦ椂錛屽氨鏈?縐嶈皟鐢ㄦ柟寮忥細(xì)</P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">service.method1聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽a);<BR>test_service.method1.async_call(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽method1_result);<BR>IMethod</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽result聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽test_service.method1.async_call聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">);</SPAN></DIV> <P><BR>鐗瑰埆鍦幫紝瀹冨浣曟牴鎹甶n鍜屼釜鏁板拰out鐨勪釜鏁幫紝浜х敓閭?涓弬鏁頒釜鏁板尮閰嶇殑寮傛璋冪敤鍑芥暟錛?BR>鍐嶆潵鍥為【涓涓媘ethod1鐨勫畾涔夛細(xì)</P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽method1;</SPAN></DIV> <P><BR>鏄劇劧鏈変竴瀹氱殑澶嶆潅鎬э紝涓嶈繃鎴戣涓鴻繕鏄彲浠ュ鐞嗘帀鐨勩傛嬁3涓弬鏁扮殑鍋忕壒鍖栫増鏈潵璇存槑錛?/P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">template聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽Ret,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽A,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽B,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽C</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Ret</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">(A,B,C)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽MethodBase聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Ret</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,A,B,C</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>};<BR><BR>template聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽Ret</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽A</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽B</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽C</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽D</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽IN_COUNT</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">InCount</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">聽A,B,C,D</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::value聽</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽MethodBase<BR>{<BR>};<BR><BR></SPAN></DIV> <P><BR>閫氳繃瀵筂ethodBase綾葷殑IN錛緾OUNT鍙傛暟瀹氫箟鍋忕壒鍖栵紝鍗沖彲瀹氫箟鍑鴻繖浜涗笉鍚岀殑鐗堟湰銆?BR><BR>褰撶劧浠呬粎鏄煡閬撲簡IN鍙傛暟鐨勪釜鏁幫紝榪樻病鏈夋彁鍙栧嚭IN鍙傛暟鐨勭被鍨嬶紝鎵浠ヨ繕涓嶈兘鐢熸垚鍑芥暟鐨勫師鍨嬶紝鎴栬闇瑕佹妸typelist鍔犺繘鏉ヤ簡錛坙oki涓殑閭d釜錛夈?BR><BR><BR><BR>榪欐槸鍚庨潰瑕佽冭檻鐨勫唴瀹癸紝浠婂ぉ鍏堟兂鍒拌繖銆?/P><img src ="http://www.shnenglu.com/cpunion/aggbug/284.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-17 19:40 <a href="http://www.shnenglu.com/cpunion/archive/2005/09/17/284.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓篊錛嬶紜瀹炵幇涓涓狪DL銆錛堥浂錛?/title><link>http://www.shnenglu.com/cpunion/archive/2005/09/15/272.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Wed, 14 Sep 2005 17:27:00 GMT</pubDate><guid>http://www.shnenglu.com/cpunion/archive/2005/09/15/272.html</guid><wfw:comment>http://www.shnenglu.com/cpunion/comments/272.html</wfw:comment><comments>http://www.shnenglu.com/cpunion/archive/2005/09/15/272.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/cpunion/comments/commentRss/272.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/cpunion/services/trackbacks/272.html</trackback:ping><description><![CDATA[<P>涓銆侀棶棰樸?BR><BR>榪欐鏃墮棿鑰冭檻瀹炵幇涓涓函C錛嬶紜鐨勫垎甯冨紡鏈嶅姟鍖呰搴擄紝綆瑕佹弿榪板涓嬶細(xì)</P> <P>鏈夊涓嬬被鍜屽嚱鏁幫細(xì)</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽Test<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">out</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};<BR><BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test_func聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">inout</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);</SPAN></DIV></DIV> <P><BR>鎯蟲妸瀹冧滑浣滀負(fù)鏈嶅姟鍙戝竷鍑哄幓錛屼互SOAP鎴栧叾瀹冩柟寮忋傚彂甯冧負(fù)涓涓猅estService錛屽茍璁╁畠鎼哄甫澶氫竴浜涗俊鎭?</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test_func聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};</SPAN></DIV></DIV> <P><BR>C錛嬶紜鏈夎澶氬伐鍏楓佸簱鏉ュ仛鍒拌繖鐐癸紝浣嗘槸錛岄兘闇瑕佺敓鎴愪竴鍫嗕唬鐮侊紝寰堟槸涓嶇埥銆?BR><BR>鍏跺畠璇█錛屾瘮濡俻ython, java, c#絳夛紝閮藉彲浠ラ氳繃鑷渷鏈哄埗錛屾姏寮IDL鍦ㄨ璦鍐呭疄鐜般?BR><BR>C錛嬶紜騫墮潪涓嶈兘鍋氳繖涓紝瀹冨彧鏄己灝戣凍澶熺殑綾誨瀷淇℃伅銆傛瘮濡備笂闈㈢殑渚嬪瓙錛屽鏋滆鍙戝竷涓烘湇鍔★紝閭d箞鑷沖皯搴旇鎶婂畠鐨勫弬鏁般佽繑鍥炲兼悶寰楁槑紜簺錛屽惁鍒欒涔堜細(xì)閫犳垚涓嶅繀瑕佺殑鍙傛暟浼犻掞紝瑕佷箞浼?xì)漶旂敓閿欒锛堟妸OUT鍙傛暟鍙栧煎彲涓嶆槸瀹夊叏鐨勶級銆?BR><BR>姣斿涓婇潰鍑虹幇鐨刬nt, int&, int*錛屽湪浣滀負(fù)in鍙傛暟鏃訛紝鎴戜滑鏄兂浼犻掑畠鐨勫鹼紝綾誨瀷涓篿nt銆傝宨nt*鍜宻tring*浣滀負(fù)out鍙傛暟鏃訛紝鎴戜滑鎯寵瀹冧紶閫掓寚閽堟垨寮曠敤錛屽綋璋冪敤榪斿洖鏃訛紝鎴戜滑緇欏畠璧嬪箋?BR><BR>C錛嬶紜璇█鐨勭被鍨嬫瀬涓轟赴瀵岋紝鍗存病鏈夋弿榪頒竴涓弬鏁板埌搴曟槸in榪樻槸out銆俲ava涔熸病鏈夛紝浣嗗畠鍙互姝e父搴忓垪鍖栦竴涓猲ull鍊鹼紝鍦–錛嬶紜涓紝榪欏彲鑳藉瓨鍦ㄤ竴浜涢夯鐑︺?BR><BR>鍐嶈冭檻涓涓媍har*綾誨瀷錛屽亣濡傚畠鏄痠n鍙傛暟錛岄偅涔堝畠鏄浼犻掍竴涓瓧絎﹁繕鏄竴涓瓧絎︿覆錛烠錛嬶紜璇█娌℃湁瀵瑰畠榪涜鎻忚堪銆?BR><BR>鎵浠ヨ瀹炵幇涓涓垎甯冨紡鏈嶅姟鍖呰錛堟垨浠g悊錛夊簱錛屽繀欏昏鍙戝竷鑰呮彁渚涜繖浜涗俊鎭?BR><BR>鎴戜滑鐭ラ亾錛岃鏌ヨ涓涓繙紼嬫湇鍔★紝蹇呴』鏌ヨ鐩稿簲涓繪満绔彛錛岃幏鍙栨湇鍔′俊鎭傛渶綆鍗曠殑鏈嶅姟淇℃伅鍖呮嫭錛氭湇鍔″垪琛紝姣忎釜鏈嶅姟涓殑鏂規(guī)硶鍒楄〃錛屾柟娉曠殑綾誨瀷錛堝寘鎷弬鏁板拰榪斿洖鍊肩被鍨嬶紝in/out淇℃伅絳夛級銆?BR><BR>瀹為檯涓婏紝鎴戜滑鏄涓篊錛嬶紜澧炲姞涓浜涚畝鍗曠殑鑷渷鑳藉姏銆備笂闈㈤偅涓湇鍔″彂甯冩帴鍙o紝瀹為檯涓婄榪欎釜瑕佹眰榪樻湁寰堣繙錛屽啀鏉ョ湅涓涓嬶細(xì)</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test_func聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};</SPAN></DIV></DIV> <P><BR>鍙互鎯寵錛屽畠鏄病鏈変竴鐐硅嚜鐪佽兘鍔涚殑錛屾垜浠浣曞悜瀹冩煡璇紝瀹冪殑鍚嶅瓧錛熷畠鐨勬柟娉曞垪琛紵鏂規(guī)硶鐨勭被鍨嬶紵瀹冨浣曚笌Test綾葷殑鎴愬憳鍑芥暟浠ュ強test_func鍑芥暟鍏寵仈錛?/P> <P>浜屻佹柟鍚戙?BR><BR>瑕佽涓婇潰閭d釜鏈嶅姟鍏鋒湁鑷渷鑳藉姏錛岃鍋氱殑鎵╁厖鍏跺疄騫朵笉澶氥傝冭檻涓嬮潰鐨勪唬鐮侊細(xì)</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽Service<BR>{<BR>聽聽聽聽TestService聽();<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test1;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test2;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)聽test_func;<BR>};</SPAN></DIV></DIV> <P><BR>榪欏嚑涓狹ethod鍙互鐢ㄨ嚜宸卞啓鐨勫鎵樼被鏉ュ仛銆?BR><BR>1銆佸亣濡傛垜浠湪TestService鐨勬瀯閫犲嚱鏁伴噷緇欏畠鍒嗛厤涓涓淭estService鈥濆悕瀛楋紝騫朵笖Service綾誨疄鐜頒簡鏌ヨ鍚嶅瓧鐨勬帴鍙o紝閭d箞瀹冨氨鐭ラ亾瀹冭嚜宸辯殑鍚嶅瓧浜嗐?BR><BR>2銆佸亣濡傚湪TestService鐨勬瀯閫犲嚱鏁伴噷涓哄悇涓狹ethod鍒嗛厤鍚嶅瓧錛屽茍涓旀敞鍐屽埌TestService錛岄偅涔堝畠?yōu)p兘澶熸煡璇㈡柟娉曞垪琛ㄣ?BR><BR>3銆佹柟娉曠殑綾誨瀷錛熼氳繃妯℃澘鏂瑰紡錛屾妸鍚勪釜鍙傛暟綾誨瀷鏀墮泦璧鋒潵錛岀粰涓瓧絎︿覆鍚嶇О灝卞彲浠ヤ簡銆?BR><BR>浣跨敤瀹忔潵瀹炵幇錛屽ぇ姒傚彲浠ュ啓鎴愯繖鏍鳳細(xì)<BR><BR></P> <P></P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">BEGIN_SERVICE聽(TestService)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func,聽test_func)<BR>END_SERVICE聽()</SPAN></DIV></DIV> <P><BR>閫氳繃涓婇潰榪欏嚑涓畯錛屾垜浠兘澶熺敓鎴怲estService澹版槑銆?BR><BR>涓嶈繃錛屾湁鍑犱釜闂錛岀綏鍒楀涓嬶紝騫朵竴涓瑙e喅瀹冿細(xì)<BR><BR>1銆佸浣曟妸鍑芥暟鎸囬拡浼犵粰瀹冿紵濡備綍鎶婃柟娉曞悕縐頒紶緇欏畠錛?BR>榪欎釜鍙槸C錛嬶紜璇█涓烘垜浠鍔犱簡涓浜涢夯鐑︼紝鎴戜滑鏃犳硶鍦ㄥ畾涔夋垚鍛樼殑鍦版柟璋冪敤瀹冪殑鏋勯犲嚱鏁幫紝涓嶈繃榪欏茍涓嶄細(xì)閫犳垚澶氬ぇ闅滅銆?BR>涓婇潰鐨凪ETHOD瀹忓鏋滃彧鏄敓鎴愮被鐨勫0鏄庯紝閭d箞鍑芥暟鎸囬拡鍙互鐪佺暐銆傛垜鎶婂畠鍔犱笂鐨勫師鍥犳槸錛屽畠鍙互琚垜鐢–trl+C, Ctrl+V榪欑涓栫晫涓婃渶鍏堣繘鐨勬妧鏈師鏍鋒嫹璐濅笅鏉ワ紝騫朵笖閫氳繃綆鍗曚慨鏀圭殑鏂規(guī)硶瀹炵幇榪欑涓栫晫涓婃渶鍏堣繘鐨勯噸鐢ㄣ?BR><BR>涓婇潰鐨勪唬鐮佺粡榪囦慨鏀癸紝緇撴灉灝辨垚榪欐牱錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">BEGIN_SERVICE聽(TestService)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func,聽test_func)<BR><BR>聽聽聽聽BEGIN_DEFINE聽(TestService)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE(</SPAN><SPAN style="COLOR: #0000ff">int(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func,聽test_func)<BR>聽聽聽聽END_DEFINE聽()<BR><BR>END_SERVICE聽()</SPAN></DIV></DIV> <P><BR>鐪嬩笂鍘誨搴斿緱闈炲父鏁撮綈錛屼慨鏀硅搗鏉ヤ篃姣旇緝綆鍗曘備笂闈㈤偅閮ㄥ垎琚墿鍏呬負(fù)濡備笅浠g爜錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽Service<BR>{<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test1;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test2;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)聽test_func;<BR>聽聽聽聽TestService聽()<BR>聽聽聽聽:聽Service聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">TestService</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR>聽聽聽聽{<BR>聽聽聽聽聽聽聽聽test1.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test1</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽test1.setMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test1);<BR>聽聽聽聽聽聽聽聽test2.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test2</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽test2.setMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test2);<BR>聽聽聽聽聽聽聽聽test_func.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test_func</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽test_func.setMethod聽(test_func);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test3);<BR>聽聽聽聽}<BR>};</SPAN></DIV></DIV> <P><BR>鍩烘湰涓婇渶瑕佺殑涓滆タ閮藉湪榪欓噷浜嗐?BR><BR>2銆佸鎴風(fēng)鐨勯棶棰樸?BR></P> <P>涓婇潰榪欑鏄犲皠錛岀洿鎺ユ嬁鍒板鎴風(fēng)浼?xì)鏈夐棶棰樺Q孴est綾誨拰test_func鍑芥暟鎴戜滑騫朵笉鎵撶畻浜ょ粰瀹㈡埛绔紝鎵浠ヤ嬌鐢ㄥ嚱鏁版寚閽堜細(xì)鍑虹幇閾炬帴閿欒銆?BR><BR>瀹為檯涓婂鎴風(fēng)涓嶉渶瑕佽繖涓紝鎴戜滑鎯沖姙娉曟妸瀹冩嬁鎺夊氨琛屼簡銆傚鎴風(fēng)瀹為檯闇瑕佺敓鎴愮殑浠g爜濡備笅錛?BR><BR></P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽Service<BR>{<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test1;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test2;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)聽test_func;<BR>聽聽聽聽TestService聽()<BR>聽聽聽聽:聽Service聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">TestService</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR>聽聽聽聽{<BR>聽聽聽聽聽聽聽聽test1.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test1</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test1);<BR>聽聽聽聽聽聽聽聽test2.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test2</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test2);<BR>聽聽聽聽聽聽聽聽test_func.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test_func</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test3);<BR>聽聽聽聽}<BR>};</SPAN></DIV></DIV> <P><BR>榪樻槸涓婇潰鎻愬埌鐨勶紝C++緇欐垜浠甫鏉ョ殑楹葷儲銆傝繖嬈¢渶瑕佸彟涓緇勫畯鏉ュ畬鎴愬畠錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">BEGIN_SERVICE_D聽(TestService)<BR>聽聽聽聽METHOD_D聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1)<BR>聽聽聽聽METHOD_D聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2)<BR>聽聽聽聽METHOD_D聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func)<BR><BR>聽聽聽聽BEGIN_DEFINE_D聽(TestService)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE_D聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE_D(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE_D(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func)<BR>聽聽聽聽END_DEFINE_D聽()<BR><BR>END_SERVICE_D聽()</SPAN></DIV></DIV> <P><BR>METHOD*鍜孧ETHOD_DEFINE*瀹忕殑鍙傛暟閮芥湁涓浜涘浣欑殑淇℃伅錛屾病鏈夊幓鎺夋槸鍥犱負(fù)鏀懼湪涓璧峰鏄撶湅鍒板啓閿欑殑鍦版柟銆傦紙榪欎釜鎶宸ф潵婧愪簬鍓嶅嚑澶╃湅鐨勪竴綃嘊LOG錛屽緢鎶ユ瓑娌℃湁璁頒笅鍦板潃錛?BR><BR>3銆佷嬌鐢ㄧ殑闂銆?BR><BR>濡備綍鎵嶈兘姣旇緝鏂逛究鍦頒嬌鐢紵鎴戣冭檻浜嗕笅闈㈣繖縐嶆柟寮忥細(xì)</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">template聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽IProxy;<BR><BR>template聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽SOAPProxy;<BR><BR>SOAPProxy聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">TestService</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽service;<BR>service.connect聽(</SPAN><SPAN style="COLOR: #000000">5000</SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">localhost</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽a</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">n聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">a;<BR>service.test1聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽n);<BR>service.test1聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">n);<BR>service.test2聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽n);<BR>service.test2聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">n);<BR>service.test2聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽NONE);<BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN></DIV></DIV> <P><BR>Method::operator ()鐨勫悇涓弬鏁伴兘灝嗗彲浠ユ帴鍙楃浉瀹圭殑綾誨瀷錛屽儚涓婇潰涓鏍鳳紝鍥犱負(fù)鍦═estService涓垜浠凡緇忓畾涔変簡瀹冭浼犺緭鐨勫肩殑綾誨瀷銆?BR><BR>a.NONE鏄粈涔堬紵鍏跺疄鏄負(fù)寮傛璋冪敤鑰冭檻鐨勩傚亣濡傛寚瀹氭煇涓狾UT鍙傛暟涓篘ONE錛屽垯榪欎釜鍙傛暟鐨勫煎茍涓嶇湡姝g殑OUT錛岃屾槸淇濆瓨鍦∕ethod涓傚疄闄呬笂Method涓繚瀛樻瘡涓弬鏁扮殑鍊箋?BR><BR>b.Method涓嶴ervice濡備綍鍙戠敓鍏崇郴錛?BR>浠嶵estService鐨勫畾涔変腑鎴戜滑鐭ラ亾錛孧ethod鍚慡ervice娉ㄥ唽鑷繁浠ュ疄鐜拌嚜鐪侊紝浣嗗畠鍚屾椂涔熶細(xì)淇濆瓨Service鐨勬寚鍚戙?BR>鎴戜滑鐨凱roxy瀹為檯涓婃槸涓涓戶鎵挎ā鏉匡紝涓婇潰騫舵病鏈夋妸瀹冩寚鍑烘潵銆傚畠鐨勫畾涔夋槸錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">template聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽XProxy聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽T<XPROXY><BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">};</SPAN></DIV></DIV> <P><BR>鎵浠ユ垜浠殑TestService鍏跺疄涔熸槸妯℃澘綾伙紝瀹冨皢浣跨敤XProxy涓畾涔夌殑搴忓垪鍖栫被銆俋Proxy灝嗗疄鐜癝ervice鍩虹被涓簭鍒楀寲铏氬嚱鏁頒互鍙婅皟鐢ㄨ櫄鍑芥暟銆?BR><BR>褰撲竴涓狹ethod璋冪敤鏃訛紝瀹冧細(xì)璋冪敤Service鐨勫簭鍒楀寲錛岀敱浜庤閲嶅啓浜嗭紝鎵浠ヨ皟鐢ㄧ殑鏄疿Proxy涓殑搴忓垪鍖栨柟娉曘傝繖涓柟娉曚細(xì)鎶婅繖涓狹ethod鐨勫悇in/inout鍙傛暟搴忓垪鍖栵紝鐒跺悗鎵ц榪滅▼璋冪敤錛屽啀鎶婅皟鐢ㄧ粨鏋滃弽搴忓垪鍖栫粰inout/out鍙傛暟銆?BR><BR>4銆佸叾瀹冩兂娉曘?BR><BR>鍦ㄨ冭檻涓婇潰鐨勫畾涔夋柟寮忔椂錛屾垜涔熻冭檻浜嗗叾瀹冩柟寮忥紝涓昏鏄繑鍥炲煎鐞嗙殑鏂規(guī)硶錛岀畝榪板涓嬨?BR><BR>鍓嶉潰鎴戜滑鍋囪浜嗕竴孌靛皢琚紑鏀句負(fù)榪滅▼鏈嶅姟鐨勪唬鐮侊細(xì)</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽Test<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">out</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};<BR><BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test_func聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">inout</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);</SPAN></DIV></DIV> <P><BR>鍦ㄥ墠闈㈢殑鍋氭硶涓紝鎴戜滑鐨勬湇鍔℃弿榪版槸鏀懼湪閭d竴緇勫畯閲岄潰錛屽ソ澶勬槸涓嶇敤鏀硅繖孌典唬鐮侊紝鍧忓灝辨槸浠g爜瀹氫箟鐨勫湴鏂瑰拰鎻忚堪涓嶅湪涓璧鳳紝鍗忚皟鍙兘浼?xì)鏈変竴浜涗笉渚褲?BR><BR>鎴戜篃鑰冭檻浜嗗彟涓縐嶅仛娉曪細(xì)<BR><BR></P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽Test<BR>{<BR>聽聽聽聽idl聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽idl聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};<BR><BR>idl聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)聽test_func聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);</SPAN></DIV></DIV> <P><BR>瀵逛簬瀹炵幇浠g爜錛屽彧闇瑕佷慨鏀硅繑鍥炲間負(fù)void鐨勫嚱鏁幫紝鎶妑eturn;淇敼涓簉eturn VOID;錛屽茍涓斾負(fù)娌℃湁鍐欐璇彞鐨勫垎鏀姞涓婃鍙ャ?BR><BR>VOID鏄竴涓壒孌婄被鍨嬬殑闈欐佸彉閲忥紝涓撲負(fù)void榪斿洖鍊肩殑鍑芥暟璁懼畾銆?BR><BR>榪欑鍋氭硶淇敼浜嗗師鏈夌殑浠g爜錛屼笉榪囧湪瀹氫箟鏈嶅姟鏃跺彲浠ヨ妭鐪佷竴浜涘伐浣滐細(xì)</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">BEGIN_SERVICE聽(TestService)<BR>聽聽聽聽METHOD聽(test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽METHOD聽(test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽METHOD聽(test_func,聽test_func)<BR><BR>聽聽聽聽BEGIN_DEFINE聽(TestService)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE聽(test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE聽(test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE聽(test_func,聽test_func)<BR>聽聽聽聽END_DEFINE聽()<BR><BR>END_SERVICE聽()</SPAN></DIV></DIV> <P><BR>瀹冩墍闇瑕佺殑鍑芥暟綾誨瀷錛屽皢鐢卞嚱鏁版寚閽堟帹瀵箋?BR><BR>鍦℅錛嬶紜緙栬瘧鍣ㄤ笅錛屽彲浠ヤ嬌鐢╰ypeof鏉ヨ幏寰楀嚱鏁版寚閽堢殑綾誨瀷鑰屼笉闇瑕佺湡寰楄幏寰楀嚱鏁版寚閽堝鹼紝涓嶈繃鐩墠浠呬粎鍦℅錛嬶紜涓嬪彲鐢ㄣ傦紙欏轟究璇翠竴涓嬶紝typeof宸茬粡鍒楀叆c++0x錛?BR><BR>鏈緇堟垜鏀懼純浜嗚繖涓兂娉曪紝姣曠珶瀹冭淇敼鐜版湁鐨勪唬鐮侊紝鏌愪簺鎯呭喌涓嬭繖鏄笉鍙兘鐨勶紝鑰屼笖typeof鐩墠涔熶笉鑳借法緙栬瘧鍣ㄣ?BR><BR>涓夈佸疄鐜般?BR><BR>鑰佸疄璇存垜鐜板湪榪樻病鏈変竴浠藉畬鏁寸殑鎴栧崐瀹屾暣鐨勫疄鐜幫紝澶ч儴鍒嗘兂娉曡繕鍦ㄥご鑴戜腑錛屾祴璇曚唬鐮佸掓槸鍐欎簡涓嶅皯錛屼富瑕佹槸鐢ㄦ潵嫻嬭瘯涓婅堪鎯蟲硶鑳藉惁瀹炵幇錛屾垜鎯沖ぇ閮ㄥ垎鎯呭喌閮藉凡緇忔祴璇曚簡錛屽彧闇瑕佹湁鏃墮棿鏉ユ妸瀹冨疄鐜板嚭鏉ャ?BR><BR>榪欐槸鎴戣繎鏈熻鍋氱殑浜嬩箣涓錛屼簤鍙栨湀鍐呮妸瀹冨仛瀹岀艦銆?/P><img src ="http://www.shnenglu.com/cpunion/aggbug/272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-15 01:27 <a href="http://www.shnenglu.com/cpunion/archive/2005/09/15/272.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://rljyy.com" target="_blank">亚洲欧美日韩专区</a>| <a href="http://18mmcg.com" target="_blank">亚洲精品一区在线观看</a>| <a href="http://2456yo.com" target="_blank">欧美在线视频免费</a>| <a href="http://y4088.com" target="_blank">小处雏高清一区二区三区</a>| <a href="http://timonna.com" target="_blank">国产欧美日韩在线</a>| <a href="http://haochen072.com" target="_blank">久久久久www</a>| <a href="http://www123720a.com" target="_blank">久久久噜噜噜久噜久久</a>| <a href="http://timonna.com" target="_blank">亚洲国产精品第一区二区三区</a>| <a href="http://qdpetlove.com" target="_blank">欧美电影在线播放</a>| <a href="http://488089.com" target="_blank">欧美日韩国产bt</a>| <a href="http://www033459.com" target="_blank">亚洲欧美日韩国产一区</a>| <a href="http://320ur.com" target="_blank">久久成人18免费网站</a>| <a href="http://787622.com" target="_blank">亚洲国产精品久久久久久女王</a>| <a href="http://www101804.com" target="_blank">欧美激情亚洲视频</a>| <a href="http://580078.com" target="_blank">欧美午夜片欧美片在线观看</a>| <a href="http://by3259.com" target="_blank">久久国内精品视频</a>| <a href="http://439368.com" target="_blank">免费短视频成人日韩</a>| <a href="http://www227ee.com" target="_blank">亚洲午夜91</a>| <a href="http://4534com.com" target="_blank">久久狠狠亚洲综合</a>| <a href="http://bizssr.com" target="_blank">中文在线一区</a>| <a href="http://www5123ri.com" target="_blank">久久riav二区三区</a>| <a href="http://wwwmm131.com" target="_blank">一本大道av伊人久久综合</a>| <a href="http://sifeksa.com" target="_blank">亚洲自拍16p</a>| <a href="http://7885888.com" target="_blank">亚洲激情第一页</a>| <a href="http://njhuike.com" target="_blank">亚洲性感美女99在线</a>| <a href="http://1397979.com" target="_blank">伊人精品在线</a>| <a href="http://hg98688.com" target="_blank">中国av一区</a>| <a href="http://aqdit2022.com" target="_blank">亚洲国产成人午夜在线一区</a>| <a href="http://tk263.com" target="_blank">一本色道久久综合亚洲精品高清</a>| <a href="http://bdkaoyan.com" target="_blank">国产一区二区视频在线观看</a>| <a href="http://cc28256.com" target="_blank">亚洲国产中文字幕在线观看</a>| <a href="http://ktokt.com" target="_blank">国产精品爽黄69</a>| <a href="http://www47777.com" target="_blank">亚洲高清在线观看一区</a>| <a href="http://5e5b7g.com" target="_blank">国产欧美另类</a>| <a href="http://666675com.com" target="_blank">91久久精品国产91久久性色tv</a>| <a href="http://czjrby.com" target="_blank">国产精一区二区三区</a>| <a href="http://sesese98.com" target="_blank">亚洲第一网站</a>| <a href="http://215920.com" target="_blank">国产一区二区三区无遮挡</a>| <a href="http://13751144594.com" target="_blank">日韩一区二区免费看</a>| <a href="http://yidaiban.com" target="_blank">亚洲福利视频三区</a>| <a href="http://avhai.com" target="_blank">亚洲欧美日韩一区二区</a>| <a href="http://989p.com" target="_blank">蜜臀va亚洲va欧美va天堂</a>| <a href="http://6133c.com" target="_blank">欧美四级电影网站</a>| <a href="http://96ykm.com" target="_blank">欧美激情欧美激情在线五月</a>| <a href="http://yada-jg.com" target="_blank">国产日韩精品久久久</a>| <a href="http://jlkcjz.com" target="_blank">亚洲美女黄色片</a>| <a href="http://wwwcc7777.com" target="_blank">在线看不卡av</a>| <a href="http://www49966.com" target="_blank">久久精品人人做人人综合 </a>| <a href="http://cswlts.com" target="_blank">美乳少妇欧美精品</a>| <a href="http://xxav2121.com" target="_blank">久久成人免费网</a>| <a href="http://jiejiesao8.com" target="_blank">国产精品久久久久久久午夜 </a>| <a href="http://mmpzyw.com" target="_blank">欧美激情精品久久久</a>| <a href="http://ahhccz.com" target="_blank">国产亚洲精品久</a>| <a href="http://rainbowbpm.com" target="_blank">亚洲图片激情小说</a>| <a href="http://9238479.com" target="_blank">亚洲图片欧洲图片日韩av</a>| <a href="http://88xjj.com" target="_blank">欧美高清在线一区</a>| <a href="http://aass123.com" target="_blank">亚洲国产一区视频</a>| <a href="http://www57669.com" target="_blank">亚洲日本欧美在线</a>| <a href="http://www57669.com" target="_blank">欧美fxxxxxx另类</a>| <a href="http://caoliu2022.com" target="_blank">蜜臀av性久久久久蜜臀aⅴ四虎</a>| <a href="http://eee104.com" target="_blank">国产一区二区成人久久免费影院</a>| <a href="http://bjjxgcsxy.com" target="_blank">亚洲在线一区二区三区</a>| <a href="http://wwwlywbb.com" target="_blank">中文一区字幕</a>| <a href="http://2015xiaomingkankan.com" target="_blank">欧美日韩国产一级片</a>| <a href="http://044925.com" target="_blank">亚洲最新在线</a>| <a href="http://039658.com" target="_blank">亚洲欧美久久久久一区二区三区</a>| <a href="http://shuoqe.com" target="_blank">欧美色视频一区</a>| <a href="http://283575.com" target="_blank">亚洲免费一在线</a>| <a href="http://hnluvlux.com" target="_blank">欧美亚洲一区二区在线</a>| <a href="http://tutu80.com" target="_blank">国产女人aaa级久久久级</a>| <a href="http://m10669.com" target="_blank">亚洲欧美日韩一区二区三区在线观看 </a>| <a href="http://域名" target="_blank">午夜宅男久久久</a>| <a href="http://jizz16.com" target="_blank">久久精品国产精品亚洲精品</a>| <a href="http://www-119049.com" target="_blank">国产亚洲一区精品</a>| <a href="http://511caifu.com" target="_blank">久久精品中文字幕一区</a>| <a href="http://436212.com" target="_blank">亚洲成人在线视频播放</a>| <a href="http://668334.com" target="_blank">亚洲国产日韩在线一区模特</a>| <a href="http://jyboke.com" target="_blank">欧美精品一区在线播放</a>| <a href="http://613609.com" target="_blank">一区二区三区产品免费精品久久75</a>| <a href="http://wwwsao117.com" target="_blank">在线视频欧美精品</a>| <a href="http://www-772773.com" target="_blank">国产精品久久久久久久久搜平片 </a>| <a href="http://www8888803.com" target="_blank">欧美日韩ab</a>| <a href="http://ddnwater.com" target="_blank">亚洲视频在线二区</a>| <a href="http://nc04.com" target="_blank">久久久www成人免费精品</a>| <a href="http://59812mh.com" target="_blank">激情小说另类小说亚洲欧美</a>| <a href="http://668756.com" target="_blank">欧美成人第一页</a>| <a href="http://qscxx3.com" target="_blank">亚洲一区二区视频在线</a>| <a href="http://97seee.com" target="_blank">久久久久久久波多野高潮日日</a>| <a href="http://oo853kj.com" target="_blank">影音先锋中文字幕一区二区</a>| <a href="http://00001xh.com" target="_blank">欧美国产大片</a>| <a href="http://universehb.com" target="_blank">亚洲欧美99</a>| <a href="http://1235656.com" target="_blank">男女精品视频</a>| <a href="http://628155.com" target="_blank">亚洲夜间福利</a>| <a href="http://www-74987.com" target="_blank">黄色精品一二区</a>| <a href="http://096577.com" target="_blank">欧美日韩另类字幕中文</a>| <a href="http://85181890.com" target="_blank">亚洲欧美国产77777</a>| <a href="http://jxrisen.com" target="_blank">欧美成人午夜视频</a>| <a href="http://94wr.com" target="_blank">亚洲欧美日韩中文视频</a>| <a href="http://sesese98.com" target="_blank">亚洲电影毛片</a>| <a href="http://765409.com" target="_blank">国产精品久久久久久影视</a>| <a href="http://yw8333.com" target="_blank">免费日韩一区二区</a>| <a href="http://mengmujia.com" target="_blank">欧美久久在线</a>| <a href="http://tfccrk.com" target="_blank">午夜精品999</a>| <a href="http://y65v.com" target="_blank">亚洲精品裸体</a>| <a href="http://689657.com" target="_blank">久久久久成人精品</a>| <a href="http://lfxhfh.com" target="_blank">亚洲一区二区综合</a>| <a href="http://www-919198.com" target="_blank">国内精品视频一区</a>| <a href="http://3bmmtv.com" target="_blank">欧美日韩岛国</a>| <a href="http://www311pi.com" target="_blank">久久久免费精品视频</a>| <a href="http://05ec.com" target="_blank">亚洲午夜三级在线</a>| <a href="http://unrealcopgmail.com" target="_blank">欧美成人午夜剧场免费观看</a>| <a href="http://9924338.com" target="_blank">欧美一区二区三区视频在线观看 </a>| <a href="http://gzw33.com" target="_blank">亚洲国产综合视频在线观看</a>| <a href="http://wy172.com" target="_blank">国产精品蜜臀在线观看</a>| <a href="http://www78778.com" target="_blank">欧美11—12娇小xxxx</a>| <a href="http://hazymall.com" target="_blank">亚洲欧美制服另类日韩</a>| <a href="http://456kp.com" target="_blank">最新国产拍偷乱拍精品</a>| <a href="http://xingcheny.com" target="_blank">久久精品国产2020观看福利</a>| <a href="http://chainhuayu.com" target="_blank">一区二区91</a>| <a href="http://8842aa.com" target="_blank">91久久久精品</a>| <a href="http://gdvapar.com" target="_blank">在线观看日韩欧美</a>| <a href="http://www-tt211.com" target="_blank">国产区二精品视</a>| <a href="http://149155.com" target="_blank">国产精品成人国产乱一区</a>| <a href="http://pppp95.com" target="_blank">欧美成人免费在线</a>| <a href="http://www497171c.com" target="_blank">久久久久国色av免费看影院 </a>| <a href="http://621768.com" target="_blank">欧美国产91</a>| <a href="http://118936.com" target="_blank">老司机免费视频久久</a>| <a href="http://dxmdzz.com" target="_blank">欧美在线播放高清精品</a>| <a href="http://www-369111.com" target="_blank">亚洲一区3d动漫同人无遮挡</a>| <a href="http://bocfdj.com" target="_blank">亚洲欧洲精品一区二区三区</a>| <a href="http://77017w.com" target="_blank">亚洲第一在线</a>| <a href="http://zhxjl.com" target="_blank">在线免费观看日本欧美</a>| <a href="http://yashikeji.com" target="_blank">国产专区欧美专区</a>| <a href="http://niceboybao.com" target="_blank">国产日本欧美一区二区三区在线</a>| <a href="http://036762.com" target="_blank">国产精品videossex久久发布</a>| <a href="http://17vx.com" target="_blank">欧美精品系列</a>| <a href="http://cnm24.com" target="_blank">欧美精品激情blacked18</a>| <a href="http://44368com.com" target="_blank">欧美**人妖</a>| <a href="http://3dxxoo.com" target="_blank">农村妇女精品</a>| <a href="http://shaijia123.com" target="_blank">麻豆91精品91久久久的内涵</a>| <a href="http://85995m.com" target="_blank">久久久久久欧美</a>| <a href="http://zjjieda.com" target="_blank">另类图片综合电影</a>| <a href="http://4y9k.com" target="_blank">欧美国产日韩在线观看</a>| <a href="http://5gn4y.com" target="_blank">免费亚洲一区二区</a>| <a href="http://ccltb.com" target="_blank">欧美精品电影在线</a>| <a href="http://69kun.com" target="_blank">欧美日韩国产综合视频在线</a>| <a href="http://maokk88.com" target="_blank">欧美日韩成人在线播放</a>| <a href="http://15149cc.com" target="_blank">欧美日产国产成人免费图片</a>| <a href="http://liandezhi.com" target="_blank">欧美激情亚洲自拍</a>| <a href="http://zhongqingshiye.com" target="_blank">欧美激情一区二区三区在线</a>| <a href="http://jxjx11.com" target="_blank">欧美精选一区</a>| <a href="http://2jjzz.com" target="_blank">欧美性片在线观看</a>| <a href="http://dailymailnepal.com" target="_blank">国产精品久久久久久模特</a>| <a href="http://free18teen.com" target="_blank">国产精品日韩精品</a>| <a href="http://shaijia123.com" target="_blank">国产一区三区三区</a>| <a href="http://wwdd44.com" target="_blank">亚洲国产成人久久</a>| <a href="http://www-8438.com" target="_blank">亚洲免费观看在线观看</a>| <a href="http://czjrby.com" target="_blank">中文日韩在线</a>| <a href="http://151545.com" target="_blank">欧美在线免费看</a>| <a href="http://gzw33.com" target="_blank">免费在线国产精品</a>| <a href="http://56667r.com" target="_blank">91久久中文</a>| <a href="http://497988.com" target="_blank">亚洲女人小视频在线观看</a>| <a href="http://99cheats.com" target="_blank">欧美一区二区久久久</a>| <a href="http://029902.com" target="_blank">久久午夜影视</a>| <a href="http://ll992.com" target="_blank">欧美日韩一区二区欧美激情</a>| <a href="http://bocai4488.com" target="_blank">欧美性久久久</a>| <a href="http://1392266.com" target="_blank">在线观看欧美视频</a>| <a href="http://quanfadq.com" target="_blank">亚洲毛片一区二区</a>| <a href="http://gykfqzgpt.com" target="_blank">午夜久久久久久</a>| <a href="http://cnbluebox.com" target="_blank">久久中文在线</a>| <a href="http://hh474.com" target="_blank">一区二区三区久久网</a>| <a href="http://xingmaokeji.com" target="_blank">午夜精品区一区二区三</a>| <a href="http://8004006.com" target="_blank">久久综合久色欧美综合狠狠</a>| <a href="http://aiqianfang.com" target="_blank">欧美日韩中文字幕在线视频</a>| <a href="http://jinlijun.com" target="_blank">国产亚洲精品bv在线观看</a>| <a href="http://czwangluoyouhua.com" target="_blank">亚洲黄色片网站</a>| <a href="http://jigu100.com" target="_blank">欧美一级日韩一级</a>| <a href="http://www35211.com" target="_blank">香蕉av福利精品导航</a>| <a href="http://eee2244.com" target="_blank">久热re这里精品视频在线6</a>| <a href="http://saomm18.com" target="_blank">欧美日韩p片</a>| <a href="http://wwwxigua66.com" target="_blank">国内精品国语自产拍在线观看</a>| <a href="http://jlkcjz.com" target="_blank">亚洲精品欧美一区二区三区</a>| <a href="http://www16axax.com" target="_blank">亚洲欧美成人一区二区在线电影</a>| <a href="http://69ru.com" target="_blank">蜜桃久久精品乱码一区二区</a>| <a href="http://www344399.com" target="_blank">日韩系列在线</a>| <a href="http://621768.com" target="_blank">久久米奇亚洲</a>| <a href="http://aiqianfang.com" target="_blank">国产精品久久二区</a>| <a href="http://rosi2030.com" target="_blank">亚洲精品小视频</a>| <a href="http://7555hh.com" target="_blank">久久精品一本久久99精品</a>| <a href="http://amiee88.com" target="_blank">亚洲精品视频免费观看</a>| <a href="http://bgflee.com" target="_blank">久久精品免视看</a>| <a href="http://bjjxgcsxy.com" target="_blank">国产精品美女午夜av</a>| <a href="http://www-222kkk.com" target="_blank">最新国产精品拍自在线播放</a>| <a href="http://798200.com" target="_blank">久久久精品网</a>| <a href="http://idc0558.com" target="_blank">亚洲视频精品</a>| <a href="http://yunduaner.com" target="_blank">欧美日韩精品高清</a>| <a href="http://aaa798.com" target="_blank">亚洲国产日韩在线</a>| <a href="http://www55747.com" target="_blank">久久只有精品</a>| <a href="http://wwwsfsf11.com" target="_blank">欧美在线视频一区二区</a>| <a href="http://66y3.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>