锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩成人在线,久久久久综合一区二区三区,久久久.comhttp://www.shnenglu.com/killsound/category/3471.htmlC/C++ 浜ゆ祦zh-cnThu, 03 Dec 2009 07:03:56 GMTThu, 03 Dec 2009 07:03:56 GMT60VC 6.0涓紪璇戝拰浣跨敤OpenSSL鐨勮繃紼?/title><link>http://www.shnenglu.com/killsound/articles/102374.html</link><dc:creator>灝忎笉鎳俕_^</dc:creator><author>灝忎笉鎳俕_^</author><pubDate>Wed, 02 Dec 2009 02:51:00 GMT</pubDate><guid>http://www.shnenglu.com/killsound/articles/102374.html</guid><wfw:comment>http://www.shnenglu.com/killsound/comments/102374.html</wfw:comment><comments>http://www.shnenglu.com/killsound/articles/102374.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/killsound/comments/commentRss/102374.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/killsound/services/trackbacks/102374.html</trackback:ping><description><![CDATA[<p class="g_p_center g_t_wrap g_t_left g_t_20 g_c_pdin c07" id=blogtitle_fks_085074092094082068093094084095081083084075087086085068 style="MARGIN: 20px auto 10px"><span style="FONT-FAMILY: '寰蔣闆呴粦','榛戜綋',Arial,Helvetica,Sans-Serif">VC 6.0涓紪璇戝拰浣跨敤OpenSSL鐨勮繃紼?/span></p> <div id="hvzpftn" class=g_blog_list> <div id="hvzpftn" class="g_t_center g_c_pdin g_p_center c07 content" id=blogtext_fks_085074092094082068093094084095081083084075087086085068> <div id="hvzpftn" class=ns_content> <p>涓銆佺紪璇戝茍瀹夎OpenSSL</p> <p>1銆佹寜鐓ф爣鍑嗘楠や粠婧愪唬鐮佺紪璇戝畨瑁匫penSSL<br>    鍦ㄧ紪璇慜penSSL鍓嶏紝闇瑕佹紜畨瑁匬erl錛屽洜涓哄湪緙栬瘧OpenSSL鏃墮渶瑕佷嬌鐢ㄥ埌璇ョ▼搴忋?br>   <br>    涓嬭澆鏈鏂扮増鏈殑Perl錛?a ><font color=#6aa50d>http://downloads.activestate.com/ActivePerl/Windows/</font></a>銆傜劧鍚庡畨瑁呬箣銆?/p> <p>    涓嬭澆鏈鏂扮増鏈殑OpenSSL錛?a ><font color=#6aa50d>http://www.openssl.org/source/</font></a><br>   <br>    鐒跺悗灝嗘簮鐮佽В鍘嬬緝鍒版煇涓洰褰曪紙濡?C:\openssl-0.9.8j錛変腑銆?br>   <br>    榪涘叆openssl婧愮爜鐩綍銆?br>    cd c:\openssl-0.9.8.j<br>   <br>    浠ヤ笅涓哄弬鐓ц鐩綍涓嬬殑鏂囦歡INSTALL.W32鐨勬墽琛岃繃紼嬶細</p> <p>    榪愯configure錛?br>    perl Configure VC-WIN32 --prefix=c:/openssl</p> <p>    鍒涘緩Makefile鏂囦歡錛?br>    ms\do_ms<br>   <br>    緙栬瘧鍔ㄦ佸簱錛?br>    nmake -f ms\ntdll.mak<br>    緙栬瘧闈欐佸簱錛?br>    nmake -f ms\nt.mak</p> <p>    嫻嬭瘯鍔ㄦ佸簱錛?br>    nmake -f ms\ntdll.mak test<br>    嫻嬭瘯闈欐佸簱錛?br>    nmake -f ms\nt.mak test</p> <p>    瀹夎鍔ㄦ佸簱錛?br>    nmake -f ms\ntdll.mak install<br>    瀹夎闈欐佸簱錛?br>    nmake -f ms\nt.mak install</p> <p>    娓呴櫎涓婃鍔ㄦ佸簱鐨勭紪璇戯紝浠ヤ究閲嶆柊緙栬瘧錛?br>    nmake -f ms\ntdll.mak clean<br>    娓呴櫎涓婃闈欐佸簱鐨勭紪璇戯紝浠ヤ究閲嶆柊緙栬瘧錛?br>    nmake -f ms\nt.mak clean</p> <p>2銆佸鏋滃珜楹葷儲錛屼笉鎯崇紪璇戯紝鍙互鐩存帴鐢ㄥ埆浜哄仛濂界殑windows OpenSSL 瀹夎鍖咃紙鎴戠敤鐨勬槸0.9.8j鐗堬級錛?br>   鍙互浠?<a ><font color=#6aa50d>http://www.slproweb.com/products/Win32OpenSSL.html</font></a> 涓嬭澆 OpenSSL for Windows錛岀洿鎺ュ畨瑁呫?/p> <p>P.S. OpenSSL for Windows 鐨勬簮浠g爜鏈変竴浜涙暟鎹被鍨嬪拰VC6鐨勭紪璇戝櫒涓嶅吋瀹癸紝鎴戝彂鐜扮殑涓嶅吋瀹圭殑鏁版嵁綾誨瀷濡備笅錛?br>銆銆鍦∣penSSL瀹夎鐩綍鐨勪笅鐨刬nclude/bn.h鏂囦歡涓紝灝?br>    #define BN_ULLONG unsigned long long<br>    #define BN_ULONG unsigned long long<br>    #define BN_LONG long long<br>    鍒嗗埆淇敼涓猴細<br>    #define BN_ULLONG ULONGLONG<br>    #define BN_ULONG ULONGLONG<br>    #define BN_LONG LONGLONG</p> <p>    鍚﹀垯錛屼細鍑虹幇緙栬瘧閿欒銆?/p> <p><br>浜屻佷嬌鐢∣penSSL</p> <p>    鍦╒C涓厤緗嬌鐢ㄤ互涓婄殑鍑芥暟搴擄細<br>    鐐瑰嚮鑿滃崟錛歍ools -> Options錛屽脊鍑哄璇濇"Options"錛屽湪璇ュ璇濇涓夋嫨"Directories"鏍囩銆?br>    鍦?Show directories for:"鐨?Include files"閫夐」涓柊澧炵洰褰?C:\openssl\include"錛?br>      "Library files"閫夋嫨涓柊澧炵洰褰?C:\openssl\lib"銆?/p> <p>    鐒跺悗鍦ㄩ渶瑕侀摼鎺penSSL鍑芥暟搴撶殑宸ョ▼涓姞鍏ュ涓嬩袱鍙ワ細<br>    #pragma comment(lib, "ssleay32.lib")<br>    #pragma comment(lib, "libeay32.lib")<br>    鍏朵綔鐢ㄦ槸灝哋penSSL鎵闇鐨勫簱瀵煎叆宸ョ▼涓?/p> <p>涓夈侀棶棰?/p> <p>    鎴戝湪閾炬帴OpenSSL鐨勯潤鎬佸嚱鏁板簱鏃墮亣鍒扮被浼間互涓嬬殑闂錛?br>    Linking...<br>    msvcrt.lib(MSVCRT.dll) : error LNK2005: _strchr already defined in libcmtd.lib(strchr.obj)<br>    ...<br>   <br>    榪欐槸鐢變簬OpenSSL鐨勯潤鎬佸嚱鏁板簱浣跨敤鐨勬槸浜哣C鐨勫綰跨▼DLL鐨凴elease鐗堟湰錛岃屾垜鐨勭▼搴忎嬌鐢ㄤ簡澶氱嚎紼嬮潤鎬侀摼鎺ョ殑Release鐗堟湰銆?/p> <p>    璋冩暣OpenSSL鐨勯潤鎬佸嚱鏁板簱浣跨敤鐨勫簱鍑芥暟鐗堟湰鍗沖彲錛岃皟鏁磋繃紼嬪涓嬶細<br>   <br>    緙栬緫鏂囦歡 ms\nt.mak錛屽皢璇ユ枃浠剁19琛?br>    "CFLAG= /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -D_CRT_SECURE_NO_DEPRECATE -</p> <p>D_CRT_NONSTDC_NO_DEPRECATE /Fdout32 -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_TLSEXT -DOPENSSL_NO_KRB5 -</p> <p>DOPENSSL_NO_DYNAMIC_ENGINE"<br>    涓殑"/MD"淇敼涓?/MT"銆傜劧鍚庨噸鏂扮紪璇戝畨瑁匫penSSL鍗沖彲銆?/p> <p>鍥涖侀檮褰曪細鍦╒C涓C/C++ 榪愯鏃跺簱涓嶅悓鐗堟湰緙栬瘧鎸囦護璇存槑<br>    銆婂湪VC涓C/C++ 榪愯鏃跺簱涓嶅悓鐗堟湰緙栬瘧鎸囦護璇存槑銆?<a ><font color=#6aa50d>http://blog.yesky.com/271/dgkang/1737771.shtml</font></a>)涓鏂囦腑璇︾粏浠嬬粛浜嗚繛鎺ヤ笉鍚岀増鏈簱鐨勭紪璇戞寚浠ゅ涓嬶細<br>    C Runtime Library錛?br>        /MD        MSVCRT.LIB     澶氱嚎紼婦LL鐨凴elease鐗堟湰<br>        /MDd       MSVCRTD.LIB    澶氱嚎紼婦LL鐨凞ebug鐗堟湰<br>        /MT        LIBCMT.LIB     澶氱嚎紼嬮潤鎬侀摼鎺ョ殑Release鐗堟湰<br>        /MTd       LIBCMTD.LIB    澶氱嚎紼嬮潤鎬侀摼鎺ョ殑Debug鐗堟湰<br>        /clr       MSVCMRT.LIB    鎵樼浠g爜鍜岄潪鎵樼浠g爜娣峰悎<br>        /clr:pure  MSVCURT.LIB    綰墭綆′唬鐮?br>    C++ Standard Library錛?br>        /MD       MSVCPRT.LIB     澶氱嚎紼婦LL鐨凴elease鐗堟湰<br>        /MDd      MSVCPRTD.LIB    澶氱嚎紼婦LL鐨凞ebug鐗堟湰<br>        /MT       LIBCPMT.LIB     澶氱嚎紼嬮潤鎬侀摼鎺ョ殑Release鐗堟湰<br>        /MTd      LIBCPMTD.LIB    澶氱嚎紼嬮潤鎬侀摼鎺ョ殑Debug鐗堟湰</p> </div> </div> </div> <img src ="http://www.shnenglu.com/killsound/aggbug/102374.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/killsound/" target="_blank">灝忎笉鎳俕_^</a> 2009-12-02 10:51 <a href="http://www.shnenglu.com/killsound/articles/102374.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>(杞?灝?Win32 C/C++ 搴旂敤紼嬪簭榪佺Щ鍒?POWER 涓婄殑 Linux錛岀 3 閮ㄥ垎: 淇″彿 http://www.shnenglu.com/killsound/articles/81951.html灝忎笉鎳俕_^灝忎笉鎳俕_^Tue, 05 May 2009 08:17:00 GMThttp://www.shnenglu.com/killsound/articles/81951.htmlhttp://www.shnenglu.com/killsound/comments/81951.htmlhttp://www.shnenglu.com/killsound/articles/81951.html#Feedback0http://www.shnenglu.com/killsound/comments/commentRss/81951.htmlhttp://www.shnenglu.com/killsound/services/trackbacks/81951.html闃呰鍏ㄦ枃

灝忎笉鎳俕_^ 2009-05-05 16:17 鍙戣〃璇勮
]]>
(杞?灝?Win32 C/C++ 搴旂敤紼嬪簭榪佺Щ鍒?POWER 涓婄殑 Linux錛岀 2 閮ㄥ垎: 浜掓枼http://www.shnenglu.com/killsound/articles/81950.html灝忎笉鎳俕_^灝忎笉鎳俕_^Tue, 05 May 2009 08:14:00 GMThttp://www.shnenglu.com/killsound/articles/81950.htmlhttp://www.shnenglu.com/killsound/comments/81950.htmlhttp://www.shnenglu.com/killsound/articles/81950.html#Feedback0http://www.shnenglu.com/killsound/comments/commentRss/81950.htmlhttp://www.shnenglu.com/killsound/services/trackbacks/81950.html闃呰鍏ㄦ枃

灝忎笉鎳俕_^ 2009-05-05 16:14 鍙戣〃璇勮
]]>
(杞?Win32 C/C++ 搴旂敤紼嬪簭榪佺Щ鍒?POWER 涓婄殑 Linux 絎?1 閮ㄥ垎: 榪涚▼銆佺嚎紼嬪拰鍏變韓鍐呭瓨鏈嶅姟http://www.shnenglu.com/killsound/articles/81949.html灝忎笉鎳俕_^灝忎笉鎳俕_^Tue, 05 May 2009 08:12:00 GMThttp://www.shnenglu.com/killsound/articles/81949.htmlhttp://www.shnenglu.com/killsound/comments/81949.htmlhttp://www.shnenglu.com/killsound/articles/81949.html#Feedback0http://www.shnenglu.com/killsound/comments/commentRss/81949.htmlhttp://www.shnenglu.com/killsound/services/trackbacks/81949.html闃呰鍏ㄦ枃

灝忎笉鎳俕_^ 2009-05-05 16:12 鍙戣〃璇勮
]]>
鏄庢槑鐧界櫧Inf鏂囦歡http://www.shnenglu.com/killsound/articles/27064.html灝忎笉鎳俕_^灝忎笉鎳俕_^Wed, 27 Jun 2007 07:35:00 GMThttp://www.shnenglu.com/killsound/articles/27064.htmlhttp://www.shnenglu.com/killsound/comments/27064.htmlhttp://www.shnenglu.com/killsound/articles/27064.html#Feedback0http://www.shnenglu.com/killsound/comments/commentRss/27064.htmlhttp://www.shnenglu.com/killsound/services/trackbacks/27064.html杞澆]鏄庢槑鐧界櫧Inf鏂囦歡

淇℃伅鏉ユ簮錛氱綉緇?br>
INF鏂囦歡鍏ㄧОInformation File鏂囦歡錛屾槸Winodws鎿嶄綔緋葷粺涓嬬敤鏉ユ弿榪拌澶囨垨鏂囦歡絳夋暟鎹俊鎭殑鏂囦歡銆侷NF鏂囦歡鏄敱鏍囧噯鐨凙SCII鐮佺粍鎴愶紝鎮ㄥ彲浠ョ敤浠諱綍涓嬈炬枃瀛楃紪杈戝櫒鏌ョ湅淇敼鍏朵腑鐨勫唴瀹廣備竴鑸垜浠繪槸璁や負INF鏂囦歡鏄郴緇熻澶囩殑椹卞姩紼嬪簭錛屽叾瀹炶繖鏄敊璇殑璁よ瘑錛學indows涔嬫墍浠ュ湪瀹夎鏌愪簺紜歡鐨勯┍鍔ㄦ椂鎻愮ず闇瑕両NF鏂囦歡鏄洜涓篒NF鏂囦歡涓鴻璁懼鎻愪緵浜嗕竴涓叏闈㈡弿榪扮‖浠跺弬鏁板拰鐩稿簲椹卞姩鏂囦歡(DLL鏂囦歡)鐨勪俊鎭傚氨濂芥瘮鎴戜滑鐪嬬潃璇存槑涔﹀畨瑁呯數鑴戠‖浠朵竴鏍鳳紝鎴戜滑灝辨槸Windows緋葷粺錛岃鏄庝功灝辨槸INF鏂囦歡銆侷NF鏂囦歡鍔熻兘闈炲父寮哄ぇ錛屽嚑涔庤兘瀹屾垚鏃ュ父鎿嶄綔鐨勬墍鏈夊姛鑳姐傛偍鍙互鎶婂畠鐪嬫垚鏄疻indows緋葷粺搴曚笅鐨勮秴寮烘壒鍒濈悊銆傝鐔熺粌鎺屾彙鍜岀悊瑙g敋鑷蟲槸緙栧啓INF鏂囦歡闇瑕佸鍏跺唴閮ㄧ粨鏋勬湁鐩稿綋鐨勮璇嗐備笅闈㈠氨璁╂垜浠潵娣卞叆鍒癐NF鏂囦歡涓殑鍐呴儴涓紿ュ叾鐪熼潰璨屽惂錛?br>
INF鏂囦歡鐨勭粍鎴愭湁鑺?Sections)錛岄敭(Key)鍜屽?value)涓夐儴鍒嗐?br>鍏抽敭鑺傛湁
[Version]鐗堟湰鎻忚堪淇℃伅錛屼富瑕佺敤浜庣増鏈帶鍒躲?br>[Strings]瀛楃涓蹭俊鎭紝鐢ㄤ簬甯擱噺瀹氫箟銆?br>[DestinationDirs]瀹氫箟緋葷粺璺緞淇℃伅銆?br>[SourceDisksNames]鎸囨槑婧愮洏淇℃伅銆?br>[SourceDisksNames]鎸囨槑婧愮洏鏂囦歡鍚嶃?br>[DefaultInstall]寮濮嬫墽琛屽畨瑁呫?br>鍏跺畠鐨勮妭鍙互鑷畾涔夛紝涓嬮潰鐢ㄤ竴瀹炰緥鏉ュ叿浣撹瑙c?br>

紼嬪簭浠g爜
[Version]
Signature=$Chicago$
Provider=%Author%

[Strings]
Product="娣誨姞鏂囦歡鍏寵仈婕旂ず"
Version="1.0"
Author="Xunchi"
Copyright="Copyright 2005"
CustomFile="inf" ;淇敼鎮ㄩ渶瑕佺殑鏂囦歡鍚嶅悗緙
Program="NOTEPAD.EXE" ;淇敼鎮ㄩ渶瑕佸叧鑱旂殑搴旂敤紼嬪簭鍚?br>
[Add.Reg]
HKCR,"."%CustomFile%,"",FLG_ADDREG_TYPE_SZ ,%CustomFile%File
HKCR,%CustomFile%File,"",FLG_ADDREG_TYPE_SZ,瀹夎淇℃伅
HKCR,%CustomFile%"File\shell","",FLG_ADDREG_TYPE_SZ,open
HKCR,%CustomFile%"File\shell\open\command","",FLG_ADDREG_TYPE_SZ,%program% %1

[DefaultInstall]
AddReg=Add.Reg

銆銆鍦╗Version]鑺備腑"Signature"欏瑰畾涔変簡璇NF鏂囦歡闇瑕佽繍琛屽湪浣曠鎿嶄綔緋葷粺鐗堟湰涓傛湁$Windows NT$, $Chicago$, or $Windows 95$涓変釜鍊間緵閫夋嫨錛屼竴鑸夋嫨$Chicago$鍗沖彲銆傞」Provider涓畾涔変簡璇ユ枃浠剁殑鍒涗綔鏉ユ簮錛?Author%鎸囧紩鐢ˋuthor欏圭殑鍊箋傛偍涔熷彲鑷畾鍏跺畠欏規潵鎻忚堪璇NF鏂囦歡鐨勭増鏈俊鎭傝INF鏂囦歡鐨勪綔鐢ㄦ槸鍏寵仈鏂囦歡錛屾墍浠ヤ富瑕佹槸瀵規敞鍐岃〃鐨勬搷浣滐紝鎴戜滑鏉ョ湅[Add.Reg]鑺傦紝鍏卞洓鏉¤鍙ワ紝鏍煎紡閮芥槸涓鏍楓侶KCR琛ㄧず鏍笻KEY_CLASSES_ROOT錛岀浜屼釜鍙傛暟鏄瓙閿殑璺緞鍚嶏紝絎笁涓弬鏁版槸琛ㄦ槑鍊肩殑綾誨瀷錛屾渶鍚庢槸鍊?鍏蜂綋瑙侀檮琛?銆備互涓婇兘鏄鎿嶄綔鐨勫畾涔変笌榪囩▼錛屽湪鑺俒DefaultInstall]涓槸寮濮嬫墽琛岃瀹夎鐨勬祦紼嬶紝AddReg琛ㄦ槑鏄娉ㄥ唽琛ㄨ繘琛屾搷浣滐紝鎿嶄綔瀵硅薄鏄疉dd.Reg鑺備腑鐨勫畾涔夈傚鏋滄偍鎶夾ddReg鎹㈡垚DelReg鍒欐槸鍒犻櫎娉ㄥ唽琛ㄤ腑鐨勯敭鍊箋傚綋榧犳爣鍗曞嚮璇NF鏂囦歡鍦ㄥ脊鍑虹殑鑿滃崟涓夋嫨“瀹夎”灝卞紑濮嬫墽琛屾偍鎵瀹氫箟鐨勬搷浣溿傝紺轟緥鍦ㄧ郴緇熺殑INF鏂囦歡鍙抽敭鑿滃崟涓鍔犱簡鏌ョ湅緙栬緫鍔熻兘騫惰緗簡榛樿鍔ㄤ綔錛屽洜涓哄湪瀹夎浜嗕笉浜嗚В鐨処NF鏂囦歡鏈夊彲鑳藉緋葷粺浜х敓涓嶈壇鐨勫獎鍝嶏紝榪欐牱鍙屽嚮鏂囦歡灝卞彲鎵撳紑緙栬緫璇ユ枃浠朵簡銆?br>

銆銆鍐嶇湅鐪婭NF鏂囦歡鍦ㄦ枃浠舵搷浣滄柟闈㈢殑鑳藉姏鍚с傝鐪嬩笅闈㈢殑涓涓緥瀛愩?br>
紼嬪簭浠g爜
[Version]
Signature=$Chicago$
Provider=%Author%
[Strings]
Product="鏂囦歡澶嶅埗鍜屽畨瑁呮紨紺?
Version="1.0"
Author="Xunchi"
Copyright="Copyright 2005"

[FileList]
ProcessList.exe ;姝ゆ枃浠跺凡鍦ㄥ綋鍓嶇洰褰曚笅錛屼笅鍚屻?br>
[FileList1]
Wordpad.exe
[DestinationDirs]
FileList=11 ;瀹夎鍒癢indows鐨勭郴緇熺洰褰?br>FileList1=10 ;瀹夎鍒癢indows鐩綍
[DefaultInstall]
Copyfiles=FileList,FileList1

銆銆鐩稿悓鐨勮妭鐨勪綔鐢ㄤ笌涓婁竴渚嬬被浼鹼紝璇鋒敞鎰忔柊鍑虹幇鐨勮妭[FileList]錛岃繖鏄垜鑷畾涔夌殑鑺傚悕錛屽畠琛ㄧず浜嗕竴涓枃浠剁粍錛孾FileList1]涔熺被浼箋傚湪鑺俒DestinationDirs]涓渶瀹氫箟姣忎釜鏂囦歡緇勫鍒跺埌鐨勭洰褰?鍚勪釜甯擱噺鐨勬剰涔夎闄勮〃)銆侰opyfiles鎸囨槑浜嗛渶瑕佽繘琛屽鍒剁殑鏂囦歡緇勩?br>銆銆INF鏂囦歡鐨勬搷浣滆繕鍖呮嫭鏈嶅姟(NT緋葷粺)紼嬪簭鐨勫畨瑁呭拰鍗歌澆錛孖NI鏂囦歡鐨勮漿鎹㈢瓑銆傜敱浜庤繖浜涙搷浣滈兘姣旇緝鐨勫鏉傚拰綣佺悙錛屼笖鏈変竴瀹氱殑鍗遍櫓鎬ф晠涓嬫鏈夋満浼氬啀鍚戝ぇ瀹惰繘琛屾繁鍏ユ帰璁ㄣ?br>銆銆鏈鍚庢垜浠潵鐪嬩竴涓婭NF鏂囦歡鐨勬墽琛屾満鍒訛紝榪欐椂浣犱篃璁歌闂笉灝辨槸綆鍗曠殑鎵ц涓涓?#8220;瀹夎”鍚楋紵鐭ュ叾鐒朵笉鐭ュ叾鎵浠ョ劧鐭ヨ瘑姘村鉤鏄笉浼氭彁楂樼殑銆傚湪“鏂囦歡澶歸夐」”涓殑“鏂囦歡綾誨瀷”鎵懼埌INF鏂囦歡鐨?#8220;瀹夎”鍛戒護鐪嬪埌涓涓插懡浠ゃ?#8220;rundll32.exe setupapi,InstallHinfSection DefaultInst_all 132 %1”瀹冭〃紺轟簡榪愯Dll鏂囦歡setupapi.dll涓殑鍛戒護InstallHinfSection騫朵紶閫掔粰瀹冭搗濮嬭妭鐨勫悕瀛?nbsp;DefaultInstall銆傚彲瑙佽搗濮嬭妭鏄彲浠ヨ嚜瀹氫箟鐨勩侷NF鏂囦歡鐨勬墽琛屼篃鍙敤鍦ㄥ悇縐嶆敮鎸丄PI璋冪敤鐨勭紪紼嬪伐鍏蜂腑銆傝嚦姝NF鏂囦歡鐨勭粨鏋勫拰榪愯鏈哄埗鎴戜滑宸插熀鏈簡瑙o紝鐜板湪灝辮浣犵殑鎬濈淮寮鍔ㄨ搗鏉ワ紝璁╁畠鏇村ソ鐨勪負鎴戜滑宸ヤ綔鍚с?br>

娉ㄥ唽琛ㄦ搷浣滅殑甯擱噺瀹氫箟錛?br>----------------------------------------------------------
甯擱噺 鏍瑰?nbsp;
HKCR HKEY_CLASSES_ROOT.
HKCU HKEY_CURRENT_USER.
HKLM HKEY_LOCAL_MACHINE.
HKU HKEY_USERS.
----------------------------------------------------------- 
FLG_ADDREG_APPEND 鍦ㄥ瀛楃涓插悗娣誨姞瀛楃
FLG_ADDREG_TYPE_SZ 瀛楃綾誨瀷
FLG_ADDREG_TYPE_MULTI_SZ 瀛楃涓茬被鍨?br>FLG_ADDREG_TYPE_EXPAND_SZ 鎵╁睍瀛楃涓茬被鍨?br>FLG_ADDREG_TYPE_BINARY 浜岃繘鍒跺?br>FLG_ADDREG_TYPE_DWORD DWord鍊?br>FLG_ADDREG_TYPE_NONE NULL鍊?br>----------------------------------------------------------


[DestinationDirs]鑺備腑鎵瀹氫箟鐨勫父閲忚礬寰?br>----------------------------------------------------------
01 婧愮洰褰?鍚庤窡璺緞)
10 Windows鐩綍
11 Windows緋葷粺鐩綍
12 椹卞姩鐩綍
17 INF鏂囦歡鐩綍
18 甯姪鏂囦歡鐩綍
20 瀛椾綋鐩綍
21 鏍圭洰褰?br>24 搴旂敤紼嬪簭鐩綍
25 鍏變韓鐩綍
30 褰撳墠鏍圭洰褰?br>50 System鐩綍
51 Spool 鐩綍
52 Spool 椹卞姩鐩綍
53 鐢ㄦ埛閰嶇疆鐩綍
----------------------------------------------------------

[DefaultInstall]鑺備腑瀹氫箟鐨勬搷浣?br>----------------------------------------------------------
LogConfig Log鏃ュ織鏂囦歡閰嶇疆
Copyfiles 澶嶅埗鏂囦歡
Renfiles 鏂囦歡鏀瑰悕
Delfiles 鍒犻櫎鏂囦歡
UpdateInis 鏇存柊Inis
UpdateIniFields 鏇存柊Ini瀛楁
AddReg 娣誨姞娉ㄥ唽欏?br>DelReg 鍒犻櫎娉ㄥ唽欏?br>Ini2Reg Ini鏂囦歡杞崲涓篟eg鏂囦歡
-----------------------------------------------------------


灝忎笉鎳俕_^ 2007-06-27 15:35 鍙戣〃璇勮
]]>
MDI搴旂敤紼嬪簭鍓栨瀽(杞?http://www.shnenglu.com/killsound/articles/20375.html灝忎笉鎳俕_^灝忎笉鎳俕_^Thu, 22 Mar 2007 11:34:00 GMThttp://www.shnenglu.com/killsound/articles/20375.htmlhttp://www.shnenglu.com/killsound/comments/20375.htmlhttp://www.shnenglu.com/killsound/articles/20375.html#Feedback0http://www.shnenglu.com/killsound/comments/commentRss/20375.htmlhttp://www.shnenglu.com/killsound/services/trackbacks/20375.html綾誨悕 浣滅敤
CMDITestApp 媧劇敓浜嶤WinApp鐨勫簲鐢ㄧ▼搴忕被銆?
CMainFrame 媧劇敓浜嶤MDIFrameWnd鐨凪DI妗嗘灦紿楀彛綾匯?
CMDITestDoc 媧劇敓浜嶤Document鐨勬枃妗g被銆?
CChildFrame 媧劇敓浜嶤MDIChildWnd鐨凪DI瀛愮獥鍙g被銆?
CMDITestView 媧劇敓浜嶤View鐨勬枃妗f樉紺虹被銆?
鍦ㄨ繍琛屾椂鍒伙紝CMainFrame,聽CChildFrame,聽CMDITestView鐨勭獥鍙e叧緋誨涓嬮潰鐨勮〃鏍肩ず鍑猴細
CMainFrame
錛圡enu,聽Toolbar聽鈥︼級
MDIClient

CChildFrame
CMDITestView
聽聽聽pDocument聽=聽*CMDITestDoc聽聽聽(甯︽湁鏂囨。鐨勬寚閽?





[StatusBar]
鍏朵腑錛屾渶澶栧眰鐨勬槸欏跺眰紿楀彛CMainFrame錛岄噷闈㈠寘鍚竴涓狹DIClient紿椔犲彛銆侰ChildFrame鍋氫負瀛愮獥鍙e寘鍚簬MDIClient涓紙鍙互鍖呭惈澶毬犱釜錛夛紝CChildFrame閲岄潰鍒欐槸鐪熷疄鐨勬枃妗h〃紺虹獥鍙MDITestView浜嗐?

鎴戜滑浠庤繖閲屽紑濮嬶細
//聽CMDITestApp聽鍒濆鍖?
BOOL聽CMDITestApp::InitInstance()

鍋氫負CWinApp鐨勬淳鐢熺被錛岄氬父闇瑕侀噸杞絀nitInstance(),聽ExitInstance()涓や釜鍑芥暟錛屼互瀹屾垚搴斅犵敤鐨勫垵濮嬪寲鍜岄鍑恒傛垜浠幇鍦ㄥ叧蹇僆nitInstance涓叧浜庢枃妗fā鏉褲佺獥鍙e鐞嗙殑閮ㄥ垎錛岃屽拷鐣ユ帀涓浜汣ommonControl,聽OLE鍒濆鍖栭儴鍒嗐?

鏁翠釜InitInstance浠g爜濡備笅錛?
BOOL聽CMDITestApp::InitInstance()
{
聽聽聽聽聽InitCommonControls();聽聽聽聽聽聽聽//聽榪欓噷鍒犲噺浜嗗ぇ閲忔敞閲婂拰閿欒澶勭悊
聽聽聽聽聽CWinApp::InitInstance();
聽聽聽聽聽AfxOleInit();
聽聽聽聽聽AfxEnableControlContainer();
聽聽聽聽聽SetRegistryKey(_T("搴旂敤紼嬪簭鍚戝鐢熸垚鐨勬湰鍦板簲鐢ㄧ▼搴?);
聽聽聽聽聽LoadStdProfileSettings(4);聽聽//聽鍔犺澆鏍囧噯聽INI聽鏂囦歡閫夐」(鍖呮嫭聽MRU)

聽聽聽聽聽TRACE("Before聽CMultiDocTemplate\n";
聽聽聽聽聽//聽娉ㄥ唽搴旂敤紼嬪簭鐨勬枃妗fā鏉褲傛枃妗fā聽鏉?
聽聽聽聽聽//聽灝嗙敤浣滄枃妗c佹鏋剁獥鍙e拰瑙嗗浘涔嬮棿鐨勮繛聽鎺?
聽聽聽聽聽CMultiDocTemplate*聽pDocTemplate;
聽聽聽聽聽pDocTemplate聽=聽new聽CMultiDocTemplate(IDR_MDITestTYPE,
聽聽聽聽聽聽聽聽聽RUNTIME_CLASS(CMDITestDoc),
聽聽聽聽聽聽聽聽聽RUNTIME_CLASS(CChildFrame),聽//聽鑷畾涔壜燤DI聽瀛愭鏋?
聽聽聽聽聽聽聽聽聽RUNTIME_CLASS(CMDITestView));
聽聽聽聽聽if聽(!pDocTemplate)
聽聽聽聽聽聽聽聽聽return聽FALSE;
聽聽聽聽聽TRACE("Before聽AddDocTemplate\n";
聽聽聽聽聽AddDocTemplate(pDocTemplate);

聽聽聽聽聽//聽鍒涘緩涓宦燤DI聽妗嗘灦紿楀彛
聽聽聽聽聽TRACE("Before聽new聽CMainFrame\n";
聽聽聽聽聽CMainFrame*聽pMainFrame聽=聽new聽CMainFrame;
聽聽聽聽聽TRACE("Before聽pMainFrame->LoadFrame\n";
聽聽聽聽聽if聽(!pMainFrame聽||聽!pMainFrame->LoadFrame(IDR_MAINFRAME))
聽聽聽聽聽聽聽聽聽return聽FALSE;
聽聽聽聽聽m_pMainWnd聽=聽pMainFrame;

聽聽聽聽聽TRACE("Before聽ParseCommandLine\n";
聽聽聽聽聽CCommandLineInfo聽cmdInfo;
聽聽聽聽聽ParseCommandLine(cmdInfo);

聽聽聽聽聽//聽璋冨害鍦ㄥ懡浠よ涓寚瀹氱殑鍛戒護銆傚聽鏋?
聽聽聽聽聽//聽鐢?RegServer銆?Register銆?Unregserver聽鎴柭?Unregister聽鍚姩搴旂敤紼嬪簭錛屽垯榪斿洖聽FALSE銆?
聽聽聽聽聽TRACE("Before聽ProcessShellCommand\n";
聽聽聽聽聽if聽(!ProcessShellCommand(cmdInfo))
聽聽聽聽聽聽聽聽聽return聽FALSE;

聽聽聽聽聽TRACE("Before聽pMainFrame->ShowWindow\n";
聽聽聽聽聽//聽涓葷獥鍙e凡鍒濆鍖栵紝鍥犳鏄劇ず瀹冨茍瀵瑰叾榪涜鏇綽犳柊
聽聽聽聽聽pMainFrame->ShowWindow(m_nCmdShow);
聽聽聽聽聽TRACE("Before聽pMainFrame->UpdateWindow\n";
聽聽聽聽聽pMainFrame->UpdateWindow();
聽聽聽聽聽return聽TRUE;
}

涓轟簡鐮旂┒鏁翠釜鍒涘緩榪囩▼錛屾垜鍦ㄥ叾涓坊鍔犱簡涓浜汿RACE鏉ヨ窡韙垱寤洪『搴忋?

蹇界暐鎺夊紑濮嬬殑涔變竷鍏碂鐨勫垵濮嬪寲錛屼粠CMultiDocTemplate寮濮嬶細
聽聽聽聽聽CMultiDocTemplate*聽pDocTemplate聽=聽new聽CMultiDocTemplate(IDR_MDITestTYPE,
聽聽聽聽聽聽聽聽聽RUNTIME_CLASS(CMDITestDoc),
聽聽聽聽聽聽聽聽聽RUNTIME_CLASS(CChildFrame),聽//聽鑷畾涔壜燤DI聽瀛愭鏋?
聽聽聽聽聽聽聽聽聽RUNTIME_CLASS(CMDITestView));
聽聽聽聽聽AddDocTemplate(pDocTemplate);
(浣滀簡涓鐐圭偣綆鍖?
榪欓噷棣栧厛鍒涘緩浜嗕竴涓狢MultiDocTemplate聽--聽new聽CMainFrame;
聽聽聽聽聽if聽(!pMainFrame聽||聽!pMainFrame->LoadFrame(IDR_MAINFRAME))
聽聽聽聽聽聽聽聽聽return聽FALSE;


鍏朵腑錛岄渶瑕佺爺絀剁殑鏄疞oadFrame鐨勫疄鐜幫紝浠ュ強閲岄潰閮藉仛浜嗕簺浠涔堛傛垜浠◢鍚庣爺絀躲?

澶勭悊鍛戒護琛岋紝鍦ㄨ繖閲岀涓涓┖鏂囨。琚緩绔嬪嚭鏉ワ細
聽聽聽聽聽CCommandLineInfo聽cmdInfo;
聽聽聽聽聽ParseCommandLine(cmdInfo);

聽聽聽聽聽//聽璋冨害鍦ㄥ懡浠よ涓寚瀹氱殑鍛戒護銆傚鏋滅敤聽/RegServer銆?Register銆?Unregserver聽鎴柭?Unregister聽鍚姩搴旂敤紼嬪簭錛屽垯榪斿洖聽FALSE銆?
聽聽聽聽聽if聽(!ProcessShellCommand(cmdInfo))聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽?聽榪欓噷鍒涘緩鍑哄垵濮嬬┖鏂嚶犳。
聽聽聽聽聽聽聽聽聽return聽FALSE;

鎴戜滑涓浼氫細閲嶇偣鐮旂┒ProcessShellCommand銆?

鏈鍚庯紝鏄劇ず涓葷獥鍙o細
聽聽聽聽聽pMainFrame->ShowWindow(m_nCmdShow);
聽聽聽聽聽pMainFrame->UpdateWindow();

鑷蟲錛學inApp::InitInstance()瀹屾垚浜嗚嚜宸辯殑宸ヤ綔銆?

涓婇潰閬楃暀浜嗕笁涓緟鐮旂┒鐨勫垎鏀紝璁╂垜浠幇鍦ㄥ幓鐮旂┒瀹冧滑錛?
1銆伮犅燙DocTemplate
2銆伮犅燙FrameWnd::LoadFrame
3銆伮犅燙Wnd::ProcessShellCommand



鐮旂┒CDocTemplate

鎴戜滑鐨勪緥瀛愪腑鏄瀯閫犱簡涓涓狢MultiDocTemplate錛屽畠鏄粠CDocTemplate媧劇敓鑰屾潵錛屾墍浠ユ垜浠富聽瑕佺爺絀禖DocTemplate銆?
CDocTemplate鐨勫嚑涓叧閿睘鎬у垪琛ㄥ涓嬶細
聽聽聽聽聽CRuntimeClass*聽m_pDocClass;聽聽聽聽聽聽聽聽聽//聽class聽for聽creating聽new聽documents
聽聽聽聽聽CRuntimeClass*聽m_pFrameClass;聽聽聽聽聽聽聽//聽class聽for聽creating聽new聽frames
聽聽聽聽聽CRuntimeClass*聽m_pViewClass;聽聽聽聽聽聽聽聽//聽class聽for聽creating聽new聽views

鍏朵腑錛?
m_pDocClass 琛ㄧず鏂囨。綾葷被鍨嬶紝鍦ㄦ渚嬪瓙涓氨鏄疌MDITestDoc
m_pFrameClass 琛ㄧず瀹圭撼View紿楀彛鐨勬鏋剁獥鍙g被綾誨瀷錛屾渚嬩腑涓篊ChildFrame
m_pViewClass 琛ㄧず鏄劇ず鏂囨。鐨刅iew瑙嗙被綾誨瀷錛屾渚嬩腑涓篊MDITestView

鎴戜滑鍙互榪欐牱璁や負錛孋DocTemplate鐢ㄤ簬鎻忚堪Frame-View-Doc鐨勫叧緋匯傚綋鐒跺畠榪樻湁涓澶у爢鍒殑灞灺犳э紝鎴戜滑鏆傛椂鍏堝拷鐣ャ?

涓浼氳繕浼氱湅鍒癈DocTemplate鐨勫垱寤烘枃妗c佹鏋躲佽鐨勮繃紼嬶紝鏀懼湪ProcessShellCommand涓爺絀躲?


鐮旂┒LoadFrame

璁╂垜浠戶緇爺絀禖FrameWnd::LoadFrame鏄庝箞榪愪綔鐨勩備嬌鐢ㄧ殑鏂規硶鏄窡韙繘鍏ャ傘傘?
BOOL聽CMDIFrameWnd::LoadFrame(UINT聽nIDResource,聽DWORD聽dwDefaultStyle,
聽聽聽聽聽CWnd*聽pParentWnd,聽CCreateContext*聽pContext)
{
聽聽聽聽聽//聽璋冪敤鍩虹被聽CFrameWnd聽鐨劼燣oadFrame,聽pContext聽鍦ㄥ垱寤轟富紿楀彛鏃堵?聽NULL
聽聽聽聽聽//聽聽聽pParentWnd聽=聽NULL
聽聽聽聽聽if聽(!CFrameWnd::LoadFrame(nIDResource,聽dwDefaultStyle,
聽聽聽聽聽聽聽pParentWnd,聽pContext))
聽聽聽聽聽聽聽聽聽return聽FALSE;

聽聽聽聽聽//聽save聽menu聽to聽use聽when聽no聽active聽MDI聽child聽window聽is聽present
聽聽聽聽聽ASSERT(m_hWnd聽!=聽NULL);
聽聽聽聽聽//聽涓葷獥鍙e甫鏈夎彍鍗曪紝鎵浠ャ傘傘?
聽聽聽聽聽m_hMenuDefault聽=聽::GetMenu(m_hWnd);
聽聽聽聽聽if聽(m_hMenuDefault聽==聽NULL)
聽聽聽聽聽聽聽聽聽TRACE(traceAppMsg,聽0,聽"Warning:聽CMDIFrameWnd聽without聽a聽default聽menu.\n";
聽聽聽聽聽return聽TRUE;
}
娉ㄦ剰錛屾垜浠殑MDITest聽Application鐨勪富紿楀彛CMainFrame鏄犱粠CMDIFrameWnd媧劇敓鐨勶紝鎵浠ヨ繘鍏ュ埌榪欓噷錛屽弬鑰冧唬鐮佷腑綰㈣壊鐨勬敞閲婇儴鍒嗐傜戶緇窡韙繘鍏FrameWnd::LoadFrame銆?

BOOL聽CFrameWnd::LoadFrame(UINT聽nIDResource,聽DWORD聽dwDefaultStyle,
聽聽聽聽聽CWnd*聽pParentWnd,聽CCreateContext*聽pContext)
{
聽聽聽聽聽//聽only聽do聽this聽once
聽聽聽聽聽ASSERT_VALID_IDR(nIDResource);聽聽聽聽//聽nIDResource聽=聽128,聽IDR_MAINFRAME
聽聽聽聽聽ASSERT(m_nIDHelp聽==聽0聽||聽m_nIDHelp聽==聽nIDResource);

聽聽聽聽聽m_nIDHelp聽=聽nIDResource;聽聽聽聽//聽ID聽for聽help聽context聽(+HID_BASE_RESOURCE)

聽聽聽聽聽CString聽strFullString;
聽聽聽聽聽if聽(strFullString.LoadString(nIDResource))聽聽//聽=聽"MDITest"
聽聽聽聽聽聽聽聽聽AfxExtractSubString(m_strTitle,聽strFullString,聽0);聽聽聽聽//聽鍙栧緱絎竴涓瓙涓?

聽聽聽聽聽VERIFY(AfxDeferRegisterClass(AFX_WNDFRAMEORVIEW_REG));

聽聽聽聽聽//聽attempt聽to聽create聽the聽window
聽聽聽聽聽//聽GetIconWndClass聽浼氳皟鐢爒irtual聽PreCreateWindow聽鍑芥暟錛屽埆澶勪篃浼氳皟鐢紝浠庤?
聽聽聽聽聽//聽浣垮緱瀛愮被鐨凱reCreateWindow聽灝嗚璋冪敤澶氭
聽聽聽聽聽LPCTSTR聽lpszClass聽=聽GetIconWndClass(dwDefaultStyle,聽nIDResource);
聽聽聽聽聽CString聽strTitle聽=聽m_strTitle;
聽聽聽聽聽//聽璋冪敤聽CFrameWnd::Create()聽瀹為檯鍒涘緩鍑虹獥聽鍙c?
聽聽聽聽聽//聽娉ㄦ剰錛氬湪榪欓噷灝嗙粰聽CMainFrame聽鍙戦伮燱M_CREATE聽絳夊涓秷鎭偮犺Е鍙懧燙MainFrame聽鐨?
聽聽聽聽聽//聽聽聽OnCreate聽澶勭悊絳夈?
聽聽聽聽聽if聽(!Create(lpszClass,聽strTitle,聽dwDefaultStyle,聽rectDefault,
聽聽聽聽聽聽聽pParentWnd,聽MAKEINTRESOURCE(nIDResource),聽0L,聽pContext))
聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽return聽FALSE;聽聽聽//聽will聽self聽destruct聽on聽failure聽normally
聽聽聽聽聽}

聽聽聽聽聽//聽save聽the聽default聽menu聽handle錛屄犲ソ鍍徛燙MDIFrameWnd聽涔熶繚瀛樹簡涓嬈★紵
聽聽聽聽聽ASSERT(m_hWnd聽!=聽NULL);
聽聽聽聽聽m_hMenuDefault聽=聽::GetMenu(m_hWnd);

聽聽聽聽聽//聽load聽accelerator聽resource
聽聽聽聽聽LoadAccelTable(MAKEINTRESOURCE(nIDResource));

聽聽聽聽聽//聽WM_INITIALUPDATE聽鏄燤FC聽鍙戞槑鐨勬秷鎭紝鍙傝鍚幝犻潰鐨勮鏄庛?
聽聽聽聽聽if聽(pContext聽==聽NULL)聽聽聽//聽send聽initial聽update
聽聽聽聽聽聽聽聽聽SendMessageToDescendants(WM_INITIALUPDATE,聽0,聽0,聽TRUE,聽TRUE);

聽聽聽聽聽return聽TRUE;
}

浠ヤ笅鏄粠TN024:聽MFC-Defined聽Messages聽And聽Resources涓娊鍙栫殑閮ㄥ垎璇存槑錛?
WM_INITIALUPDATE
This聽message聽is聽sent聽by聽the聽document聽template聽to聽all聽descendants聽of聽a聽frame聽window聽when聽it聽is聽safe聽for聽them聽to聽do聽their聽initial聽update.聽It聽maps聽to聽a聽call聽to聽CView::OnInitialUpdate聽but聽can聽be聽used聽in聽other聽CWnd-derived聽classes聽for聽other聽one-shot聽updating.
wParam Not聽used聽(0)
lParam Not聽used聽(0)
returns Not聽used聽(0)


褰掔撼涓涓嬶紝LoadFrame涓繘琛屼簡濡備笅浜嬫儏錛?
1銆伮犅犳敞鍐岀獥鍙g被(AfxDeferRegisterClass)
2銆伮犅犲疄闄呭垱寤虹獥鍙?Create)
3銆伮犅犲鐞嗚彍鍗曘佸揩鎹烽敭錛屽彂閫乄M_INITIALUPDATE娑堟伅緇欐墍鏈夊瓙紿楀彛銆傚疄闄呭皢聽鍦–View涓鐞嗘娑堟伅銆傦紙渚嬪錛氬湪ToolBar涓婇潰鏀句竴聽涓狥ormView錛屽彲鑳藉氨鑳芥敹鍒拌繖涓秷鎭茍澶勫埄錛燂級

鑷蟲錛孋MainFrame宸茬粡鎴愬姛鍒涘緩錛岃彍鍗曞凡緇忚杞斤紝宸ュ叿鏉°佺姸鎬佽絳夊凡緇忓湪CMainFrame::OnCreate涓垱寤恒傝鎴戜滑鎺ョ潃鐮旂┒絎竴涓瓙紿楀彛鏄庝箞琚垱寤哄嚭鏉ョ殑錛岃榪囩▼鍜孋MainFrame::LoadFrame姣旇搗鏉ュ氨涓嶉偅涔堢洿鎺ヤ簡銆?


鐮旂┒CWnd::ProcessShellCommand

絎竴涓狹DI瀛愮獥鍙f槸浠庤繖閲岄潰寤虹珛鍑烘潵鐨勶紝榪欏疄鍦ㄦ槸緙轟箯鐩磋鎬с備笉榪嘙FC灝辨槸榪欐牱錛屾病鍔炴硶銆偮?
BOOL聽CWinApp::ProcessShellCommand(CCommandLineInfo&聽rCmdInfo)
{
聽聽聽聽聽BOOL聽bResult聽=聽TRUE;
聽聽聽聽聽switch聽(rCmdInfo.m_nShellCommand)
聽聽聽聽聽{
聽聽聽聽聽case聽CCommandLineInfo::FileNew:
聽聽聽聽聽聽聽聽聽if聽(!AfxGetApp()->OnCmdMsg(ID_FILE_NEW,聽0,聽NULL,聽NULL))聽聽聽聽聽聽//聽鍏抽敭鏄繖閲?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽OnFileNew();
聽聽聽聽聽聽聽聽聽if聽(m_pMainWnd聽==聽NULL)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽bResult聽=聽FALSE;
聽聽聽聽聽聽聽聽聽break;

聽聽聽聽聽case聽CCommandLineInfo::FileOpen:聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽蹇鉸犵暐
聽聽聽聽聽case聽CCommandLineInfo::FilePrintTo:聽聽聽聽聽聽聽聽聽聽聽聽//聽蹇界暐
聽聽聽聽聽case聽CCommandLineInfo::FilePrint:
聽聽聽聽聽case聽CCommandLineInfo::FileDDE:
聽聽聽聽聽case聽CCommandLineInfo::AppRegister:
聽聽聽聽聽case聽CCommandLineInfo::AppUnregister:
聽聽聽聽聽}
聽聽聽聽聽return聽bResult;
}
榪涘叆鍒癙rocessShellCommand錛岃澶勭悊寰堝縐嶄笉鍚屽懡浠わ紝鎴戜滑蹇界暐鍏跺畠鍛戒護錛屽崟鐙湅FileNew閮ㄥ垎銆?
娉ㄦ剰錛氬疄闄呰繘鍏ュ埌浜咥fxGetApp()->OnCmdMsg(ID_FILE_NEW,聽0,聽NULL,聽NULL)涔嬩腑銆?

AfxGetApp()瀹為檯榪斿洖浜咰MDITestApp鐨勫敮涓瀹炰緥錛屽畠浠嶤WinApp聽-聽CWinThread聽-聽CCmdTarget聽-聽CObject聽媧劇敓鑰屾潵銆傛垜浠病鏈夐噸杞絆nCmdMsg錛屾墍浠ヨ繘鍏ュ埌CCmdTarget鐨凮nCmdMsg澶勭悊涓備負浜嗙爺絀訛紝鎴戜滑鍒犲噺浜嗕竴浜涗唬鐮併?
BOOL聽CCmdTarget::OnCmdMsg(UINT聽nID,聽int聽nCode,聽void*聽pExtra,
聽聽聽聽聽AFX_CMDHANDLERINFO*聽pHandlerInfo)
{
聽聽聽聽聽//聽榪欓噷鍒犲噺浜嗕竴浜涗唬鐮?
聽聽聽聽聽//聽determine聽the聽message聽number聽and聽code聽(packed聽into聽nCode)
聽聽聽聽聽const聽AFX_MSGMAP*聽pMessageMap;
聽聽聽聽聽const聽AFX_MSGMAP_ENTRY*聽lpEntry;
聽聽聽聽聽UINT聽nMsg聽=聽0;
聽聽聽聽聽//聽榪欓噷鍒犲噺浜嗕竴浜涗唬鐮侊紝澶勭悊鍚幝爊Msg聽=聽WM_COMMAND
聽聽聽聽聽//聽涓轟簡綆鍖栵紝鍒犲噺浜嗕竴浜涙柇璦絳夈備互涓嬪驚鐜敤浜庢煡鎵懼鐞嗘娑堟伅鐨劼犲叆鍙c?
聽聽聽聽聽for聽(pMessageMap聽=聽GetMessageMap();聽pMessageMap->pfnGetBaseMap聽!=聽NULL;
聽聽聽聽聽聽聽pMessageMap聽=聽(*pMessageMap->pfnGetBaseMap)())
聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽lpEntry聽=聽AfxFindMessageEntry(pMessageMap->lpEntries,聽nMsg,聽nCode,聽nID);
聽聽聽聽聽聽聽聽聽if聽(lpEntry聽!=聽NULL)
聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽鎵懼埌浜嗘秷鎭鐞嗛」鍏ュ彛錛屽垎鍙戞娑堟伅銆?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽return聽_AfxDispatchCmdMsg(this,聽nID,聽nCode,
lpEntry->pfn,聽pExtra,聽lpEntry->nSig,聽pHandlerInfo);
聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽}
聽聽聽聽聽return聽FALSE;聽聽聽//聽鏈壘鍒板垯涓嶅鐞?
}
鏈緇圡FC寰堟剦蹇湴鎵懼埌浜嗕竴涓叆鍙i」錛屄犅犅犅犅犅犅燙WinApp::OnFileNew(void)聽聽聽聽聽聽聽瑕佸鐞嗚繖涓秷鎭傜戶緇繘鍏ュ埌_AfxDispatchCmdMsg涓幓鐪嬬湅銆?

AFX_STATIC聽BOOL聽AFXAPI聽_AfxDispatchCmdMsg(CCmdTarget*聽pTarget,聽UINT聽nID,聽int聽nCode,
聽聽聽聽聽AFX_PMSG聽pfn,聽void*聽pExtra,聽UINT_PTR聽nSig,聽AFX_CMDHANDLERINFO*聽pHandlerInfo)
聽聽聽聽聽聽聽聽聽//聽return聽TRUE聽to聽stop聽routing
{
聽聽聽聽聽union聽MessageMapFunctions聽mmf;
聽聽聽聽聽mmf.pfn聽=聽pfn;
聽聽聽聽聽BOOL聽bResult聽=聽TRUE;聽//聽default聽is聽ok

聽聽聽聽聽if聽(pHandlerInfo聽!=聽NULL)
聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽//聽just聽fill聽in聽the聽information,聽don't聽do聽it
聽聽聽聽聽聽聽聽聽pHandlerInfo->pTarget聽=聽pTarget;
聽聽聽聽聽聽聽聽聽pHandlerInfo->pmf聽=聽mmf.pfn;
聽聽聽聽聽聽聽聽聽return聽TRUE;
聽聽聽聽聽}

聽聽聽聽聽switch聽(nSig)
聽聽聽聽聽{
聽聽聽聽聽case聽AfxSigCmd_v:
聽聽聽聽聽聽聽聽聽//聽normal聽command聽or聽control聽notification
聽聽聽聽聽聽聽聽聽ASSERT(CN_COMMAND聽==聽0);聽聽聽聽聽聽聽聽//聽CN_COMMAND聽same聽as聽BN_CLICKED
聽聽聽聽聽聽聽聽聽ASSERT(pExtra聽==聽NULL);
聽聽聽聽聽聽聽聽聽(pTarget->*mmf.pfnCmd_v_v)();聽聽聽聽聽聽聽聽聽//聽?聽瀹為檯璋冪敤聽pTarget聽鎸囧悜聽鐨勮繖涓垚鍛樺嚱鏁?
聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽//聽涓嬮潰榪樻湁澶ч噺鐨勫縐嵚燗fxSigCmd_xxx錛屽拷鐣ユ帀瀹冧滑銆?
聽聽聽聽聽default:聽聽聽聽//聽illegal
聽聽聽聽聽聽聽聽聽ASSERT(FALSE);聽return聽0;聽break;
聽聽聽聽聽}
聽聽聽聽聽return聽bResult;
}

鍏朵腑聽(pTarget->*mmf.pfn_Cmd_v_v)()聽瀵笴WinApp::OnFileNew()聽浜х敓璋兟犵敤錛宲Target聽=聽CMDITestApp綾誨疄渚嬨傝皟鐢ㄨ繘鍏ュ涓嬶細

void聽CWinApp::OnFileNew()
{
聽聽聽聽聽if聽(m_pDocManager聽!=聽NULL)
聽聽聽聽聽聽聽聽聽m_pDocManager->OnFileNew();
}

榪涘叆榪涘叆鍒癈DocManager::OnFileNew()

void聽CDocManager::OnFileNew()
{
聽聽聽聽聽if聽(m_templateList.IsEmpty())
聽聽聽聽聽聽聽聽聽聽//聽鎻愮ず娌℃湁妯℃澘騫惰繑鍥?
聽聽聽聽聽CDocTemplate*聽pTemplate聽=聽(CDocTemplate*)m_templateList.GetHead();聽聽聽聽//聽絎竴涓?
聽聽聽聽聽if聽(m_templateList.GetCount()聽>聽1)
聽聽聽聽聽聽聽聽聽聽//聽寮瑰嚭涓涓璇濇錛堝緢闅劇湅鐨勶級鎻愮ず鐢ㄦ埛閫夋嫨涓涓枃妗fā鏉?

聽聽聽聽聽//聽鍦ㄨ繖涓緥瀛愰噷闈紝pTemplate聽灝辨槸聽CMDITestApp::InitInstance()聽閲岄潰鍒涘緩鐨勯偅涓ā鏉?
聽聽聽聽聽pTemplate->OpenDocumentFile(NULL);
}

鍦ㄨ繘鍏MultiDocTemplate::OpenDocumentFile涔嬪墠錛屾垜瑙傚療浜嗕竴涓嬭皟鐢ㄥ爢鏍堬紝緇撴灉濡備笅錛?
>聽聽聽mfc71d.dll!CDocManager::OnFileNew()聽聽852聽聽C++
聽聽聽聽mfc71d.dll!CWinApp::OnFileNew()聽聽琛屄?5聽聽聽C++
聽聽聽聽mfc71d.dll!_AfxDispatchCmdMsg(CCmdTarget聽*聽pTarget=0x0042cae8,聽unsigned聽int聽nID=57600,聽int聽nCode=0,聽void聽(void)*聽pfn=0x0041153c,聽void聽*聽pExtra=0x00000000,聽unsigned聽int聽nSig=53,聽AFX_CMDHANDLERINFO聽*聽pHandlerInfo=0x00000000)聽聽琛?9聽聽聽C++
聽聽聽聽mfc71d.dll!CCmdTarget::OnCmdMsg(unsigned聽int聽nID=57600,聽int聽nCode=0,聽void聽*聽pExtra=0x00000000,聽AFX_CMDHANDLERINFO聽*聽pHandlerInfo=0x00000000)聽聽396聽+聽0x27聽聽聽聽C++
聽聽聽聽mfc71d.dll!CWinApp::ProcessShellCommand(CCommandLineInfo聽&聽rCmdInfo={...})聽聽琛?7聽+聽0x1e聽C++
聽聽聽聽MDITest.exe!CMDITestApp::InitInstance()聽聽琛屄?01聽+聽0xc聽聽聽聽C++
甯屾湜鎴戣繕娌℃湁榪瘋礬錛氾級


CMultiDocTemplate::OpenDocumentFile聽鍙堟槸寰堝寰堝浠g爜錛岃鎴戜滑閫夋嫨涓浜涖?
CDocument*聽CMultiDocTemplate::OpenDocumentFile(LPCTSTR聽lpszPathName,
聽聽聽聽聽BOOL聽bMakeVisible)
{
聽聽聽聽聽//聽浠ヤ笅浠g爜鍒犲噺浜嗛獙璇併佹柇璦閮犲垎
聽聽聽聽聽CDocument*聽pDocument聽=聽CreateNewDocument();聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽鍒涘緩鏂囨。瀵硅薄
聽聽聽聽聽CFrameWnd*聽pFrame聽=聽CreateNewFrame(pDocument,聽NULL);聽聽聽聽//聽鍒涘緩妗嗘灦紿楀彛

聽聽聽聽聽if聽(lpszPathName聽==聽NULL)
聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽pDocument->OnNewDocument();聽聽聽聽聽聽聽聽聽聽聽//聽鍒濆鍖栨枃妗?
聽聽聽聽聽}
聽聽聽聽聽else
聽聽聽聽聽聽聽聽聽聽//聽鎵撳紑宸叉湁鏂囨。

聽聽聽聽聽InitialUpdateFrame(pFrame,聽pDocument,聽bMakeVisible);
聽聽聽聽聽return聽pDocument;
}


鐪嬩竴鐪婥reateNewDocument()
CDocument*聽CDocTemplate::CreateNewDocument()
{
聽聽聽聽聽//聽default聽implementation聽constructs聽one聽from聽CRuntimeClass
聽聽聽聽聽if聽(m_pDocClass聽==聽NULL)
聽聽聽聽聽聽聽聽聽聽//聽閿欒鎻愮ず鍟?
聽聽聽聽聽//聽CRuntimeClass*聽m_pDocClass聽->聽CreateObject聽瀹炰緥鍖栨枃妗B犵被銆?
聽聽聽聽聽//聽鍦ㄦ渚嬪瓙涓棦鏄燙MDITestDoc
聽聽聽聽聽CDocument*聽pDocument聽=聽(CDocument*)m_pDocClass->CreateObject();
聽聽聽聽聽AddDocument(pDocument);聽聽聽聽聽聽//聽娣誨姞鍒版ā鏉塊噷鐨勬枃妗e垪琛紝MultiDocTemplate聽淇濆瓨姝や竴鏂嚶犳。
聽聽聽聽聽return聽pDocument;
}


CMDITestDoc鏈夊涓嬬殑瀹氫箟錛屼粎鑳戒粠CRuntimeClass閲岄潰鍒涘緩鐨勩?
class聽CMDITestDoc聽:聽public聽CDocument
{
protected:聽//聽浠呬粠搴忓垪鍖栧垱寤?
聽聽聽聽聽CMDITestDoc();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽琚繚鎶ょ殑鏋勯犲嚱鏁?
聽聽聽聽聽DECLARE_DYNCREATE(CMDITestDoc)聽聽聽聽聽聽聽聽聽聽聽聽聽//聽鏀寔浠幝燙RuntimeClass聽淇℃伅涓垱寤恒?


鍐嶆帴鐫榪涜CreateNewFrame銆?
CFrameWnd*聽CDocTemplate::CreateNewFrame(CDocument*聽pDoc,聽CFrameWnd*聽pOther)
{
聽聽聽聽聽//聽create聽a聽frame聽wired聽to聽the聽specified聽document
聽聽聽聽聽CCreateContext聽context;聽聽聽聽聽聽聽聽聽聽聽//聽榪欎釜聽CreateContext聽浼犻掑埌聽LoadFrame聽涓?
聽聽聽聽聽context.m_pCurrentFrame聽=聽pOther;聽聽聽聽聽聽聽聽聽//聽姝や緥涓?聽NULL
聽聽聽聽聽context.m_pCurrentDoc聽=聽pDoc;聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽=聽鍒氭墠鍒涘緩鐨勬枃妗?
聽聽聽聽聽context.m_pNewViewClass聽=聽m_pViewClass;聽聽聽//聽鏄劇ず姝ゆ枃妗g殑瑙嗙被鐨勭被鍨?
聽聽聽聽聽context.m_pNewDocTemplate聽=聽this;

聽聽聽聽聽if聽(m_pFrameClass聽==聽NULL)
聽聽聽聽聽聽聽聽聽聽//聽鎻愮ず閿欒騫惰繑鍥?
聽聽聽聽聽//聽鍒╃敤聽CRuntimeClass聽淇℃伅鍒涘緩妗嗘灦紿楀彛瀵硅薄錛屾渚嬩腑涓郝燙ChildFrame
聽聽聽聽聽CFrameWnd*聽pFrame聽=聽(CFrameWnd*)m_pFrameClass->CreateObject();

聽聽聽聽聽//聽榪欓噷錛屾垜浠張鐪嬪埌浜喡燣oadFrame聽,聽鍙傝冨墠闈㈢殑聽LoadFrame聽鍚?
聽聽聽聽聽//聽鍦ㄨ繖閲岄潰錛孷iew聽紿楀彛涔熻浜х敓鍑烘潵銆傚弬鑰兟燭RACE聽杈撀犲嚭銆?
聽聽聽聽聽pFrame->LoadFrame(m_nIDResource,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽WS_OVERLAPPEDWINDOW聽|聽FWS_ADDTOTITLE,聽聽聽//聽default聽frame聽styles
聽聽聽聽聽聽聽聽聽聽聽聽聽聽NULL,聽&context);
聽聽聽聽聽return聽pFrame;
}


LoadFrame涔嬪悗View紿楀彛灝嗚鍒涘緩鍑烘潵錛屾帴鐫榪涘叆聽鍒癈MDITestDoc::OnNewDocument涓紝鐜板湪浠呬粎鏄竴涓┖鐨勫嚱鏁幫紝娌℃湁鐗瑰畾浠g爜銆?
BOOL聽CMDITestDoc::OnNewDocument()
{
聽聽聽TRACE("CMDITestDoc::OnNewDocument()聽entry\n";
聽聽聽聽聽if聽(!CDocument::OnNewDocument())
聽聽聽聽聽聽聽聽聽return聽FALSE;

聽聽聽聽聽//聽TODO:聽鍦ㄦ娣誨姞閲嶆柊鍒濆鍖栦唬聽鐮?
聽聽聽聽聽//聽(SDI聽鏂囨。灝嗛噸鐢ㄨ鏂囨。)

聽聽聽聽聽return聽TRUE;
}

鏈鍚庢槸CDocTemplate::InitialUpdateFrame錛岃繖閲岄潰涓昏鏄縺媧繪柊寤虹殑妗嗘灦銆佹枃妗c佽錛岀湅寰楁尯澶寸柤鐨勩?
void聽CDocTemplate::InitialUpdateFrame(CFrameWnd*聽pFrame,聽CDocument*聽pDoc,
聽聽聽聽聽BOOL聽bMakeVisible)
{
聽聽聽聽聽//聽just聽delagate聽to聽implementation聽in聽CFrameWnd
聽聽聽聽聽pFrame->InitialUpdateFrame(pDoc,聽bMakeVisible);
}

鐜板湪錛屾枃妗c佹鏋剁獥鍙c佽紿楀彛鍏ㄩ儴琚垱寤哄嚭鏉ワ紝鎴戜滑鑳滃埄鐨勮繑鍥炲埌ProcessShellCommand澶勩傛樉紺哄拰鏇存柊涓葷獥鍙o紝瀹屾垚浜哤inApp::InitInstance聽錛?
聽聽聽聽聽//聽涓葷獥鍙e凡鍒濆鍖栵紝鍥犳鏄劇ず瀹冨茍瀵瑰叾榪涜鏇綽犳柊
聽聽聽聽聽pMainFrame->ShowWindow(m_nCmdShow);
聽聽聽聽聽pMainFrame->UpdateWindow();



鐪嬩竴涓嬭嚦姝ょ殑TRACE杈撳嚭錛屼腑闂寸殑DLL鍔犺澆琚幓鎺変簡錛?
Before聽CMultiDocTemplate
Before聽AddDocTemplate
Before聽new聽CMainFrame
CMainFrame::CMainFrame()
Before聽pMainFrame->LoadFrame
CMainFrame::PreCreateWindow聽entry聽聽聽聽聽聽聽聽聽//聽娉ㄦ剰錛歅reCreateWindow聽琚袱嬈¤皟鐢?
CMainFrame::PreCreateWindow聽entry
CMainFrame::OnCreate聽entry聽before聽CMDIFrameWnd::OnCreate
CMainFrame::OnCreate聽before聽m_wndToolBar.CreateEx
CMainFrame::OnCreate聽before聽m_wndStatusBar.Create
Before聽ParseCommandLine
Before聽ProcessShellCommand
CMDITestDoc::CMDITestDoc()聽聽聽聽聽聽聽//聽鏂囨。瀵硅薄琚垱寤?
CChildFrame::CChildFrame()聽聽聽聽聽聽聽//聽瀛愭鏋剁獥鍙h鍒涘緩
CChildFrame::PreCreateWindow聽entry聽
CChildFrame::PreCreateWindow聽entry
CChildFrame::PreCreateWindow聽entry
CMDITestView::CMDITestView()聽entry聽聽聽//聽瀛愭鏋剁獥鍙g殑聽OnCreate聽涓垱寤轟簡聽View聽紿楀彛
CMDITestView::PreCreateWindow聽entry
CMDITestDoc::OnNewDocument()聽entry
Before聽pMainFrame->ShowWindow
Before聽pMainFrame->UpdateWindow

//聽閫鍑烘椂鐨劼燭RACE
CMDITestView::~CMDITestView()
CChildFrame::~CChildFrame()
CMDITestDoc::~CMDITestDoc()
CMainFrame::~CMainFrame()


灝忎笉鎳俕_^ 2007-03-22 19:34 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美激情精品| 亚洲人成网站影音先锋播放| 国产精品一区二区a| 国产日韩欧美一区二区三区在线观看| 国产农村妇女精品一区二区| 国内偷自视频区视频综合| 1024精品一区二区三区| 一区二区三区国产精品| 欧美一区二区国产| 欧美电影在线| 亚洲制服少妇| 欧美不卡一卡二卡免费版| 国产精品国码视频| 影音国产精品| 亚洲午夜精品国产| 久久综合网hezyo| 一本综合精品| 久久综合精品一区| 国产精品久久97| 亚洲风情亚aⅴ在线发布| 亚洲一级网站| 欧美国产欧美综合 | 欧美激情性爽国产精品17p| 亚洲一区二区日本| 亚洲成人资源网| 亚洲小视频在线| 免费在线国产精品| 国产一区二区三区高清播放| 日韩一区二区免费看| 久久最新视频| 亚洲欧美综合精品久久成人| 欧美日本一道本| 在线观看国产欧美| 欧美一区二区三区四区在线| 91久久精品国产91久久性色tv| 亚洲欧美日韩一区| 欧美视频在线免费看| 亚洲理论在线| 欧美国产精品va在线观看| 午夜视频一区| 国产精品一区二区在线观看| 中文国产成人精品久久一| 亚洲国产日韩欧美| 欧美成人午夜激情| 亚洲国产mv| 女人天堂亚洲aⅴ在线观看| 久久精品最新地址| 国产亚洲一区二区在线观看 | 一本久道久久综合婷婷鲸鱼| 免费日韩成人| 久久综合999| 亚洲黄色精品| 亚洲国产欧美一区二区三区丁香婷| 久久国产精品久久国产精品| 国产一区二区三区成人欧美日韩在线观看 | 久久精品视频免费观看| 国产亚洲综合性久久久影院| 欧美在线日韩精品| 亚洲欧美日韩精品久久久久| 国产精品网站在线播放| 久久国产主播| 欧美一区午夜精品| **网站欧美大片在线观看| 欧美国产精品中文字幕| 女女同性女同一区二区三区91| 亚洲国产精品999| 亚洲高清av| 欧美少妇一区二区| 久久国产精品99精品国产| 欧美伊人久久大香线蕉综合69| 狠狠色狠狠色综合| 欧美激情第一页xxx| 欧美国产专区| 欧美亚洲一区二区三区| 欧美伊人久久久久久久久影院| 影音国产精品| 99re66热这里只有精品3直播 | 欧美亚洲综合网| 欧美91大片| 亚洲一区二区三区影院| 午夜国产精品影院在线观看| 亚洲电影免费观看高清完整版在线观看| 午夜精品久久久| 久久久久久久久岛国免费| 亚洲乱码视频| 午夜精品网站| 最新国产乱人伦偷精品免费网站| av成人激情| 一区二区三区在线免费视频| 亚洲精品无人区| 国产伦精品一区二区三区免费迷| 欧美成人综合一区| 国产精品美腿一区在线看 | 亚洲一区二区网站| 久久久久久久欧美精品| 亚洲综合国产精品| 久久一区二区三区国产精品| 亚洲性图久久| 麻豆精品91| 久久国产日本精品| 欧美日韩大陆在线| 麻豆成人综合网| 国产女主播一区| 日韩网站在线观看| 亚洲国产高清自拍| 欧美亚洲一级片| 亚洲男人av电影| 欧美激情视频给我| 美女免费视频一区| 国产女主播一区| 亚洲天天影视| 亚洲一区二区三区中文字幕在线| 狂野欧美激情性xxxx欧美| 久久精品国产999大香线蕉| 欧美日韩在线三区| 亚洲国产日韩欧美在线动漫| 国内精品久久国产| 欧美亚洲视频| 久久黄色级2电影| 国产精品女人久久久久久| 亚洲精选在线观看| 亚洲美女精品一区| 欧美岛国激情| 亚洲激情一区| 亚洲免费福利视频| 欧美理论视频| 91久久精品国产91久久性色| 亚洲片在线资源| 欧美99在线视频观看| 欧美韩日视频| 亚洲激情专区| 欧美成人dvd在线视频| 欧美肥婆bbw| 亚洲欧洲在线观看| 欧美承认网站| 亚洲日韩欧美视频一区| 亚洲精品国久久99热| 欧美激情中文字幕一区二区| 亚洲黄色尤物视频| 亚洲素人一区二区| 国产精品亚洲精品| 性欧美xxxx视频在线观看| 久久久久久久久久久久久女国产乱| 国产一区二区三区四区三区四| 免费在线观看日韩欧美| 在线观看成人av电影| 欧美成人午夜激情视频| 亚洲麻豆国产自偷在线| 亚洲欧美日韩网| 国产欧美一区二区精品仙草咪 | 欧美高清在线视频观看不卡| 99精品欧美一区二区三区| 欧美日韩视频免费播放| 正在播放欧美视频| 久久精品一区| 亚洲成色精品| 欧美色图天堂网| 欧美在线亚洲| 91久久精品国产91性色| 先锋影院在线亚洲| 在线精品国产欧美| 欧美日韩在线不卡| 欧美一二三视频| 亚洲国产岛国毛片在线| 亚洲深夜福利在线| 国内成+人亚洲+欧美+综合在线| 欧美成人久久| 亚洲男人的天堂在线aⅴ视频| 久久午夜电影网| 亚洲天堂网在线观看| 国产亚洲成av人片在线观看桃| 狂野欧美一区| 亚洲综合日韩| 亚洲日本久久| 久久综合99re88久久爱| 亚洲一区二区三区欧美| 亚洲国产另类久久久精品极度| 欧美视频不卡中文| 男人的天堂亚洲在线| 小黄鸭精品aⅴ导航网站入口 | 亚洲午夜精品久久久久久浪潮| 久久综合99re88久久爱| 亚洲欧美成人| 99国产一区| 在线日韩一区二区| 国产亚洲精品bv在线观看| 欧美日韩精品欧美日韩精品 | 久久国产精品99国产| 亚洲特色特黄| 99国产精品视频免费观看一公开 | 国产精品99久久久久久白浆小说| 伊人精品在线| 国产亚洲第一区| 国产精品久久77777| 欧美成人免费一级人片100| 久久婷婷激情| 久久久久久9999| 久久国产天堂福利天堂| 欧美亚洲专区| 欧美在线观看www|