锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩性生活视频,欧美日韩亚洲不卡,欧美中文字幕视频http://m.shnenglu.com/Streamlet/category/12149.html鑽掑簾涓紝姹傝閱拁zh-cnSat, 05 Nov 2022 18:05:22 GMTSat, 05 Nov 2022 18:05:22 GMT60寤虹珛涓涓畝鍗曞共鍑鐨?gn+ninja 宸ュ叿閾?/title><link>http://m.shnenglu.com/Streamlet/archive/2022/11/06/229483.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Sat, 05 Nov 2022 18:05:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2022/11/06/229483.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/229483.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2022/11/06/229483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/229483.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/229483.html</trackback:ping><description><![CDATA[ <h2>鑳屾櫙</h2> <p>浜嬫儏鐨勮搗鍥犳槸錛屾兂鎵句釜璺?Windows 鍜?Mac 鐨勬瀯寤烘柟妗堛傜涓鑰冭檻鑷劧鏄?CMake錛屾瘯绔熷熀鏈笂鏄簨瀹炴爣鍑嗕簡(jiǎn)銆?/p> <p>浣嗘槸鐮旂┒浜?jiǎn)涓涓?Modern CMake錛屼篃灝辨槸浠?target 涓烘牳蹇?jī)鐨勭悊蹇点備絾鍙戠幇鐪嬩簡(jiǎn)濂藉嚑澶╂枃妗o紝涔熸姌鑵懼嚭浜?jiǎn)鍙敤鐨勪笢瑗垮Q屼絾浠嶇劧鏄病姊崇悊娓呮浠涔堢悊蹇點(diǎn)佸師鐞嗐傜劧鍚?CMake 鏈韓璇硶灝卞緢澶嶆潅錛屽啀鍔犱笂鎼?target 涓濂楁蹇碉紝瑕佺粰 target 璁劇疆鍚勭灞炴т箣綾葷殑錛屾湁鐐瑰己琛?OOP 鐨勬劅瑙夆︹︿絾鍏跺疄鎴戜滑鍙槸闇瑕佷竴涓?include_dir 鍜?lib_dir 鑰屽凡錛屽叾浠栭兘鏄誕浜憕</p> <p>浣嗗鏋滈鍥炲埌浼犵粺妯″紡錛屼笉鐢?Modern 姒傚康鍛紝濂藉儚鍙互灝嗗氨錛屼絾絎竴涓嶅幓鐢ㄤ竴涓伐鍏風(fēng)殑鏈鏂版ā寮忥紝濂藉儚鏈夌偣涓嶄笂榪涚殑鎰熻錛坧ython 2 闄ゅ錛夛紱絎簩錛孋Make 鐨勪袱澶х棝鐐光斺旇娉曠壒绔嬬嫭琛屻佹枃妗f櫐娑╅毦鎳傗斺旇繕鏄浜烘湁鐐逛笉鐖姐?/p> <p>閭h煩鍑烘潵鐪嬪埆鐨勯夋嫨鍛紵鐩墠鐩稿鎴愮啛鐨勪篃鍙湁 Google 鐨?gn+ninja 鏂規(guī)浜?jiǎn)銆俫n 榪欏涓滆タ鍦?Chromium 閲屾槸瀹屽叏閰嶇疆濂界殑錛岀敤璧鋒潵榪樼畻欏烘墜錛屼絾瑕佹槸鐙珛鎷垮嚭鏉ュ憿錛屽氨娌¢偅涔堜究瀹滀簡(jiǎn)銆傚叧閿槸瀹冪殑 toolchain 鏄鑷繁瀹氫箟鐨勩?/p> <p>涔嬪墠榪樺湪鍏徃鎼炲鎴風(fēng)鐨勬椂鍊欙紝澶у灝變粠 Chromium 閲岄潰鎶?build銆乥uild_overrides 絳夌瓑涓滆タ鍏ㄩ儴鎷峰嚭鏉ワ紝濂藉浼欙紝鍑犵櫨 MB 鐢氳嚦涓?G銆備絾鏄叕鍙擱噷鍢涳紝娌′漢綆″共涓嶅共鍑錛屾庝箞蹇庝箞鏉ャ傚悗鏉ュ張鐪嬪埌 Google 鑷鐨?Crashpad 閲岄潰涔熺敤浜?jiǎn)杩欏鏋勫缓锛屼絾宸ュ叿閾捐绠鍖栦簡(jiǎn)涓涓嬶紝鍙?mini_chromium銆傝繖涓瘮 Chromium 閲岀殑灝忓浜?jiǎn)锛屾槸鍙互鎷繕q囨潵鐩存帴鐢ㄧ殑錛岀己灝戜竴浜涢厤緗彲浠ヨ嚜宸卞姞銆備絾鏄憿錛屽儚鎴戜滑榪欑媧佺櫀錛屼粛鐒舵槸鍙椾笉楦熺殑銆傛墍浠ュ憿錛屾垜浠騫插共鍑鍑鐨勫緩绔嬩竴濂楀伐鍏烽摼銆?/p> <h2>鏋勫緩緋葷粺瀹夎</h2> <p>棣栧厛錛屾垜浠槑紜畾浣嶃俫n 鍜?ninja 閮芥槸寮鍙戞満涓婇渶瑕侀瑁呯殑錛屼笉鏄蔣浠舵彁渚涚殑銆侰hromium 鐨勬悶娉曟槸鑷繁鎻愪緵錛実n 鐨勬枃妗d篃璇磋寮鍙戣呮彁渚涘伐鍏楓備絾榪欏鎬濊礬璺熶紶緇熺殑鐞嗗康鏄啿紿佺殑銆傚悓鏃訛紝鑷繁瀹夎宸ュ叿鎴愭湰鏄瘮杈冧綆鐨勶細(xì)</p> <ul> <li>linux <ul> <li>ninja 鍦ㄤ富嫻佸寘綆$悊緋葷粺閲屽凡緇忔湁浜?jiǎn)锛屽寘鍚嶅彲鑳芥?ninja 鎴?ninja-build錛岀洿鎺ュ畨瑁呭氨鍙互</li> <li>gn 鍦ㄩ儴鍒嗗寘綆$悊緋葷粺鏈夛紝灝濊瘯鍖呭悕 gn 鎴?gn-build 絳夛紝娌℃湁鐨勮瘽鍙互涓嬭澆<a >浜岃繘鍒剁増鏈?/a>錛屾垨鑰呬粠婧愪唬鐮佽嚜琛岀紪璇?/li> </ul> </li> <li>mac <ul> <li>ninja 鍦?brew 閲屽寘鍚嶅彨 ninja錛屽湪 MacPorts 閲屽寘鍚嶅彨 ninja-build</li> <li>gn 鍦?brew 閲屾病鏈夛紝鍙互涓嬭澆<a >浜岃繘鍒剁増鏈?/a>錛涘湪 MacPorts 閲屽彨 gn-devel</li> </ul> </li> <li>win <ul> <li>ninja 鍙互鍦?<a >GitHub</a> 涓嬭澆浜岃繘鍒剁増鏈紝gn 鍙互鍦?gn 瀹樼綉涓嬭澆<a >浜岃繘鍒剁増鏈?/a></li> </ul> </li> </ul> <p>鑷繁涓嬭澆鐨勮緗埌 PATH錛屾祴璇?<code>gn --version</code> 浠ュ強(qiáng) <code>ninja --version</code>錛岃兘榪愯鍗沖彲</p> <h2>鐩爣</h2> <p>甯屾湜鍋氬埌鎻愪緵涓涓?git repo錛屼嬌鐢ㄨ?clone 鍒拌嚜宸遍」鐩殑 build 鐩綍錛岀劧鍚庝嬌鐢ㄨ呭彧瑕佸湪 .gn 鏂囦歡閲岄厤緗?/p> <pre><code class="language-gn">buildconfig = "//build/BUILDCONFIG.gn" </code></pre> <p>灝卞彲浠ヤ嬌鐢ㄦ垜浠彁渚涚殑宸ュ叿閾撅紝鍦?PC 涓夌榪涜鏋勫緩銆?/p> <p>浣跨敤鑰呯殑鍞竴璐熸媴灝辨槸緙栧啓鑷繁鐨?BUILD.gn</p> <h2>宸ュ叿閾炬惌寤?/h2> <p>棣栧厛鎴戜滑鐪?gn 鐨勬枃妗o紝浠ュ強(qiáng)瀹冪殑渚嬬▼ simple_build 閲岀殑宸ュ叿閾鵑厤緗細(xì)</p> <p>https://gn.googlesource.com/gn/+/HEAD/examples/simple_build/build/toolchain/BUILD.gn</p> <p>榪欎釜鏄彲浠ョ洿鎺ョ敤鐨勶紝鍙笉榪囧彧鏈?linux 绔紙褰撶劧 mac 涔熻兘鐢級(jí)銆傛垜浠啀緇撳悎 chrome 閲岀殑宸ュ叿閾鵑厤緗紝榪涜涓浜涘畬鍠勩?/p> <h3>鍩虹姒傚康</h3> <p>棣栧厛鎴戜滑浜?jiǎn)瑙?gn 浣撶郴闇瑕佺殑鏈灝忛厤緗槸浠涔堛?/p> <p>絎竴錛屽畠闇瑕佸湪鏍圭洰褰曞啓涓涓?.gn 鏂囦歡錛屽湪閲岄潰瀹氫箟 buildconfig錛屾寚鍒板彟涓涓枃浠訛紝涓鑸槸</p> <pre><code class="language-gn">buildconfig = "//build/BUILDCONFIG.gn" </code></pre> <p>絎簩銆丅UILDCONFIG.gn 閲岄潰闇瑕佽緗粯璁ゅ伐鍏烽摼錛屼篃灝辨槸鍐欎竴琛?/p> <pre><code class="language-gn">set_default_toolchain("//build/toolchain:gcc") </code></pre> <p>絎笁銆佸畾涔夊伐鍏烽摼錛屽涓婁緥鐨?//build/toolchain:gcc銆?/p> <p>闇瑕佸湪 build/toolchain 涓嬪緩绔?BUILD.gn 鏂囦歡錛屽唴瀹規(guī)槸</p> <pre><code>toolchain("gcc") { # ... } </code></pre> <p>鏈鍚庡湪 toolchain 閲屽畾涔夊悇縐?tool銆?/p> <h3>宸ュ叿閾句腑鐨勫伐鍏?/h3> <p>榪欓儴鍒嗘枃妗e湪榪欓噷錛歨ttps://gn.googlesource.com/gn/+/main/docs/reference.md#func_tool</p> <p>綆鍗曞榪頒竴涓嬶紝鍙瀹氫箟鐨勫伐鍏鋒湁錛?/p> <ul> <li>緙栬瘧宸ュ叿:<br /> "cc": C 緙栬瘧鍣?br /> "cxx": C++ 緙栬瘧鍣?br /> "cxx_module": 鏀寔 module 鐨?C++ 緙栬瘧鍣?br /> "objc": Objective C 緙栬瘧鍣?br /> "objcxx": Objective C++ 緙栬瘧鍣?br /> "rc": Windows 璧勬簮鑴氭湰緙栬瘧鍣?br /> "asm": 姹囩紪鍣?br /> "swift": Swift 緙栬瘧鍣?/li> <li>閾炬帴宸ュ叿:<br /> "alink": 闈欐佸簱閾炬帴鍣?br /> "solink": 鍔ㄦ佸簱閾炬帴鍣?br /> "link": 鍙墽琛屾枃浠墮摼鎺ュ櫒</li> </ul> <p>錛堝叾浠栫殑灝卞厛涓嶇湅浜?jiǎn)锛?jí)</p> <p>鎴戜滑鏉ョ湅涓涓?https://gn.googlesource.com/gn/+/HEAD/examples/simple_build/build/toolchain/BUILD.gn 鐨勪竴浜涘叧閿厤緗細(xì)</p> <pre><code class="language-gn">toolchain("gcc") { tool("cc") { command = "gcc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}" outputs = [ "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o" ] # ... } tool("cxx") { command = "g++ -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}" outputs = [ "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o" ] # ... } tool("alink") { command = "rm -f {{output}} && ar rcs {{output}} {{inputs}}" outputs = [ "{{target_out_dir}}/{{target_output_name}}{{output_extension}}" ] # ... } tool("solink") { command = "g++ -shared {{ldflags}} -o $sofile $os_specific_option @$rspfile" outputs = [ sofile ] # ... } tool("link") { command = "g++ {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group {{libs}}" outputs = [ outfile ] # ... } tool("stamp") { command = "touch {{output}}" } tool("copy") { command = "cp -af {{source}} {{output}}" } } </code></pre> <p>鍙互鐪嬪埌錛宑c 鍜?cxx 鎵ц command 鍚庯紝鐢熸垚 .o 鏂囦歡錛岀劧鍚庤繖浜?.o 鏂囦歡鍙互浣滀負(fù) alink銆乻olink銆乴ink 鐨?inputs錛岃瀹冧滑 command 緇х畫浣跨敤錛屾渶鍚庤緭鍑洪潤鎬佸簱銆佸姩鎬佸簱浠ュ強(qiáng)鍙墽琛屾枃浠躲?/p> <p>鍏朵綑灞炴у彲浠ユ煡鏂囨。浜?jiǎn)瑙e惈涔夈?/p> <h3>瀵規(guī)瘮 Chromium 涓殑閰嶇疆</h3> <h4>Linux</h4> <p>涓昏閰嶇疆鍦ㄨ繖閲岋細(xì)https://source.chromium.org/chromium/chromium/src/+/main:build/toolchain/gcc_toolchain.gni</p> <p>涔熸槸 gcc 鐨勶紝涓?simple_build 閲岀殑澶у悓灝忓紓錛屾病鏈夌壒鍒殑銆?/p> <h4>Mac</h4> <p>涓昏閰嶇疆鍦ㄨ繖閲岋細(xì)https://source.chromium.org/chromium/chromium/src/+/main:build/toolchain/apple/toolchain.gni</p> <p>鍖哄埆鏈夛細(xì)</p> <ul> <li>鐢?clang 緋誨垪緙栬瘧宸ュ叿錛岃屼笉鏄?gcc</li> <li>alink 涓嶆槸鐢?ar錛岃屼嬌鐢?libtool</li> <li>solink 鐨勯粯璁ゆ墿灞曞悕鏀規(guī)垚浜?dylib</li> <li>鐢ㄤ簡(jiǎn)涓涓?linker_driver.py 鏉ユ敮鎸佺敓鎴?dSYM錛屽湪閲岄潰璋冪敤浜?dsymutil 鍜?strip</li> </ul> <h4>Win</h4> <ul> <li>緙栬瘧鐢?cl錛岄潤鎬佸簱閾炬帴鐢?lib錛屽姩鎬佸簱鍜屽彲鎵ц鏂囦歡鐨勯摼鎺ョ敤 link</li> <li>lib_switch = ""錛宭ib_dir_switch = "/LIBPATH:"錛涘墠涓よ?lib_switch = "-l"錛宭ib_dir_switch = "-L"</li> </ul> <h3>寤虹珛鎴戜滑鐨勫伐鍏烽摼</h3> <p>鍩烘湰涓婃槸鏍規(guī)嵁涓婇潰鍒嗘瀽鐨勮鐐歸厤緗紝鏈緇堢粨鏋滃湪姝わ細(xì)https://github.com/Streamlet/gn_toolchain</p> <p>鏂板鐨勪竴浜涘樊寮傛湁錛?/p> <ul> <li> <p>澧炲姞鍏ㄥ眬鍙傛暟 is_debug錛屽彲浠ュ湪 <code>gn gen out --args="is_debug=true"</code>浼犲叆銆傞粯璁?is_debug 涓?false錛屽紑鍚墍鏈変紭鍖栥?/p> </li> <li> <p>mac 涓嬬敓鎴?dSYM 涓嶄嬌鐢?python 鑴氭湰錛岀洿鎺ユ槸 <code>$ld ... && dsymutil ... && strip</code></p> </li> <li> <p>mac 涓嬪姞浜?jiǎn)涓涓?template錛歛pp_bundle錛岀敤鏉ョ敓鎴?xxx.app錛屼富瑕侀厤緗潵鑷簬 create_bundle 鏂囨。閲岀殑渚嬪瓙</p> </li> <li> <p>win 涓嬪鍔犱簡(jiǎn)涓浜涢厤緗泦</p> <ul> <li> <p>鍔ㄦ?闈欐侀摼鎺?CRT錛?/build/config/win:console_subsystem銆?/build/config/win:static_runtime</p> </li> <li> <p>鎺у埗鍙扮▼搴忋乄in32 紼嬪簭錛?/build/config/win:console_subsystem銆?/build/config/win:windows_subsystem</p> <p>榪欎釜鍏跺疄涓鑸儏鍐典笅鐢ㄤ笉鐫錛屽彧瑕佸叆鍙e嚱鏁版槸 main/WinMain錛宭ink 榛樿灝辨槸鎺у埗鍙扮▼搴?Win32 紼嬪簭</p> </li> <li> <p>XP 鏀寔錛?/build/config/win:console_subsystem_xp銆?/build/config/win:windows_subsystem_xp</p> <p>鍏蜂綋瀹炵幇鏄摼鎺ュ弬鏁板姞 /SUBSYSTEM:CONSOLE,5.01 鎴?/SUBSYSTEM:WINDOWS,5.01銆傚叧閿槸鍚庨潰鐨勭増鏈彿 5.01錛屼負(fù)浜?jiǎn)鍔犵増鏈彿鍒欏繀椤绘寚瀹氬瓙绯痪l熷悕縐幫紝鎵浠ュ垎浜?console_subsystem_xp 鍜?windows_subsystem_xp銆傚張錛寈p 榪欓噷鎻愪緵浜?jiǎn)涓や?subsystem 鐨勯厤緗泦錛岄潪 xp 涔熸彁渚涗袱涓?/p> <p>浣嗘槸鎴戜滑娌℃湁鍔?_WIN32_WINNT=0x0501銆乄INVER=0x0501銆乢USING_V110_SDK71_錛屼篃娌℃湁鎸囧畾蹇呴』浣跨敤 7.0 鐗堟湰鐨?SDK錛岃繖浜涢兘鏄潪蹇呴』鐨勶紝鍙涓嶇敤鍒?XP 浠ュ悗娣誨姞鐨?API 鍗沖彲銆備嬌鐢ㄨ呭彲浠ュ湪鑷繁鐨?target 閲岄潰瀹氫箟榪欎簺瀹忋?/p> </li> </ul> </li> </ul> <h2>浣跨敤妗堜緥</h2> <p>鎻愪緵涓涓嬌鐢ㄦ渚嬶細(xì)https://github.com/Streamlet/gn_toolchain_sample</p> <p>鍥犱負(fù)瀹冧互 git submodule 褰㈠紡寮曠敤浜?https://github.com/Streamlet/gn_toolchain錛屾墍浠?git clone 浠ュ悗錛岄渶瑕?<code>git submodule update --init</code>涓涓嬨?/p> <p>鐒跺悗鍦ㄦ牴鐩綍鎵ц錛氾紙紜繚 gn 鍜?ninja 宸茬粡鍦?PATH 涓級(jí)</p> <pre><code class="language-sh">gn gen out ninja -C out </code></pre> <p>鍗沖彲銆?/p> <p>Mac 涓嬩細(xì)棰濆鐢熸垚涓涓?objc 欏圭洰 objc_console_application 浠ュ強(qiáng)涓涓?app_bundle錛歯s_application.app銆?/p> <p>Win 浼?xì)棰濆鐢熸垚涓涓?Win32 欏圭洰 win32_application銆?/p> <p>Win 涓嬮渶瑕佸厛鎵ц涓涓?Visual Studio 甯︾殑鍛戒護(hù)琛岀幆澧冿紝濡?VS 2022 Community 鐨?鈥渪64 Native Tools Command Prompt for VS 2022鈥濓紝cl 絳夊伐鍏鋒墠浼?xì)鍙敤銆?/p> <p>濡傛灉瑕佹祴璇?XP錛?2浣嶏級(jí)錛岀敤鈥渪86 Native Tools Command Prompt for VS 2022鈥濊繘鍏ワ紝CD 鍒伴」鐩洰褰曪紝鎵ц錛?/p> <pre><code class="language-gn">gn gen out --args="target_cpu=\"x86\"" ninja -C out </code></pre> <h2>鎬葷粨</h2> <p>鎴戜滑鍙敤鍑犲崄 KB 鐨勫ぇ灝忓畬鎴愪簡(jiǎn)璺ㄧ鏀寔錛屾槸寰堣交閲忕殑涓涓厤緗傚鏋滄?zhèn)ㄨ寰楀疄鐢q惰鍙繖縐嶆柟寮忥紝嬈㈣繋涓璧鋒潵緇存姢銆佸畬鍠勩?/p> <img src ="http://m.shnenglu.com/Streamlet/aggbug/229483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2022-11-06 02:05 <a href="http://m.shnenglu.com/Streamlet/archive/2022/11/06/229483.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>寰蔣鎷奸煶闀垮彞妯″紡鎭㈠宸ュ叿鏀寔Win10 1803http://m.shnenglu.com/Streamlet/archive/2020/09/20/217462.html婧祦婧祦Sun, 20 Sep 2020 05:53:00 GMThttp://m.shnenglu.com/Streamlet/archive/2020/09/20/217462.htmlhttp://m.shnenglu.com/Streamlet/comments/217462.htmlhttp://m.shnenglu.com/Streamlet/archive/2020/09/20/217462.html#Feedback0http://m.shnenglu.com/Streamlet/comments/commentRss/217462.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/217462.html4鏈堜喚灝辨湁浜虹暀璦鏃у井杞嫾闊蟲仮澶嶅伐鍏蜂笉鏀寔Win10 1803浜?jiǎn)锛屾垜鑷纷児熼亣鍒颁簡(jiǎn)锛屼絾鍥犱负娌℃棄櫁存悶锛屽媺湄?fù)鍏墮毦浣跨敤浜?jiǎn)璇嵕l勬ā寮忕殑寰蔣鎷奸煶鍑犱釜鏈堬紝緇堜簬鍦ㄥ叓鏈堜喚鎶戒釜絀虹爺絀朵簡(jiǎn)涓嬶紝瑙e喅浜?jiǎn)銆?/p>

榪欐鏄洜涓哄偦閫煎ぇ寰蔣鏀逛簡(jiǎn) System32\IME\shared 閲岀殑涓滆タ錛屽鑷存棫緋葷粺鎷瘋繃鏉ョ殑鏂囦歡涓?System32\IME\shared 鐨勪笢瑗夸笉鍏煎浜?jiǎn)銆傝В鍐蟲柟寮忓緢鏆村姏錛氫粠浠ュ墠鐨勭増鏈鍒?System32\IME\shared 榪囨潵銆?/p>

涓嬭澆錛?a >https://www.streamlet.org/software/mspyforever/

錛堝師鍙戜簬 GitHub Pages錛?018-10-13 13:36:04錛?/p>

婧祦 2020-09-20 13:53 鍙戣〃璇勮
]]>
闂竴涓?Windows 紿楀彛鐨?Capture 闂http://m.shnenglu.com/Streamlet/archive/2014/12/31/209367.html婧祦婧祦Wed, 31 Dec 2014 08:03:00 GMThttp://m.shnenglu.com/Streamlet/archive/2014/12/31/209367.htmlhttp://m.shnenglu.com/Streamlet/comments/209367.htmlhttp://m.shnenglu.com/Streamlet/archive/2014/12/31/209367.html#Feedback1http://m.shnenglu.com/Streamlet/comments/commentRss/209367.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/209367.html濂戒箙娌″啓浜?jiǎn)锛屼笂鏉ュ厛闂竴涓棶棰樸傘傘傜緸灝勩傘傘?/p>

 

鏈?A銆丅 涓や釜紿楀彛錛孉 鏄?B 鐨?Owner錛孊 涓嶆縺媧諱笉鎶㈢劍鐐廣傚湪 B 鐨?WM_LBUTTONDOWN 鐨勬椂鍊欙紝璁劇疆 A 紿楀彛涓?Capture錛涘湪  A 鐨?WM_LBUTTONUP 鐨勬椂鍊?ReleaseCapture銆?/p>

鎿嶄綔鏄紝鍦?B 涓婃寜涓嬮紶鏍囷紝鐒跺悗涓鐩存寜浣忛紶鏍囬鍟婇銆傚湪鏌愪竴鏃舵満鎶?B 騫叉帀錛岀戶緇姩榧犳爣銆傛鏃?A 榪樺湪錛屽茍涓?A 浠嶇劧鏄?Capture 鐘舵侊紝浣嗘槸 A 鏀朵笉鍒?A 鍙鑼冨洿澶栫殑 WM_MOUSEMOVE 浜?jiǎn)锛佸湪鍏q囩▼涓?A 涔熸病鏈夋敹鍒?WM_CAPTURECHANGED銆?/p>

 

涓嬮潰鏄牀瀛愶細(xì)

http://pan.baidu.com/s/1mgurJIS

 

姹傝В閲娿傛眰瑙e喅銆傝阿璋錛?/p>

婧祦 2014-12-31 16:03 鍙戣〃璇勮
]]>
璁?Win8.1 寰蔣鎷奸煶鏂頒綋楠屾ā寮忔敮鎸?Metro 搴旂敤http://m.shnenglu.com/Streamlet/archive/2014/04/20/206654.html婧祦婧祦Sun, 20 Apr 2014 03:22:00 GMThttp://m.shnenglu.com/Streamlet/archive/2014/04/20/206654.htmlhttp://m.shnenglu.com/Streamlet/comments/206654.htmlhttp://m.shnenglu.com/Streamlet/archive/2014/04/20/206654.html#Feedback3http://m.shnenglu.com/Streamlet/comments/commentRss/206654.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/206654.html鍐呭鍥為【錛?/p>

[1]鍗佷釜姝ラ鎵懼洖 Win8 涓殑寰蔣鎷奸煶鏂頒綋楠屾ā寮?/a>

[2]鍙戝竷涓伐鍏鳳紝涓閿仮澶峎in8/8.1涓殑寰蔣鎷奸煶闀垮彞妯″紡錛堟柊浣撻獙妯″紡錛?/a>

鍦?[1] 涓紝鎴戜滑鎵懼洖浜?Win8 閲岀殑寰蔣鎷奸煶鏂頒綋楠屾ā寮忥紱鍦?[2] 涓紝渚濈収 ePig 鎻愪緵鐨勬柟娉?/a>錛屾垜浠湪 Win8.1 涓篃鎼洖浜?jiǎn)寰蒋鎷奸熛x柊浣撻獙妯″紡錛屼絾鐣欎笅浜?jiǎn)涓鐐歸仐鎲撅紝涓嶆敮鎸?Metro 搴旂敤銆?/p>

image

錛堝叾瀹炶繕鏈変竴鐐癸紝娌℃湁鏄劇ず鍥炬爣銆傦級(jí)

鍘熸湰鎴戣寰楁棤鎵璋擄紝鍥犱負(fù)鎴戝弽姝d笉澶敤 Metro 搴旂敤錛孧etro 涓嬪氨鐢ㄨ嚜甯︾殑寰蔣鎷奸煶綆鎹鋒ā寮忓ソ浜?jiǎn)銆傚彲鏄紝鍙槸錛岃緭鍏ユ硶綆$悊鍣ㄤ腑錛屾瘮濡備繚鐣欎竴涓吋瀹?Metro 鐨勮緭鍏ユ硶錛屽鑷存闈笅涔熸瘮濡備繚鐣欑畝鎹鋒ā寮忎簡(jiǎn)錛岃繖鏍峰垏鎹㈣緭鍏ユ硶緇忓父鍒囬敊錛岀鎵璋撯滀竴涓緭鍏ユ硶鈥濈殑浼熷ぇ鐩爣鐩稿樊鐢氳繙銆備簬鏄箮錛屼笉鑳藉繊銆傜劧鍚庢槰澶╄搗鏉ョ湅浜?jiǎn)涓嫎q欎釜闂銆?/p>

鍘熷厛寰蔣鎷奸煶杈撳叆娉曠殑涓涓笉鐭ヤ粈涔堢殑GUID鏄?{81d4e9c9-1d3b-41bc-9e6c-4b40bf79e35e}錛岃 GUID 浠h〃鐨勮緭鍏ユ硶涓嬫湁涓や釜杈撳叆妯″紡錛屾柊浣撻獙鍜岀畝鎹楓傦紙榪欎釜鏋勬灦鍜岀浉鍏沖唴瀹規(guī)垜涓嶆槸寰堟噦錛屽叿浣撹鍘繪煡闃?TSF (Text Service Framework) 妗嗘灦鐩稿叧鏂囨。銆傦級(jí) Win 8 涓嬪彧鏄垹闄や簡(jiǎn)鏂頒綋楠屾ā寮忕殑閭d釜娉ㄥ唽琛ㄩ」騫跺娉ㄥ唽琛ㄩ」鍔犳潈闄愪繚鎶よ揪鍒扮鐢ㄧ洰鐨勩俉in8.1 涓嬬殑鍙樺寲鏄紝鑰佺殑鏂囦歡琚垹闄や簡(jiǎn)錛屼笖 {81d4e9c9-1d3b-41bc-9e6c-4b40bf79e35e} 琚敤浣滄柊鐨勫井杞嫾闊崇殑 GUID 浜?jiǎn)锛岄噷闈篃涓嶅啀鍒嗕袱涓ā寮忎簡(jiǎn)锛堝叾瀹炲彧鏈夊師鍏堢殑绠鎹鋒ā寮忥級(jí)銆傛寜鐓?ePig 鎻愪緵鐨勬柟娉?/a>錛屼粠 Win8 涓鍒剁浉鍏蟲枃浠訛紝騫舵妸鏂囦歡涓殑 GUID 鏀逛簡(jiǎn)錛岄噸鏂版敞鍐岃繘鍘匯傝繖杈規(guī)垜鍦ㄤ竴閿仮澶嶅伐鍏鋒墍甯︾殑鏂囦歡涓槸鎶?GUID 鏈熬 e 鏀逛負(fù)浜?f錛屽畬鏁寸殑灝辨槸 {81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35F}銆傛寜閬撶悊搴旇瀹屽叏鍏煎鎵嶆槸錛岃搗鐮?Win8 涓嬫槸鏀寔 Metro 鐨勩傚井杞嫾闊沖緢鏃╁氨鏄?TSF 妗嗘灦浜?jiǎn)锛堣屼笉鏄?Imm錛夛紝鎹垜涔嬪墠鐨勪簡(jiǎn)瑙o紝瑕佹敮鎸?Metro錛岃緭鍏ユ硶浣跨敤 TSF 妗嗘灦灝卞ソ浜?jiǎn)銆?/p>

鎯充笉閫氱殑鎯呭喌涓嬶紝灝辨潵姣旇緝涓?Win8.1 涓嬭嚜甯︾殑寰蔣鎷奸煶錛堢畝鎹鋒ā寮忥級(jí)鍜屾垜浠柊鍔犵殑寰蔣鎷奸煶鏂頒綋楠屾ā寮忕殑娉ㄥ唽琛ㄩ」宸紓錛?/p>

image

鍙戠幇鑷甫鐨勫浜?jiǎn)鍑牂骞锛埦U㈡閮ㄥ垎錛夈備簬鏄豢鐓х潃鎶婅繖浜涜ˉ涓婂幓錛岀粨鏋滅‘瀹炰笉鏄劇ず鈥滀粎閫傜敤浜庢闈㈢増鈥濅簡(jiǎn)錛屽彲鏄ソ鍍忎篃娌℃硶杈撳叆浜?jiǎn)鈥︹︿簬鏄瘡嬈″彧鍔犱竴欏癸紝渚濇璇曡繃鍘伙紙絀蜂婦娉曪紝閯欒錛夈傛渶鍚庡彂鐜板墠涓や釜 錛屼篃灝辨槸 {13A016DF-560B-46CD-947A-4C3AF1E0E35D}銆亄25504FB4-7BAB-4BC1-9C69-CF81890F0EF5} 鍙互瑕侊紝鏈鍚?{74769ee9-4a66-4f9d-90d6-bf8b7c3eb461} 涓嶈兘瑕併?/p>

鍐嶇湅涓?Win8 鐨勶紝鏋滅劧涔熸槸鏈夎繖涓や釜 Category 鐨勶細(xì)

image

鐒跺悗榪欎簨鎯呭氨綆楁垚浜?jiǎn)锛?xì)

image

涓閿伐鍏峰凡鏇存柊錛屼笅杞介〉闈細(xì)http://www.streamlet.org/Software/MSPYForever/

閭d箞榪欎袱涓?GUID 鍒板簳鏄粈涔堝憿錛烥oogle 涓涓嬧︹?/p>

鍏充簬鍓嶈咃紝http://msdn.microsoft.com/zh-cn/library/windows/apps/hh967425.aspx#set_compatibility_flag 涓湁璇存槑濡備笅錛?/p>

澹版槑鍏煎鎬?/em>

IME 閫氳繃浣跨敤 ITfCategoryMgr::RegisterCategory 涓哄叾 IME 娉ㄥ唽綾誨埆 GUID_TFCAT_TIPCAP_IMMERSIVESUPPORT 鏉ュ0鏄庡叾鍏煎 Windows 搴旂敤鍟嗗簵搴旂敤銆?/em>

鍏朵腑 GUID_TFCAT_TIPCAP_IMMERSIVESUPPORT 灝辨槸 {13A016DF-560B-46CD-947A-4C3AF1E0E35D}銆?/p>

{25504FB4-7BAB-4BC1-9C69-CF81890F0EF5} 涔熸槸涓瀹氫箟鐨勫鹼紝鍙仛 GUID_TFCAT_TIPCAP_SYSTRAYSUPPORT錛屾寜瀛楅潰鐞嗚В錛岀郴緇熸墭鐩樻敮鎸侊紝鍙槸鏌ヤ笉鍒板畼鏂硅鏄庡晩錛?a title="http://msdn.microsoft.com/en-us/library/ms629012.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms629012.aspx 榪欎竴欏靛暐涔熶笉璇達(dá)紝鏄笉鏄痓ug鈥︹?/p>

 

涓嶇鎬庝箞璇達(dá)紝闂鏄В鍐充簡(jiǎn)銆傚ぇ蹇漢蹇?jī)銆?/p>

 

鍐嶉『渚塊粦涓嬪ぇ寰蔣銆?/p>

鏃犳爣棰? src=

鐪嬭繖寮犲浘錛屾垜鍦ㄥ啓浠g爜鎴栧啓Word鎴栬呭啓鍒殑鏂囧瓧錛屽紑鐫涓枃璇█涓嬬殑涓枃杈撳叆娉曪紙鍐欎唬鐮佹庝箞浼?xì)寮涓枃錛熶笉瑕佸湪鎰忚繖浜涚粏鑺傗︹︼級(jí)錛岀劧鍚庢潵浜?jiǎn)鏉?QQ 娑堟伅銆傛垜鍘諱換鍔℃爮鐐逛紒楣呭浘鏍囥傜粨鏋滃垰鐐逛笅錛屽洜涓轟換鍔℃爮銆佹闈㈡槸鑻辨枃璇█涓嬬殑緹庡紡閿洏錛岃緭鍏ユ硶鎸囩ず鍣ㄥ彉涓?ENG錛岀緝鐭簡(jiǎn)錛屼紒楣呭浘鏍囪窇鍙寵竟鍘諱簡(jiǎn)錛岀偣絀轟簡(jiǎn)錛侊紒錛?/p>

姝e洜涓哄姝わ紝鎴戜互鍓嶆繪槸鎶婅嫳鏂囪璦鍒犳帀錛屽彧鏈変腑鏂囪璦錛屼笅闈竴涓緭鍏ユ硶錛岄潬 Shift 鍦ㄨ緭鍏ユ硶鍐呭垏鎹腑鑻辨枃銆傚彲鏄?Shift 寰堝鏄撹鎿嶄綔鏈夋湪鏈夈傛渶浣崇殑鏂瑰紡榪樻槸涓枃璇█涓嬬殑緹庡紡閿洏鈥︹﹁繖涓棶棰樺緢鏃╀箣鍓嶇爺絀惰繃鍑犱釜灝忔椂錛屼絾娌″暐緇撴灉錛屽悗鏉ユ兂錛屽鏋滅湡鐨勬病鍔炴硶浜?jiǎn)锛岒q茶剢鍐欎竴涓┖鐨勮緭鍏ユ硶鍘熸牱杈撳叆杈撳嚭錛屽彨鍋氣滅編寮忛敭鐩樷濆緱浜?jiǎn)銆備負(fù)鍟ヤ腑鏂囦笅灝變笉緇欓敭鐩樺竷灞鍛紵涓轟粈涔堝憿涓轟粈涔堝憿涓轟粈涔堝憿錛?/p>

鏄ㄥぉ鍙堝幓緗戜笂鎼滀簡(jiǎn)涓嬶紝緇撴灉楂樹漢宸茬粡緇欏嚭浜?jiǎn)鏂规硶浜?jiǎn)錛屼笉鐭ラ亾鍝瘒鏄師鍒涳紝灝變笉寮曠敤浜?jiǎn)锛屾湁鍏喘懀鐨勮嚜宸辨悳銆傝繖閲岃繕鏈変釜鍗婂畼鏂圭殑鍑哄錛?a title="http://answers.microsoft.com/zh-hans/windows/forum/windows_8-ime/windows-8%E7%9A%84%E8%BE%93%E5%85%A5%E6%B3%95/91917117-c5fd-4c61-ac2e-da0dd29d12fc" target="_blank">http://answers.microsoft.com/zh-hans/windows/forum/windows_8-ime/windows-8%E7%9A%84%E8%BE%93%E5%85%A5%E6%B3%95/91917117-c5fd-4c61-ac2e-da0dd29d12fc銆備絾鍏跺疄緹庡紡閿洏娌℃湁鍥炬爣錛屼細(xì)鏄劇ず鈥滅畝浣撯濓紝鎵浠ヤ篃浼?xì)鏈夐暱鐭彉鍖栥傛渶浣崇殑鏂規(guī)硶榪樻槸鎭㈠鎴愯璦鏍忕殑鏍峰瓙錛?/p>

image

榪欎笅鍚屽湪涓枃璇█涓嬩簡(jiǎn)錛孋trl+Shift 鍒囪緭鍏ユ硶錛屾庝竴涓垝鏈嶄簡(jiǎn)寰梸錛佽嚦姝わ紝W(xué)in8銆乄in8.1 鐨勮緭鍏ユ硶闂瀵規(guī)垜涓漢鑰岃█宸茬粡鍏ㄩ儴瑙e喅浜?jiǎn)锛屽彲浠ュぇ瑙勬ā閲嶈绯痪l熶簡(jiǎn)銆?/p>

蹇嶄笉浣忓啀榛戜笅澶у井杞細(xì)http://answers.microsoft.com/zh-hans/windows/forum/windows_8-ime/%E5%85%B3%E4%BA%8E%E4%B8%AD%E6%96%87%E7%89%88windo/b5c3190f-bb82-4855-97f0-00d6011e3e33錛岃繖涓瓟闈炴墍闂紝鏄笉鏄湪鎼炵瑧錛?/p>

婧祦 2014-04-20 11:22 鍙戣〃璇勮
]]>
鍙戝竷涓伐鍏鳳紝涓閿仮澶峎in8/8.1涓殑寰蔣鎷奸煶闀垮彞妯″紡錛堟柊浣撻獙妯″紡錛?/title><link>http://m.shnenglu.com/Streamlet/archive/2014/03/26/206335.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Tue, 25 Mar 2014 17:10:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2014/03/26/206335.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/206335.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2014/03/26/206335.html#Feedback</comments><slash:comments>24</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/206335.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/206335.html</trackback:ping><description><![CDATA[<p align="center">錛坈nBeta錛?a title="http://www.cnbeta.com/articles/277936.htm" target="_blank">http://www.cnbeta.com/articles/277936.htm</a>錛?/p> <p>棣栧厛璐翠釜鍥撅紝澶у鏉ヤ竴璧峰康鍙拌瘝~</p> <p><a href="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/880134ac1d58_D1E/MSPYForever_2.png"><img title="MSPYForever" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="MSPYForever" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/880134ac1d58_D1E/MSPYForever_thumb.png" width="600" height="400"></a></p> <p> </p> <p>蹇靛畬浜?jiǎn)鏈ㄦ湁锛熷緢婵鎯呮編婀冧箟鎰ゅ~鑶烘湁鏈ㄦ湁錛?/p> <p> </p> <p>榪欎簨鎯呮渶鏃╄拷婧埌鍓嶅勾 8 鏈堢殑涓綃囨枃绔犮?a href="http://m.shnenglu.com/Streamlet/archive/2014/02/17/188249.html" target="_blank">鍗佷釜姝ラ鎵懼洖 Win8 涓殑寰蔣鎷奸煶鏂頒綋楠屾ā寮?/a>銆嬶紝鍏跺疄灝辨槸鎵嬪伐娉ㄥ唽涓涓狢OM瀹屼簨錛屽彧鏄偦閫煎ぇ寰蔣鍒繪剰寮勪簡(jiǎn)娉ㄥ唽琛ㄦ潈闄愭潵灞忚斀錛屾搷浣滆搗鏉ョ暐寰箒鐞愩傚埌鐩墠涓烘錛學(xué)in8閲嶈緋葷粺宸茬粡涓嶄笅鍗佹浜?jiǎn)锛屾瘡娆¢兘鏄瘶q欐牱鎵嬪伐鎿嶄綔錛屾垜宸茬粡鍘屽︿簡(jiǎn)銆?/p> <p>鍙﹀榪樻湁Win8.1涓婄殑闂錛岀敱浜庡偦閫煎ぇ寰蔣宸茬粡瀹屽叏鍒犻櫎浜?jiǎn)鏂囦挥灱尀娌℃硶杩欎箞鎼炰簡(jiǎn)锛尀q畻浠嶹in8鎷瘋繃鏂囦歡鏉ワ紝涔熸棤娉曠畝鍗曟敞鍐屼嬌鐢ㄣ傚姞涓婃垜瀵?.1闈炲父闈炲父涓嶆劅鍐掞紝涓鐩存病鍘葷爺絀躲傚墠浜涘ぉ鐪嬪埌涔嬪墠鐨勯偅綃囨枃绔犻噷 Charles Leigh 鍥炲浜?jiǎn)涓そ媷鏂囩珷锛?a target="_blank">ePig 閭g瘒</a>鏄師鍒涘惂璨屼技錛屾劅璋級(jí)錛屾彁渚涗簡(jiǎn)瑙e喅鏂規(guī)銆備簬鏄笂涓懆鏈埌鐜板湪灝辨崳榧撲釜涓閿仮澶嶅伐鍏鳳紝鏂逛究鑷繁浠ュ悗閲嶈鐢紝涔熸柟渚垮箍澶у井鎷煎厷銆?/p> <p>寰嫾鍏氾紙鍖呮嫭鎴戯級(jí)瀛滃瓬涓嶅︾殑榪芥眰寰嫾闀垮彞妯″紡鐨勬儏鎬錛岃鎴戦潪甯告劅鍔ㄣ傚笇鏈涘偦閫煎ぇ寰蔣鐪嬪埌鎴戜滑鐨勫績(jī)澹般傚埆鎼炰粈涔堢牬璇嶇粍杈撳叆娉曚簡(jiǎn)錛屼綘鎼炰笉榪囨湰鍦熻繖涔堝鍘傚鐨勶紝浣犵殑涓嬮檺涔熸病鏈夋湰鍦熷巶瀹朵綆錛屽敮涓鐨勪紭鍔垮彲鑳藉氨鏄病騫垮憡娌″脊紿椾簡(jiǎn)鍚с傝嚦浜庤緭鍏ョ畻娉曚粈涔堢殑錛屽湪璇嶇粍妯″紡閲岄潰鏍規(guī)湰涓嶈凍浠ヤ綋鐜板緱澶錛岄暱鍙ユā寮忔墠鏄冮獙鍟娿傚洖澶村惂錛?/p> <p>涓嬭澆欏甸潰錛?a title="http://www.streamlet.org/Software/MSPYForever/" target="_blank">http://www.streamlet.org/Software/MSPYForever/</a></p> <p>CodePlex 欏圭洰欏甸潰錛?a title="https://mspyforever.codeplex.com/" target="_blank">https://mspyforever.codeplex.com/</a></p> <p> </p> <p>璇峰井鎷煎厷浠浼犳挱銆傛湁 Bug 鍙?qiáng)鏃跺弽棣堛?/p><img src ="http://m.shnenglu.com/Streamlet/aggbug/206335.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2014-03-26 01:10 <a href="http://m.shnenglu.com/Streamlet/archive/2014/03/26/206335.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>灝?Timer 瀵硅薄鍖?/title><link>http://m.shnenglu.com/Streamlet/archive/2013/06/25/201279.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Mon, 24 Jun 2013 16:18:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2013/06/25/201279.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/201279.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2013/06/25/201279.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/201279.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/201279.html</trackback:ping><description><![CDATA[     鎽樿: Timer榪欑帺鎰忓効寰堝父鐢紝鍗村張寰堢儲(chǔ)浜恒傜儲(chǔ)浜轟箣澶勬湁鍥涳細(xì) 1.         濡傛灉灝嗗叾璁懼埌HWND涓婏紝鍒?a)         蹇呴』鎵嬪伐緇存姢Timer鐨処D錛屽皬蹇?jī)缈季樇鍦颁繚璇仒q欎簺ID涓嶉噸澶嶏紝鍙兘鏈変漢錛堟瘮濡傛垜錛夊氨涓嶆庝箞鍠滄鎵嬪伐緇存姢紜紪鐮佺殑ID銆?...  <a href='http://m.shnenglu.com/Streamlet/archive/2013/06/25/201279.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Streamlet/aggbug/201279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2013-06-25 00:18 <a href="http://m.shnenglu.com/Streamlet/archive/2013/06/25/201279.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬&ldquo;UI綰跨▼&rdquo;http://m.shnenglu.com/Streamlet/archive/2013/05/05/199999.html婧祦婧祦Sun, 05 May 2013 14:43:00 GMThttp://m.shnenglu.com/Streamlet/archive/2013/05/05/199999.htmlhttp://m.shnenglu.com/Streamlet/comments/199999.htmlhttp://m.shnenglu.com/Streamlet/archive/2013/05/05/199999.html#Feedback21http://m.shnenglu.com/Streamlet/comments/commentRss/199999.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/199999.html闃呰鍏ㄦ枃

婧祦 2013-05-05 22:43 鍙戣〃璇勮
]]>
UpdateLayeredWindow鍦ㄨ繙紼嬪崗鍔╀笅澶辮觸鐨勯棶棰?/title><link>http://m.shnenglu.com/Streamlet/archive/2013/01/18/197382.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Fri, 18 Jan 2013 03:33:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2013/01/18/197382.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/197382.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2013/01/18/197382.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/197382.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/197382.html</trackback:ping><description><![CDATA[     鎽樿: 鏈榪戦亣鍒癠pdateLayeredWindow鍦ㄨ繙紼嬪崗鍔╀笅浼?xì)澶辫触锛屼絾鏄疓etLastError榪斿洖0銆?鍚庢潵鐪嬩簡(jiǎn)http://blog.csdn.net/debehe/article/details/4767472錛岃В鍐充簡(jiǎn)錛岃涓絎斻?鍘熶唬鐮侊細(xì) void Update() {     CDC dc = GetDC(m_hWnd);   &n...  <a href='http://m.shnenglu.com/Streamlet/archive/2013/01/18/197382.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Streamlet/aggbug/197382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2013-01-18 11:33 <a href="http://m.shnenglu.com/Streamlet/archive/2013/01/18/197382.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>ASP.NET MVC 妗嗘灦鍏ラ棬&mdash;&mdash;鍐欎竴涓悳绱㈠紩鎿?/title><link>http://m.shnenglu.com/Streamlet/archive/2013/01/08/197092.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Mon, 07 Jan 2013 17:54:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2013/01/08/197092.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/197092.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2013/01/08/197092.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/197092.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/197092.html</trackback:ping><description><![CDATA[     鎽樿: ASP.NET MVC 妗嗘灦鍏ラ棬鈥斺斿啓涓涓悳绱㈠紩鎿?  鍔ㄦ佺綉欏電殑鍘嗗彶闈炲父鎮(zhèn)犱箙錛屽彲浠ヨ拷婧埌涓婁釜涓栫邯銆傚氨鎶鏈被鍨嬭岃█錛屼富瑕佹湁ASP銆丳HP銆丣SP涓夊ぇ媧俱傜瑪鑰呮帴瑙﹁繃ASP銆丳HP錛岄仐鎲劇殑鏄嚑涔庝粠鏈帴瑙﹁繃JSP銆傚伓灝卞ぉ鐢熶笉鏄疛AVA璇郴鐨勩?  鍚庢潵錛岀瑪鑰呯◢寰繙紱諱簡(jiǎn)涓涓媁eb寮鍙戯紝W(xué)eb鍙戠敓浜?jiǎn)缈诲ぉ瑕嗗湴鐨勫彉鍖栧Q宑ss鎴愪簡(jiǎn)甯冨眬涓繪祦錛孉SP.NET鍐掑嚭鏉ヤ簡(jiǎn)銆傝繖浣垮緱絎旇呬笉寰椾笉鍦?008銆?...  <a href='http://m.shnenglu.com/Streamlet/archive/2013/01/08/197092.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Streamlet/aggbug/197092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2013-01-08 01:54 <a href="http://m.shnenglu.com/Streamlet/archive/2013/01/08/197092.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瑁稿啓涓涓繘紼嬪 COM 緇勪歡http://m.shnenglu.com/Streamlet/archive/2012/12/02/195900.html婧祦婧祦Sun, 02 Dec 2012 11:56:00 GMThttp://m.shnenglu.com/Streamlet/archive/2012/12/02/195900.htmlhttp://m.shnenglu.com/Streamlet/comments/195900.htmlhttp://m.shnenglu.com/Streamlet/archive/2012/12/02/195900.html#Feedback1http://m.shnenglu.com/Streamlet/comments/commentRss/195900.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/195900.html闃呰鍏ㄦ枃

婧祦 2012-12-02 19:56 鍙戣〃璇勮
]]>
EXE瀵煎嚭鍑芥暟http://m.shnenglu.com/Streamlet/archive/2012/12/01/195858.html婧祦婧祦Sat, 01 Dec 2012 03:41:00 GMThttp://m.shnenglu.com/Streamlet/archive/2012/12/01/195858.htmlhttp://m.shnenglu.com/Streamlet/comments/195858.htmlhttp://m.shnenglu.com/Streamlet/archive/2012/12/01/195858.html#Feedback15http://m.shnenglu.com/Streamlet/comments/commentRss/195858.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/195858.html闃呰鍏ㄦ枃

婧祦 2012-12-01 11:41 鍙戣〃璇勮
]]>
GDI+ DrawImage鎷変幾鏃跺彸杈圭紭鍜屼笅杈圭紭琚笎鍙橀忔槑鐨勯棶棰?/title><link>http://m.shnenglu.com/Streamlet/archive/2012/11/13/195112.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Tue, 13 Nov 2012 06:49:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2012/11/13/195112.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/195112.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2012/11/13/195112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/195112.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/195112.html</trackback:ping><description><![CDATA[<p>濡傞錛?*1鐨勫浘鐗囨媺浼鎬細(xì)琚紕鎴愶細(xì)</p> <p><a href="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/GDI-DrawImage_CEA2/image_2.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/GDI-DrawImage_CEA2/image_thumb.png" width="185" height="177"></a></p> <p> </p> <p>2*2鐨勪細(xì)琚紕鎴愶細(xì)</p> <p><a href="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/GDI-DrawImage_CEA2/image_4.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/GDI-DrawImage_CEA2/image_thumb_1.png" width="172" height="163"></a></p> <p> </p> <p>鏇村ぇ鐨勫浘鐗囷紝琛ㄧ幇涓哄彸杈圭紭鍜屼笅杈圭紭娓愬彉錛?/p> <p><a href="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/GDI-DrawImage_CEA2/image_6.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/GDI-DrawImage_CEA2/image_thumb_2.png" width="199" height="141"></a></p> <p> </p> <p>GDI+鑷綔鑱槑浜?jiǎn)鈥︹?/p> <p> </p> <p>瑙e喅鏂規(guī)硶錛?/p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-autospace: ; mso-layout-grid-align: none" align="left"><font face="Consolas"><span lang="EN-US" style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; mso-highlight: white; mso-font-kerning: 0pt"><font color="#2b91af"><font style="font-size: 9.5pt">Graphics</font></font></span><span lang="EN-US" style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; mso-highlight: white; mso-font-kerning: 0pt"><font style="font-size: 9.5pt"> g;</font></span></font></p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-autospace: ; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; mso-highlight: white; mso-font-kerning: 0pt"><font face="Consolas"><font style="font-size: 9.5pt">g.SetInterpolationMode(InterpolationModeNearestNeighbor);</font></font></span></p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-autospace: ; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; mso-highlight: white; mso-font-kerning: 0pt"><font face="Consolas"><font style="font-size: 9.5pt">g.SetPixelOffsetMode(PixelOffsetModeHalf);</font></font></span></p> <p>鏁堟灉錛?/p> <p><a href="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/GDI-DrawImage_CEA2/image_8.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/Windows-Live-Writer/GDI-DrawImage_CEA2/image_thumb_3.png" width="177" height="132"></a></p> <p> </p> <p>鐗規(guī)璁板綍銆?/p> <p>鍙傝冭祫鏂欙細(xì)<a title="http://bbs.csdn.net/topics/310212346" target="_blank">http://bbs.csdn.net/topics/310212346</a></p><img src ="http://m.shnenglu.com/Streamlet/aggbug/195112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2012-11-13 14:49 <a href="http://m.shnenglu.com/Streamlet/archive/2012/11/13/195112.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁?COM 鑴辯娉ㄥ唽琛?/title><link>http://m.shnenglu.com/Streamlet/archive/2012/09/21/191436.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Thu, 20 Sep 2012 16:34:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2012/09/21/191436.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/191436.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2012/09/21/191436.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/191436.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/191436.html</trackback:ping><description><![CDATA[     鎽樿: 寮曡█ 鍦ㄤ笂涓綃囥婂湪 DLL 涓姞鍏ョ浜屼釜 COM 綾匯嬬殑鈥滃崟鐢ㄦ埛娉ㄥ唽鈥濅竴鑺備腑錛屾垜浠浘鎻愬埌鑴辯娉ㄥ唽琛ㄤ緷璧栦竴浜嬶紝鐜板湪鎴戜滑鏉ユ妸榪欎簨鍎跨粰鍔炰簡(jiǎn)銆?  娉ㄥ唽 鎴戜滑鍦ㄤ箣鍓嶆敮鎸佷簡(jiǎn)鈥渞egsvr32 /n /i:user COMProvider.dll鈥濊繖涓娉ㄥ唽鍛戒護(hù)銆傝繖涓娉ㄥ唽鍛戒護(hù)緇欎簡(jiǎn)鎴戜滑涓瀹氱殑鎵╁睍浣欏湴銆備粠ATL榛樿鐨勪唬鐮佹潵鐪嬶紝瀵逛簬DllInstall錛岀洰鍓嶅凡瀹氫箟鐨勫懡浠よ鍙傛暟浼間箮鍙湁user錛屼簬鏄垜浠彲浠ュ畾...  <a href='http://m.shnenglu.com/Streamlet/archive/2012/09/21/191436.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Streamlet/aggbug/191436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2012-09-21 00:34 <a href="http://m.shnenglu.com/Streamlet/archive/2012/09/21/191436.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦?DLL 涓姞鍏ョ浜屼釜 COM 綾?/title><link>http://m.shnenglu.com/Streamlet/archive/2012/09/12/190331.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Tue, 11 Sep 2012 16:23:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2012/09/12/190331.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/190331.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2012/09/12/190331.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/190331.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/190331.html</trackback:ping><description><![CDATA[     鎽樿: 寮曡█ 鍦ㄥ墠闈㈠嚑綃囨枃绔犻噷錛屾垜浠凡緇忔垚鍔熻劚紱籄TL鍐欎簡(jiǎn)涓涓狢OM緇勪歡錛屽茍涓斿疄鐜頒簡(jiǎn)鑷姩鍖栥備粖澶╋紝鎴戜滑鏉ュ姞鍏ョ浜屼釜綾伙紝騫朵笖涓哄姞鍏ョ浜屼釜綾誨仛涓浜涙暣鐞嗗伐浣溿?  涓篋LL寤虹珛涓涓狹odule綾?鍦ㄥ墠闈紝鎴戜滑涓轟簡(jiǎn)浣垮緱DllCanUnloadNow鑳芥紜伐浣滆屾斁浜?jiǎn)涓涓叏灞鍙橀噺LONG g_nModuleCount錛屽茍涓斿湪SampleClass鐨勬瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟閲屽瀹冭繘琛岃嚜澧炲拰鑷噺銆傚彟澶栬繕鏈変釜IType...  <a href='http://m.shnenglu.com/Streamlet/archive/2012/09/12/190331.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Streamlet/aggbug/190331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2012-09-12 00:23 <a href="http://m.shnenglu.com/Streamlet/archive/2012/09/12/190331.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁〤OM緇勪歡鍙璺ㄨ璦璋冪敤http://m.shnenglu.com/Streamlet/archive/2012/09/09/190026.html婧祦婧祦Sun, 09 Sep 2012 04:43:00 GMThttp://m.shnenglu.com/Streamlet/archive/2012/09/09/190026.htmlhttp://m.shnenglu.com/Streamlet/comments/190026.htmlhttp://m.shnenglu.com/Streamlet/archive/2012/09/09/190026.html#Feedback3http://m.shnenglu.com/Streamlet/comments/commentRss/190026.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/190026.html闃呰鍏ㄦ枃

婧祦 2012-09-09 12:43 鍙戣〃璇勮
]]>
瑁稿啓涓涓繘紼嬪唴 COM 緇勪歡http://m.shnenglu.com/Streamlet/archive/2012/09/07/189762.html婧祦婧祦Thu, 06 Sep 2012 16:23:00 GMThttp://m.shnenglu.com/Streamlet/archive/2012/09/07/189762.htmlhttp://m.shnenglu.com/Streamlet/comments/189762.htmlhttp://m.shnenglu.com/Streamlet/archive/2012/09/07/189762.html#Feedback5http://m.shnenglu.com/Streamlet/comments/commentRss/189762.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/189762.html闃呰鍏ㄦ枃

婧祦 2012-09-07 00:23 鍙戣〃璇勮
]]>
鍐欎釜鍚?Windows Media Player 鐨勭獥鍙?/title><link>http://m.shnenglu.com/Streamlet/archive/2012/09/04/189470.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Tue, 04 Sep 2012 14:16:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2012/09/04/189470.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/189470.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2012/09/04/189470.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/189470.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/189470.html</trackback:ping><description><![CDATA[     鎽樿: 鍦ㄤ笂涓綃囦腑錛屾垜浠疄鐜頒簡(jiǎn)COM_INTERFACE瀹忥紝騫朵笖閲嶆柊鍐欎簡(jiǎn)涓涓惈鏈塛ebBrowser鐨勭獥鍙c傚湪閭i噷鎴戜滑鐣欎簡(jiǎn)涓棿灞侽leContainer銆備負(fù)浜?jiǎn)楠岃瘉OleContainer鐨勫彲鐢ㄦэ紝鐜板湪鏉ュ啓涓涓惈鏈塛indows Media Player錛堜笅鏂囩畝縐扳淲MP鈥濓級(jí)鎺т歡鐨勭獥鍙c?  WMP鎺т歡鐨勫鍣ㄧ被闄や簡(jiǎn)IOleClientSite銆両OleInPlaceSite銆両OleInPlace...  <a href='http://m.shnenglu.com/Streamlet/archive/2012/09/04/189470.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Streamlet/aggbug/189470.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2012-09-04 22:16 <a href="http://m.shnenglu.com/Streamlet/archive/2012/09/04/189470.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>灞卞涓涓?ATL 鐨?COM_INTERFACEhttp://m.shnenglu.com/Streamlet/archive/2012/09/03/189321.html婧祦婧祦Mon, 03 Sep 2012 15:17:00 GMThttp://m.shnenglu.com/Streamlet/archive/2012/09/03/189321.htmlhttp://m.shnenglu.com/Streamlet/comments/189321.htmlhttp://m.shnenglu.com/Streamlet/archive/2012/09/03/189321.html#Feedback4http://m.shnenglu.com/Streamlet/comments/commentRss/189321.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/189321.html闃呰鍏ㄦ枃

婧祦 2012-09-03 23:17 鍙戣〃璇勮
]]>
瀛︿範(fàn)涓?ATL 鐨勭戶鎵塊摼澶勭悊http://m.shnenglu.com/Streamlet/archive/2012/09/02/189135.html婧祦婧祦Sun, 02 Sep 2012 05:56:00 GMThttp://m.shnenglu.com/Streamlet/archive/2012/09/02/189135.htmlhttp://m.shnenglu.com/Streamlet/comments/189135.htmlhttp://m.shnenglu.com/Streamlet/archive/2012/09/02/189135.html#Feedback1http://m.shnenglu.com/Streamlet/comments/commentRss/189135.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/189135.html闃呰鍏ㄦ枃

婧祦 2012-09-02 13:56 鍙戣〃璇勮
]]>
瑁稿啓涓涓惈鍐呭祵IE鎺т歡鐨勭獥鍙?/title><link>http://m.shnenglu.com/Streamlet/archive/2012/09/01/188962.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Fri, 31 Aug 2012 17:04:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2012/09/01/188962.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/188962.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2012/09/01/188962.html#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/188962.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/188962.html</trackback:ping><description><![CDATA[     鎽樿: 寮曡█   涔嬪墠涔熷仛榪囦竴浜涘惈鍐呭祵IE鎺т歡鐨勪笢瑗匡紝鍙槸涓鐩寸敤MFC/ATL絳夋鏋訛紝瀵逛簬閲岄潰鐨勫師鐞嗗叾瀹炰竴鐭ュ崐瑙o紝鍙湁鑴辯瀹冧滑鍐欎竴閬嶏紝鎵嶇畻鑳界湡姝f噦銆傚墠涓嶄箙鍦ㄥ啓涓涓猄kyDriveClient鐨勬椂鍊欐濂芥湁涓涓渶姹傦紝灝辯粌涔?fàn)浜?jiǎn)涓涓嬨傛妧鏈惈閲忔病鏈夛紝鍦ㄦ璁板綍涓絎旓紝渚涘悗鏉ヤ漢鍏ラ棬錛屼緵鍓嶈緢浠壒璇勩?  鏈枃涓紝琛屾枃浠ユ祦姘村笎銆佽創(chuàng)浠g爜鏂瑰紡涓轟富錛屽悓鏃朵負(fù)浜?jiǎn)涓嶅甫鏉ヲq叉壈錛屼唬鐮佸皢灝介噺浠ヤ笉甯︽垨灝戝甫灝佽鐨勬柟寮忎功鍐欍傜洰...  <a href='http://m.shnenglu.com/Streamlet/archive/2012/09/01/188962.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Streamlet/aggbug/188962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2012-09-01 01:04 <a href="http://m.shnenglu.com/Streamlet/archive/2012/09/01/188962.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍗佷釜姝ラ鎵懼洖 Win8 涓殑寰蔣鎷奸煶鏂頒綋楠屾ā寮?/title><link>http://m.shnenglu.com/Streamlet/archive/2012/08/25/188249.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Sat, 25 Aug 2012 07:31:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2012/08/25/188249.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/188249.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2012/08/25/188249.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/188249.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/188249.html</trackback:ping><description><![CDATA[<p style="text-align: center"><em>錛坈nBeta: <a title="http://www.cnbeta.com/articles/203020.htm" target="_blank">http://www.cnbeta.com/articles/203020.htm</a>錛?</em></p> <p> </p> <p>寰蔣鎷奸煶杈撳叆娉曠殑鏂頒綋楠屾ā寮忥紝鍏跺疄鏄井杞嫾闊充竴鐩翠互鏉ョ殑涓昏妯″紡銆傜瑪鑰呬粠1.5鐗堝紑濮嬫帴瑙﹀井杞嫾闊充互鏉ュ氨涓鐩存槸榪欑妯″紡錛屼富瑕佺壒鐐瑰氨鏄暱鍙ヨ緭鍏ャ佷簩嬈$‘璁わ紝鍦ㄧ涓嬈$‘璁ょ殑鏃跺欙紝鏂囧瓧灝辮繘鍏ヤ豢浣?jīng)瀹為檯杈撳叆鍖哄煙锛屼絾鏄枃瀛椾笅闈㈡湁铏毦U匡紝姝ゆ椂鎴戜滑鍙互鐢ㄥ厜鏍囬敭宸﹀彸縐誨姩錛屽氨鍍忎笅鍥炬樉紺虹殑涓鏍鳳細(xì) </p> <p style="text-align: center"><a href="C:\Users\KJJ\AppData\Local\Temp\WindowsLiveWriter1286139640\supfiles78F9AC\image[25].png"><img border="0" alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win81.png"></a> </p> <p>鑰屽湪杈撳叆鎷奸煶鐨勬椂鍊欙紝鎴戜滑鍏跺疄鏃犻渶寮鍚欓夎瘝紿楀彛錛屼篃涓嶇敤鐪嬪睆騫曪細(xì) </p> <p style="text-align: center"><a href="C:\Users\KJJ\AppData\Local\Temp\WindowsLiveWriter1286139640\supfiles78F9AC\image[26].png"><img border="0" alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win82.png"></a> </p> <p>杈撳叆瀹屾瘯涔嬪悗鎸夌┖鏍鹼紝瑙傚療棣栭夋槸鍚︽紜紝濡傛灉姝g‘鐨勮瘽鍐嶄竴嬈$┖鏍肩‘璁わ紝鍚﹀垯鎸変竴涓嬪彸鍏夋爣閿洖鍒板彞棣栧紑濮嬮夎瘝銆傞潪甯告柟渚匡紝涔熸樉寰楀緢涓撲笟銆?</p> <p> </p> <p>涔?fàn)鎯簬璇嵕l勮緭鍏ョ殑鍚屽鍙兘鍠滄鏃跺埢鐩潃灞忓箷鍑虹幇鐨勫欓夎瘝錛屼竴鏃︽湁閿欑珛鍒葷籂姝i夋嫨銆傝岄暱鍙ヨ緭鍏ュ垯涓嶅繀榪欐牱錛岃緭鍏ユ暣涓彞瀛愶紝璁╄緭鍏ユ硶鍦ㄦ暣鍙ョ殑璇涓浛浣犻夎瘝錛屽懡涓巼浼?xì)楂樺緢澶氬Q岀壒鍒槸鍦ㄦ墦闀跨瘒鏂囩珷鐨勬椂鍊欙紝闈炲父鏈夌敤銆?</p> <p> </p> <p>寰堝鏃跺欏埆浜哄湪鐪嬫垜杈撳叆鐨勬椂鍊欙紝鍙戠幇灞忓箷涓婃湁閿欏埆瀛楋紝浼?xì)蹇嶄笉浣忔彁閱掓垜閿欎簡(jiǎn)锛屼絾鏄綋鎴戞渶鍚庣‘璁ょ殑鏃跺欙紝寰寰鍙堝浜?jiǎn)锛屼細(xì)鏄惧緱鏈変竴鐐圭偣鐤戞儜錛屼絾鏄氬父涓嶈銆傛湁瓚g殑鏄紝鎴戝湪鎵撳埆浜哄悕瀛楃殑鏃跺欙紝浠栦滑鍙戠幇涓寮濮嬬殑閿欏埆瀛楋紝涔熶細(xì)蹇嶄笉浣忔彁閱掓垜閿欎簡(jiǎn)錛屽茍涓斿杈撳叆娉曟妸鏌愪漢鐨勫悕瀛楀紕鎴愬彟澶栦竴涓瓧闈炲父鎰熷叴瓚o紝鏈夋椂浼?xì)浠ユ?鍢茬瑧"閭d釜浜恒傜劧鍚庡綋鎴戞渶鍚庡洖鏉ラ夎瘝鐨勬椂鍊欙紝浠栦滑浼?鎸囪矗"騫插槢涓寮濮嬩笉閫夊鐨勫瓧鈥︹︽垜宸茬粡涔?fàn)鎯簡(jiǎn)銆備絾鏄暣鍙ヨ緭鍏ュ甫鏉ョ殑渚挎嵎涔嬪錛屽ぇ閮ㄥ垎浜烘槸娌℃硶璁よ瘑鍒扮殑銆傛墍浠ユ垜浠婂ぉ鍦ㄨ繖閲岃姳寰堝ぇ鐨勭瘒騫呬粙緇嶄竴涓嬨?</p> <p> </p> <p>閬楁喚鐨勬槸錛屽井杞嫾闊?.5銆?.0銆?.0閮芥病浜哄彨濂姐傚埌Office2003鐨勬椂鍊欙紝鍥犱負(fù)"鏂頒綋楠?妯″紡鐨勫嚭鐜幫紝浣垮緱涓閮ㄥ垎浜哄彨濂斤紝浣嗛偅閮ㄥ垎浜哄叾瀹炶繕鏄妸瀹冨綋浣滆瘝緇勮緭鍏ユ硶鏉ョ敤鐨勩傚埌Office2010鍑烘潵鐨勬椂鍊欙紝鍙堟湁涓閮ㄥ垎浜哄彨濂斤紝瀹為檯涓婂緢澶т竴閮ㄥ垎浜烘槸涓?綆鎹?妯″紡鍙ソ銆傚埌鐜板湪Win8鎴愪簡(jiǎn)綆浣撲腑鏂囪璦涓嬮粯璁よ緭鍏ユ硶錛屽嵆渚挎湁寮烘帹鐨勫懗閬擄紝浣嗗ソ澶氫漢榪樻槸鍙ソ錛岃屾柊浣撻獙妯″紡鐨勬秷澶憋紝鍗村緢灝戞湁浜洪棶媧ャ?</p> <p> </p> <p>涓嬮潰姝e紡鏉ョ湅鏍囬涓彁鍒扮殑闂銆俉in8瀹夎瀹屾瘯鍚庣畝浣撲腑鏂囦笅鍙湁涓涓井杞嫾闊崇畝鎹鳳紝鏂頒綋楠屾ā寮忎笉瑙佷簡(jiǎn)錛侊紒錛?</p> <p> </p> <p style="text-align: center"><a href="C:\Users\KJJ\AppData\Local\Temp\WindowsLiveWriter1286139640\supfiles78F9AC\image[5].png"><img border="0" alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win83.png"></a> </p> <p> </p> <p>鏈夐渶瑕佺殑鍚屽錛岃璺熼殢絎旇咃紝涓姝ヤ竴姝ユ壘鍥炴柊浣撻獙妯″紡銆?</p> <p> </p> <p>1銆佹墦寮寮濮嬪睆騫曪紝鍦ㄨ嫳鏂囩姸鎬佷笅杈撳叆regedit錛岀劧鍚庡洖杞︼紝鎵撳紑娉ㄥ唽琛ㄧ紪杈戝櫒銆傦紙閬囧埌UAC鎻愰啋錛岃閫夋嫨"鏄?錛?</p> <p>2銆佸湪宸︿晶灞曞紑鐩綍鏍?wèi)锛屼竴鐩村埌HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{81d4e9c9-1d3b-41bc-9e6c-4b40bf79e35e}錛?</p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win84.png"> </p> <p> </p> <p>寰蔣瀵硅繖涓欏瑰仛浜?jiǎn)鐗箤D婄殑鏉冮檺淇濇姢錛屽畠鐨勬潈闄愬拰鐩擱偦鐨勯偅鍑犱釜涓嶄竴鏍鳳紝鎴戜滑瑕佸彇寰楀啓鏉冮檺銆?</p> <p> </p> <p>3銆佸彸閿崟鍑誨畠銆侀夋嫨鏉冮檺錛屾墦寮濡備笅鍥劇殑紿楀彛錛?</p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win85.png"> </p> <p> </p> <p>4銆佸崟鍑?楂樼駭"錛屽啀鎵撳紑涓涓獥鍙o細(xì) </p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win86.png"> </p> <p> </p> <p>5銆佸湪鎵鏈夎呯殑鍙寵竟鐐瑰嚮"鏇存敼"錛岃緭鍏?everyone"鎴栬呭綋鍓嶇櫥褰曠敤鎴峰悕錛屾寜"紜畾"錛屽茍閫変腑"鏇挎崲瀛愬鍣ㄥ拰瀵硅薄鐨勬墍鏈夎?錛岀劧鍚庢寜搴旂敤銆傦紙涓嶈鍏抽棴榪欎釜紿楀彛錛岀瓑涓嬫垜浠繕瑕佹敼鍥炴潵銆傦級(jí) </p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win87.png"> </p> <p> </p> <p>6銆佺劧鍚庣偣鍑誨乏涓嬫柟鐨勫惎鐢ㄧ戶鎵匡紙鎸変簡(jiǎn)鍚庤鎸夐挳鍙樹負(fù)紱佺敤緇ф壙錛夛紝騫墮変腑"浣跨敤鍙粠姝ゅ璞$戶鎵跨殑鏉冮檺欏圭洰鏇挎崲鎵鏈夊瓙瀵硅薄鐨勬潈闄愰」鐩?銆傛渶鍚庢寜"搴旂敤"錛岄亣鍒版彁紺洪夋嫨"鏄?銆?</p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win88.png"> </p> <p> </p> <p>鐜板湪錛岃繖涓獥鍙e彉鎴愯繖涓牱瀛愪簡(jiǎn)錛?</p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win89.png"> </p> <p> </p> <p>淇濈暀榪欎釜紿楀彛錛屾垜浠繘琛屼笅涓姝ャ?</p> <p> </p> <p>7銆佹墦寮寮濮嬪睆騫曪紝鍦ㄨ嫳鏂囩姸鎬佷笅杈撳叆"cmd"錛屽乏渚у嚭鐜?鍛戒護(hù)鎻愮ず絎?錛屽彸閿偣鍑婚変腑瀹冿紝鍐嶅埌灞忓箷涓嬫柟鐐瑰嚮"浠ョ鐞嗗憳韜喚榪愯"錛岄亣鍒癠AC鎻愮ず閫夋嫨"鏄?銆傝繖鏍鋒垜浠墦寮鍏鋒湁綆$悊鍛樻潈闄愮殑鍛戒護(hù)鎻愮ず絎︾獥鍙o紝宸ヤ綔璺緞浣嶄簬System32鐩綍銆?</p> <p> </p> <p>8銆佽緭鍏?regsvr32 ime\imesc\imsctip.dll"錛屽茍鎸夊洖杞︺?</p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win810.png"> </p> <p> </p> <p>鐩村埌鐪嬪埌涓嬪浘鐨勬彁紺猴紝鐐瑰嚮紜畾錛屽叧闂懡浠ゆ彁紺虹紿楀彛銆?</p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win811.png"> </p> <p> </p> <p>9銆佸洖鍒板垰鎵嶇殑楂樼駭瀹夊叏璁劇疆紿楀彛錛岀偣鍑誨乏涓嬫柟鐨?紱佺敤緇ф壙"鎸夐挳錛岃繖鏃跺嚭鐜頒笅鍥炬彁紺猴細(xì) </p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win812.png"> </p> <p> </p> <p>閫夋嫨絎簩欏癸紝"浠庢瀵硅薄涓垹闄ゆ墍鏈変互緇ф壙鐨勬潈闄?錛?</p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win813.png"> </p> <p> </p> <p>騫墮変腑"浣跨敤鍙粠姝ゅ璞$戶鎵跨殑鏉冮檺欏圭洰鏇挎崲鎵鏈夊瓙瀵硅薄鐨勬潈闄愰」鐩?錛屾寜"搴旂敤"錛岄亣鍒版彁紺洪夋嫨"鏄?銆?</p> <p> </p> <p>10銆佺偣鍑諱笂鏂規(guī)墍鏈夎呭彸杈圭殑"鏇存敼"錛岃緭鍏?nt service\trustedinstaller"錛屾寜"紜畾"錛屽茍閫変腑"鏇挎崲瀛愬鍣ㄥ拰瀵硅薄鐨勬墍鏈夎?錛岀劧鍚庢寜"搴旂敤"銆?</p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win814.png"> </p> <p> </p> <p>鑷蟲錛屾垜浠皢娉ㄥ唽琛ㄦ潈闄愭仮澶嶅鍒濅簡(jiǎn)銆?</p> <p> </p> <p>鎵撳紑杈撳叆娉曠鐞嗙晫闈細(xì) </p> <p> </p> <p style="text-align: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/Streamlet/082512_0730_Win815.png"> </p> <p> </p> <p>鎴戜滑鍙互鐪嬪埌澶氬嚭鏉ョ殑"Microsoft Pinyin NewExperience"浜?jiǎn)锛屽畠灏辨槸鎴戜滑瑕佹墑勬栴C綋楠屾ā寮忥紒 </p> <p> </p> <p>鎮(zhèn)插墽鐨勬槸錛岃矊浼兼柊浣撻獙妯″紡鍦∕etro鐣岄潰涓嬫湁闂錛屾瘡嬈$‘璁よ緭鍏ワ紝鍏夋爣閮戒細(xì)鍥炲埌鏈鍓嶉潰<font color="#d16349">錛堟敞錛氱‘璁よ繖鏄綋鏃舵柊嫻井鍗歐in8瀹㈡埛绔殑Bug錛屼笉鏄緭鍏ユ硶鐨勯棶棰橈紝鏂版氮寰崥璨屼技宸茬粡淇姝ら棶棰橈級(jí)</font>銆備篃璁告槸鍥犱負(fù)鏈夎繖浜汢ug錛屽井杞墠闅愯棌瀹冪殑鍚с備笉榪囷紝妗岄潰妯″紡涓嬩嬌鐢ㄨ搗鏉ユ湭鍙戠幇浠諱綍闂鍝︺?</p><img src ="http://m.shnenglu.com/Streamlet/aggbug/188249.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2012-08-25 15:31 <a href="http://m.shnenglu.com/Streamlet/archive/2012/08/25/188249.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璋冪敤綰﹀畾鎬葷粨http://m.shnenglu.com/Streamlet/archive/2012/05/12/174610.html婧祦婧祦Fri, 11 May 2012 17:36:00 GMThttp://m.shnenglu.com/Streamlet/archive/2012/05/12/174610.htmlhttp://m.shnenglu.com/Streamlet/comments/174610.htmlhttp://m.shnenglu.com/Streamlet/archive/2012/05/12/174610.html#Feedback0http://m.shnenglu.com/Streamlet/comments/commentRss/174610.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/174610.html浠ュ墠鍋?Function 鐨勬椂鍊欐伆濂藉彇宸ч伩鍏嶆帀浜?jiǎn)锛寴q欎簺澶╁湪鍋?Bind錛屼笉寰楀凡瑕佹妸姣忎釜璋冪敤綰﹀畾緗楀垪涓閬嶃傞『鎵嬫妸榪欎簺涓滆タ澶嶄範(fàn)涓涓嬶紝鎬葷粨濡備笅鈥斺?/p>

錛堟墍鏈夊唴瀹歸拡瀵?VC 緙栬瘧騫沖彴錛?/p>

 

涓銆亁86

鍚嶇О 浼犲弬鏂瑰紡 鏍堟竻鐞?/td> C 璇█鍑芥暟閲嶅懡鍚嶏紙渚嬶細(xì)int func(int, double)錛?/td>
__cdecl 浠庡彸鑷沖乏鍘嬫爤 涓昏皟鍑芥暟 鍓嶉潰鍔犫淿鈥濓紙_func錛?/td>
__stdcall 浠庡彸鑷沖乏鍘嬫爤 琚皟鍑芥暟 鍓嶉潰鍔犫淿鈥濓紝鍚庨潰鍔犫淍鈥濆啀鍔犲弬鏁板崄榪涘埗瀛楄妭鏁幫紙_func@12錛?/td>
__fastcall 鍓嶄袱涓笉澶т簬DWORD闀垮害鐨勫弬鏁頒粠宸﹁嚦鍙沖垎鍒瓨鍒?ECX銆丒DX錛屽叾浣欎粠鍙寵嚦宸﹀帇鏍?/td> 琚皟鍑芥暟 鍓嶉潰鍔犫淍鈥濓紝鍚庨潰鍔犫淍鈥濆啀鍔犲弬鏁板崄榪涘埗瀛楄妭鏁幫紙@func@12錛?/td>
__thiscall ECX 瀛?this錛屽叾浣欎粠鍙寵嚦宸﹀帇鏍?/td> 琚皟鍑芥暟 浠呯敤浜?C++

 

浜屻亁64

鍚嶇О 浼犲弬鏂瑰紡 鏍堟竻鐞?/td>  
__fastcall 鍓嶅洓涓暣鏁?嫻偣鏁版斁鍦?RCX/XMM0銆丷DX/XMM1銆丷8/XMM2銆丷9/XMM3錛屽叾浣欏帇鏍堛?br>濡傛灉鍓?4 涓弬鏁板垎鍒負(fù) int銆乫loat銆乴ong銆乨ouble錛屽畠浠皢鍒嗗埆琚瓨鍒?RCX銆乆MM1銆丷8銆乆MM3 琚皟鍑芥暟  

64浣嶇紪璇戠幆澧冧笅錛屽彲浠ユ寚瀹?__cdecl銆乢_stdcall銆乢_fastcall錛屼絾鏄紪璇戝櫒浼?xì)蹇界暐瀹冧滑銆備袱涓樉紺烘寚瀹氫簡(jiǎn)涓嶅悓璋冪敤綰﹀畾鐨勫嚱鏁頒笉鏋勬垚閲嶈澆錛岃屾瀯鎴愰噸瀹氫箟閿欒銆?/p>

婧祦 2012-05-12 01:36 鍙戣〃璇勮
]]>
濡備綍鍐?鎵ц鑰楁椂浠誨姟鐨勩佸彲闅忔椂绔嬪嵆閫鍑虹殑鍑芥暟 鍛紵http://m.shnenglu.com/Streamlet/archive/2011/05/26/147133.html婧祦婧祦Wed, 25 May 2011 16:36:00 GMThttp://m.shnenglu.com/Streamlet/archive/2011/05/26/147133.htmlhttp://m.shnenglu.com/Streamlet/comments/147133.htmlhttp://m.shnenglu.com/Streamlet/archive/2011/05/26/147133.html#Feedback29http://m.shnenglu.com/Streamlet/comments/commentRss/147133.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/147133.html濡傞銆?/p>

紼嶅井瑙i噴涓嬶紝鍥犱負(fù)鏈夊彲鑳芥湁浜轟細(xì)璇細(xì)錛氭斁鏂扮嚎紼嬮噷闈㈠幓涓嶅氨鍙互浜?jiǎn)锛煒q欐病鏈夎В鍐抽棶棰樸傚姝ょ殑璇濓紝浣犻偅涓嚎紼嬪嚱鏁版庝箞鍐欙紵鎴栬呯嚎紼嬪嚱鏁伴噷璋冪敤鐨勬煇涓換鍔″嚱鏁版庝箞鍐欙紵鎬諱箣錛屽綰跨▼铏界劧鎬繪槸鍑虹幇鍦ㄨ繖浜涢棶棰樼殑瑙e喅鏂規(guī)涓紝浣嗕笉鏄綰跨▼瑙e喅浜?jiǎn)杩欎釜闂銆傚棷鈥︹︿笉鐭ラ亾璇存竻妤氫簡(jiǎn)娌★紵

鐩墠鎴戝績(jī)閲岀殑絳旀鍙湁榪欎竴縐嶆ā寮忥細(xì)

bool DoTask(HANDLE hQuitSignal)
{
    while (!QuitCondition)
    {
        if (WaitForSingleObject(hQuitSignal, 0) == WAIT_OBJECT_0)
        {
            return false;
        }

        // Do something
    }

    return true;
}

鍏朵腑錛屸?/ Do something鈥濋儴鍒嗚緇嗗寲鍒扮灛闂存墽琛屽畬鎴愮殑緇嗗害銆?/p>

浣嗘槸鎴戝緢鍥版儜鐨勬槸錛屽鏋滆繖浜涗換鍔″緢綣侀噸錛岄毦閬撴垜蹇呴』姣忚繘琛屼竴浜涙搷浣滃氨 if (WaitForSingleObject(hQuitSignal, 0) == WAIT_OBJECT_0) 媯(gè)鏌ヤ笅鍚楋紵榪欐牱宀備笉鏄繖縐嶆嫻嬩唬鐮佸厖鏂ュ湪浠誨姟涓簡(jiǎn)錛?/p>

涓嶇煡鍚勪綅鏈変綍緇忛獙鍜屼綋浼?xì)锛屾眰鏁檦



婧祦 2011-05-26 00:36 鍙戣〃璇勮
]]>
涔熻皥璋圙UI妗嗘灦http://m.shnenglu.com/Streamlet/archive/2011/01/16/138609.html婧祦婧祦Sun, 16 Jan 2011 12:05:00 GMThttp://m.shnenglu.com/Streamlet/archive/2011/01/16/138609.htmlhttp://m.shnenglu.com/Streamlet/comments/138609.htmlhttp://m.shnenglu.com/Streamlet/archive/2011/01/16/138609.html#Feedback11http://m.shnenglu.com/Streamlet/comments/commentRss/138609.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/138609.html浜嬫儏鐨勭紭璧鋒槸錛岃愪笉浣忓瘋瀵烇紝鍑嗗寮濮嬮燝UI鐨勮疆瀛愩?/p>

GUI妗嗘灦錛岃鍋氱殑浜嬫儏鎴戞兂澶ф鏄繖涔堝嚑姝ワ細(xì)

  1. 瀹炵幇鍥炶皟鍑芥暟鐨勬垚鍛樺寲銆?
  2. 瀹炵幇鏂逛究紼嬪害鍙帴鍙楃殑娑堟伅鏄犲皠銆?
  3. 紜畾涓婅堪鏍稿績(jī)閮ㄤ歡鐨勪嬌鐢ㄦ柟寮忋?
  4. 鍒墮犲ぇ閲忕殑鎺т歡銆?/li>

鍓嶄笁姝ヨ璧扮殑姣旇緝?yōu)畯蹇?jī)錛岀鍥涙鏄綋鍔涘姵鍔ㄣ?/p>

絎竴姝ワ紝W(xué)indows涓嬪彲鍙傝冪殑鏄疢FC鏂瑰紡銆乄TL鏂瑰紡錛屼互鍙?qiáng)鍒╃敤Window鐩稿叧灞炴т腑鐨勬煇浜涚┖浣嶃傚墠涓嶄箙鍒氬垵姝ョ湅榪嘩TL鐨勬満鍒訛紝铏界劧褰撴椂娌″啓GUI妗嗘灦鐨勬墦綆楋紝涓嶈繃涔熸湁鐐規(guī)妧鏈噯澶囩殑鎰忔濅簡(jiǎn)銆傜幇瀛︾幇鐢ㄥ惂銆傝繖閲屼竴涓彲浠ラ瑙佺殑闂鏄?4浣嶅吋瀹癸紝鐜板湪娌℃湁嫻嬭瘯鐜錛屽厛涓嶇銆?/p>

鎺ヤ笅鏉ョ湅絎簩姝ヤ簡(jiǎn)錛屾墍瑕佸仛鐨勪簨鎯呭氨鏄妸 WndProc 涓嬬殑 涓鍫?case 鏈夋晥鍦扮粍緇囪搗鏉ワ紝鎴栬呮崲涓啓娉曘備箣鍓嶈繕鐪熶笉鐭ラ亾 MFC/WTL 鐨?BEGIN_MSG_MAP銆備互涓哄緢楂樻繁鐨勶紝鎯充笉鍒板氨鏄嫾瑁呮垚涓涓ぇ鐨?WndProc銆傚厛鎶勪簡(jiǎn)錛屽仛鎴愪竴涓彲榪愯鐨勭増鏈備絾鏄紝榪欐柟闈細(xì)鐩存帴鍐沖畾浠ュ悗鐨勫ぇ閮ㄥ垎浣跨敤鏂瑰紡錛屽崟鍗曟妱涓涓嬫剰涔変笉澶с傚悗鏉ュ幓 @OwnWaterloo 鏇炬帹鑽愯繃鐨?@cexer 鐨勫崥瀹笂閫涗簡(jiǎn)鍑犲湀錛岀涓鍦堢湅浜?jiǎn)涓浜涙弿榪版ф枃瀛楋紝絎簩鍦堝ぇ姒傜湅浜?jiǎn)涓嬫妧鏈紝絎笁鍦堟槸鎸栧潫錛岄偅涓紶璇翠腑鐨?cppblog 絎竴楂樻ゼ鍟娿傘傚叾涓湁涓涓嬌鐢ㄦ柟寮忓緢鏂伴錛屽棷鈥︹︽槸閭d釜涓嶉渶瑕佹墜鍔ㄥ啓鏄犲皠浠g爜錛岀洿鎺ュ疄鐜版秷鎭鐞嗗嚱鏁扮殑鏂瑰紡銆備笉榪囨垜鍚庢潵瑙夊緱榪樻槸涓嶈榪欑鏍峰瓙浜?jiǎn)锛屽嚟鎴戜釜錆h鐨勭洿瑙夛紝濡傛灉鎴戝啓涓嬭繖鏍風(fēng)殑澶勭悊鍑芥暟錛屾垜澶ф浼?xì)鍥犱皋Z笉鐭ラ亾浣曟椂娉ㄥ唽浜?jiǎn)杩欎釜鍑芥暟鑰屾壘涓嶅埌璋冪敤鏉ユ簮鑰屾劅鍒伴儊闂楓傚湪Windows鍥炶皟鏈哄埗鐨勫獎(jiǎng)鍝嶄笅錛屾垜鍙兘浼?xì)寰堟姳鏈夊亸瑙佸湴璁や负锛屽彧鏈夌洿鎺ユ潵鑷猈ndProc鐨勮皟鐢紝鎵嶇畻鏄潵婧愭槑紜殑錛屼笉闇瑕佺戶緇拷韙殑鈥斺斿綋鐒?dòng)灱寴q欐槸寤虹珛鍦ㄦ垜涓嶇啛鎮(zhèn)夎繖涓鏋剁殑鍩虹涓婄殑銆傛鏋跺繀鐒墮渶瑕侀殣钘忚皟鐢ㄦ潵婧愶紝浠ュ強(qiáng)鍏朵粬涓浜涚粏鑺傦紝浣嗘槸鍦ㄨ繖涓姝ワ紝鎴戣寰楃◢寰湁鐐規(guī)棭銆?/p>

鍒氭墠璇村埌鐨勯兘鏄潤鎬佺粦瀹氥傜幇鍦ㄦ垜鏈夌偣鍊懼悜浜庡姩鎬佺粦瀹氥備粠浣跨敤鏂逛究紼嬪害涓婃潵鐪嬶紝鍔ㄦ佺粦瀹氭洿鍏風(fēng)伒媧繪с備粠鎬ц兘涓婏紝鍔ㄦ佺粦瀹氫笅錛屾秷鎭埌澶勭悊鍑芥暟鐨勬煡鎵捐繃紼嬪彲浠ユ洿蹇紝闈欐佺粦瀹氬彧鑳介亶鍘嗐傚綋鐒?dòng)灱屾湭蹇厼畣鈥滄坊鍔犲鐞嗗嚱鏁扳濊繖鏍風(fēng)殑鎺ュ彛鎻愪緵緇欐渶緇堢敤鎴鳳紝浣嗘槸榪欎釜鎿嶄綔瀵逛簬鏁翠釜鎺т歡浣撶郴鐨勫艦鎴愬簲璇ヨ洰鏈夊府鍔╃殑鍚с傛瘮濡侻FC涓嬩竴涓帶浠剁被浣跨敤Message Map鍋氫簡(jiǎn)涓浜涗簨鎯咃紝緇ф壙綾誨氨鏃犳硶鐩存帴緇ф壙榪欎釜鍔ㄤ綔錛屼簬鏄彲鑳介渶瑕佸仛涓ゅ澶勭悊鍑芥暟璋冪敤鏈哄埗錛屼竴濂楁槸緇欏唴閮ㄧ戶鎵跨敤鐨勶紝涓濂楁槸緇欑敤鎴風(fēng)殑銆傚鏋滃湪鏈寮濮嬬殑鍩虹被淇濆瓨涓涓秷鎭槧灝勶紝姣忎釜娑堟伅瀵瑰簲涓鏃忓鐞嗗嚱鏁幫紝姣忎釜緇ф壙綾婚兘鍙互娣誨姞澶勭悊鍑芥暟錛屼絾涓嶅垹闄ょ埗綾誨凡娣誨姞鐨勫嚱鏁幫紝榪欐牱灝卞彲浠ュ湪涓濂桵essage Map鏈哄埗涓嬭幏寰楃埗綾葷殑琛屼負(fù)銆備互涓婏紝涓嶇煡閬撹冭檻寰楀涓嶅錛屾榪庤璁恒?/p>

鍏朵腑錛岀埗綾諱繚瀛樺瓙綾葷粰鍑虹殑鍙皟鐢ㄤ綋騫舵紜墽琛屾槸涓棶棰樸傛姌鑵句簡(jiǎn)涓浜涙椂闂達(dá)紝閮芥病鏈夋垚鍔熴傛垜姣旇緝綰犵粨錛屾兂鐭ラ亾闄や簡(jiǎn)鐢╢unction涔嬬被鐨勭帺鎰忓効澶栬繕鏈夋病鏈夊叾浠栫畝鍗曞彲琛岀殑鍔炴硶銆傚悗鏉ュ幓@zblc鐨勭兢涓婇棶錛?a href="mailto:zblc@vczh" target="_blank">@vczh涔熻闇瑕佷竴濂梖unction鏈哄埗銆傜湅鏉ユ槸閫冧笉寮榪欎釜闂浜?jiǎn)銆傚棷鈥︹︽兂璧鋒潵澶х害涓や釜鏈堝墠涓涓悓浜嬩粠codeproject鎵炬潵浜?jiǎn)涓涓狦UI妗嗘灦鐪嬶紝鐪嬪埌鍑犺鏁存暣榻愰綈鐨?AddMsgHandler(WM_CREATE, XXX(this, &MyWindow::OnCreate));錛屽徆涓嶅凡銆傛垜褰撴椂鎵撹叮璇達(dá)紝榪欏緢綆鍗曠殑錛屾棤闈炴槸鎼炰簡(jiǎn)涓?function 鑰屽凡錛屽摜鍝ヤ袱澶╁氨鑳芥悶瀹氥備簬鏄粬浠彨鎴戜袱澶╂悶瀹氥傛垜榧撴崳浜?0鍒嗛挓錛屾悶涓嶅畾錛屽彧濂戒涪涓鍙ワ紝鐪熺殑寰堢畝鍗曠殑錛岀被浼糱oost::function錛屼綘鍘葷湅涓涓嬪氨鐭ラ亾浜?jiǎn)锛屽摜鍝ヨ骞矉z諱簡(jiǎn)銆?/p>

鏃㈢劧鐜板湪榪樻槸緇曚笉寮榪欎釜闂錛岄偅榪樻槸鎼炰竴涓嬩簡(jiǎn)錛屾悶濂戒互鍚庡氨鏉冧笖褰撳仛緇欎粬浠氦浣滀笟鍚с傛垜浼?xì)鍙﹀啓涓綃囨枃绔犺璇磃unction鐨勪簨鎯咃紝榪欓噷鍏堢暐榪囥傜幇鍦ㄥ紑濮嬪亣璁捐繖涓鏂藉凡緇忛犲ソ浜?jiǎn)銆傞偅涔堬紝紿楀彛綾諱腑澶ф鍙互榪欎箞瀹氫箟鐩稿叧綾誨瀷錛?/p>

typedef Function<bool (WPARAM, LPARAM)> MsgHandler;
typedef List<MsgHandler> MsgHandlerList;
typedef Map<UINT, MsgHandlerList> MsgMap;

鐒跺悗鍐嶅畾涔変竴涓彉閲忥細(xì)

MsgMap  m_MsgMap;

瀹冪敤浜庝繚瀛樻秷鎭槧灝勩傛渶緇堢殑鍥炶皟鍑芥暟鍙互鍐欐垚錛?/p>

LRESULT WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    bool bHandled = false;

    MsgMap::Iterator itMsgMap = m_MsgMap.Find(uMsg);

    if (itMsgMap != m_MsgMap.End())
    {
        for (MsgHandlerList::Iterator it = itMsgMap->Value.Begin();
             !bHandled && it != itMsgMap->Value.End(); ++it)
        {
            bHandled = (*it)(wParam, lParam);
        }
    }

    return bHandled ? TRUE : DefWindowProc(m_hWnd, uMsg, wParam, lParam);
}

鏈鍚庣粰涓坊鍔犳秷鎭槧灝勭殑鎺ュ彛錛?/p>

void AppendMsgHandler(UINT uMsg, MsgHandler pMsgHandler)
{
    m_MsgMap[uMsg].PushBack(pMsgHandler);
}

鍒扮洰鍓嶄負(fù)姝紝鎴戜滑鐨勭獥鍙g被澶ц嚧涓婂彲浠ュ啓鎴愯繖鏍鳳細(xì)

#include <Windows.h>
#include <tchar.h>
#include "../GUIFramework/xlWindowBase.h"

class Window : public xl::WindowBase
{
public:
    Window()
    {
        AppendMsgHandler(WM_ERASEBKGND, MsgHandler(this, &Window::OnEraseBackground));
        AppendMsgHandler(WM_PAINT,      MsgHandler(this, &Window::OnPaint));
        AppendMsgHandler(WM_LBUTTONUP,  MsgHandler(this, &Window::OnLButtonUp));
        AppendMsgHandler(WM_RBUTTONUP,  MsgHandler(this, &Window::OnRButtonUp));
        AppendMsgHandler(WM_DESTROY,    MsgHandler(this, &Window::OnDestroy));
    }

protected:
    bool OnEraseBackground(WPARAM wParam, LPARAM lParam)
    {
        return false;
    }

    bool OnPaint(WPARAM wParam, LPARAM lParam)
    {
        PAINTSTRUCT ps = {};
        BeginPaint(m_hWnd, &ps);

        RECT rect = { 200, 200, 400, 400 };
        DrawText(ps.hdc, _T("Hello, world!"), -1, &rect, DT_CENTER | DT_VCENTER);

        EndPaint(m_hWnd, &ps);
        return false;
    }

    bool OnLButtonUp(WPARAM wParam, LPARAM lParam)
    {
        MessageBox(m_hWnd, _T("LButtonUp"), _T("Message"), MB_OK | MB_ICONINFORMATION);
        return false;
    }

    bool OnRButtonUp(WPARAM wParam, LPARAM lParam)
    {
        MessageBox(m_hWnd, _T("RButtonUp"), _T("Message"), MB_OK | MB_ICONINFORMATION);
        return false;
    }

    bool OnDestroy(WPARAM wParam, LPARAM lParam)
    {
        PostQuitMessage(0);
        return false;
    }
};

鍦ㄦ渶鍩虹鐨?WindowBase 閲岋紝鎼炴垚榪欐牱澶ф宸笉鏄緢澶氫簡(jiǎn)銆傛殏鏃跺厛鐪嬬涓夋銆傚埌鐩墠涓烘錛屾垜鎵鍚榪囩殑 GUI 妗嗘灦閮芥槸鐪熸鐨勬鏋訛紝浼間箮娌℃湁鈥淕UI 搴撯濄備負(fù)浠涔堜竴瀹氳浠ョ戶鎵挎煇涓熀綾葷殑鏂瑰紡鏉ヤ嬌鐢ㄥ憿錛熷鏋滃儚涓嬮潰榪欐牱浣跨敤鍛紵

class Window
{
private:
    xl::WindowBase m_WindowBase;

public:
    Window()
    {
        m_WindowBase.AppendMsgHandler(WM_ERASEBKGND, MsgHandler(this, &Window::OnEraseBackground));
        m_WindowBase.AppendMsgHandler(WM_PAINT,      MsgHandler(this, &Window::OnPaint));
        m_WindowBase.AppendMsgHandler(WM_LBUTTONUP,  MsgHandler(this, &Window::OnLButtonUp));
        m_WindowBase.AppendMsgHandler(WM_RBUTTONUP,  MsgHandler(this, &Window::OnRButtonUp));
        m_WindowBase.AppendMsgHandler(WM_DESTROY,    MsgHandler(this, &Window::OnDestroy));
    }
};

榪欎釜闂錛屼笉鐭ラ亾鍚勪綅鏈夋病鏈変粈涔堟濊冿紵

榪樻湁涓涓棶棰樻槸錛屾帴涓嬪幓瑕佷笉瑕佸皢 WPARAM 鍜?LPARAM 鐨勫惈涔夊交搴曡В鏋愭帀錛屾悶鎴愪竴緋誨垪 PaintParam銆丒raseBackgroundParam銆丩ButtonUpParam銆丷ButtonUpParam錛孌estroyParam錛岃浣跨敤鐨勬椂鍊欎笌鍘熷娑堟伅鍙傛暟褰誨簳闅旂鍛紵

鏈鍚庝竴姝ワ紝铏借鏄綋鍔涙椿錛屼絾榪欒窡鏈緇堢殑搴旂敤鍦哄悎瀵嗗垏鐩稿叧錛岄渶瑕佹彁渚涙庝箞鏍風(fēng)殑鍔熻兘鏄竴浠墮渶瑕佽冮噺鐨勪簨銆?/p>

鐩墠璧板湪絎簩姝ワ紝鎵浠ヤ笅闈㈢殑涓や釜闂鎬濊冨緱涓嶅銆傛眰緇忛獙錛屾眰鎰忚銆?/p>

婧祦 2011-01-16 20:05 鍙戣〃璇勮
]]>
鎯寵璁轟釜璇濋錛屽叧浜嶥LL鐨勪嬌鐢ㄦ柟寮?/title><link>http://m.shnenglu.com/Streamlet/archive/2010/12/18/136862.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Sat, 18 Dec 2010 14:35:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2010/12/18/136862.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/136862.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2010/12/18/136862.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/136862.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/136862.html</trackback:ping><description><![CDATA[<p>鍓嶈█錛?br>DLL 鏄釜寰堜箙榪滅殑鏂囦歡鏍煎紡錛屼互鑷充簬瀹冨彧鏀寔瀵煎嚭鍑芥暟錛堣蹇界暐 .net 鐨?DLL錛夈傝嚦浜庡鍑?class錛屼篃鏄敱浜庣紪璇戠郴緇熺殑鏀寔鎵嶅媺鍕夊己寮鴻兘榪涜錛屽彧鑳介潤鎬佸姞杞斤紝瀹為檯涓婂浜嶥LL鏂囦歡鏉ヨ瀹冨鍑虹殑榪樻槸鍑芥暟銆傗斺斾互涓婏紝涓漢鐨勪竴鐐規(guī)祬鏄劇悊瑙c?/p> <p>闂錛?br>鏈夋病鏈夊瓨鍦ㄤ竴縐嶅ソ鐨勬柟寮忥紝璁〥LL鑳藉琚姩鎬佸姞杞斤紝騫朵笖鑳藉鏂逛究鍦板緱鍒伴噷闈㈢殑 C++ class 淇℃伅錛?br>澶囬夛細(xì)<br>1銆佸埆鎯充簡(jiǎn)錛岃佽佸疄瀹炲湴鐢ㄥ惂錛岃繕鏄鍑虹函C鍑芥暟= =<br>2銆佸ぇ鑳嗙殑瀵煎嚭 class 鍚э紝濡傛灉鍔ㄦ佸姞杞斤紝鑷繁鍘繪嫾閭d簺緙栬瘧鍚庡悕瀛楀惂銆傘?br>3銆丆OM 褰㈠紡錛熷彲鏄紝瑕佹敞鍐屽埌緋葷粺涓幓錛屽嚟絀哄浜?jiǎn)绯痪l熸敞鍐岃〃渚濊禆<br>4銆佽繕鏈夊悧錛?br>5銆佺敋鑷沖彲浠ユ姏寮DLL錛屾湁娌℃湁綾諱技鐨勪竴縐嶆柟寮忥紝鍙敤浜庝簩榪涘埗浠g爜鐨勬ā鍧楀垝鍒嗕互鍙?qiáng)闂簮鐨勪唬鐮侀噸鐢ㄥQ?/p> <p>錛堣嚦浜庤法騫沖彴鍟ョ殑鍏堜笉鑰冭檻鍚э紝鏆傚畾Windows騫沖彴涓嬪惂錛?/p> <p>璇蜂笉鍚濇寚鏁檦</p><img src ="http://m.shnenglu.com/Streamlet/aggbug/136862.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2010-12-18 22:35 <a href="http://m.shnenglu.com/Streamlet/archive/2010/12/18/136862.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀛︿範(fàn)涓?WTL 鐨?thunkhttp://m.shnenglu.com/Streamlet/archive/2010/10/24/131064.html婧祦婧祦Sun, 24 Oct 2010 08:44:00 GMThttp://m.shnenglu.com/Streamlet/archive/2010/10/24/131064.htmlhttp://m.shnenglu.com/Streamlet/comments/131064.htmlhttp://m.shnenglu.com/Streamlet/archive/2010/10/24/131064.html#Feedback39http://m.shnenglu.com/Streamlet/comments/commentRss/131064.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/131064.html鐢變簬 C++ 鎴愬憳鍑芥暟鐨勮皟鐢ㄦ満鍒墮棶棰橈紝瀵笴璇█鍥炶皟鍑芥暟鐨?C++ 灝佽鏄歡姣旇緝媯樻墜鐨勪簨銆備負(fù)浜?jiǎn)淇濇寔C++瀵硅薄鐨勭嫭绔嬫э紝鐞嗘兂鎯呭喌鏄皢鍥炶皟鍑芥暟璁劇疆鍒版垚鍛樺嚱鏁幫紝鑰屼竴鑸殑鍥炶皟鍑芥暟鏍煎紡閫氬父鏄櫘閫氱殑C鍑芥暟錛屽挨鍏舵槸 Windows API 涓殑銆傚ソ鍦ㄦ湁浜涘洖璋冨嚱鏁頒腑鐣欏嚭浜?jiǎn)涓涓澶栧弬鏁幫紝榪欐牱渚垮彲浠ョ敱榪欎釜閫氶亾灝?this 鎸囬拡浼犲叆銆傛瘮濡傜嚎紼嬪嚱鏁扮殑瀹氫箟涓猴細(xì)

typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(
    LPVOID lpThreadParameter
    );
typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;

榪欐牱錛屽綋鎴戜滑瀹炵幇綰跨▼綾葷殑鏃跺欙紝灝卞彲浠ワ細(xì)

class Thread
{
private:
    HANDLE m_hThread;

public:
    BOOL Create()
    {
        m_hThread = CreateThread(NULL, 0, StaticThreadProc, (LPVOID)this, 0, NULL);
        return m_hThread != NULL;
    }

private:
    DWORD WINAPI ThreadProc()
    {
        // TODO
        return 0;
    }

private:
    static DWORD WINAPI StaticThreadProc(LPVOID lpThreadParameter)
    {
        ((Thread *)lpThreadParameter)->ThreadProc();
    }
};

涓嶈繃錛岃繖鏍鳳紝鎴愬憳鍑芥暟 ThreadProc() 渚夸撫澶變簡(jiǎn)涓涓弬鏁幫紝榪欓氬父鏃犱激澶ч泤錛屼換浣曞師鏈渶瑕佷粠鍙傛暟浼犲叆鐨勪俊鎭兘鍙互浣滀負(fù)鎴愬憳鍙橀噺璁?ThreadProc 鏉ヨ鍐欍傚鏋滀竴瀹氭湁浜涗粈涔堟槸闈炰粠鍙傛暟浼犲叆涓嶅彲鐨勶紝閭d篃鍙互錛屼竴縐嶅仛娉曪紝鍒涘緩綰跨▼鐨勬椂鍊欎紶鍏ヤ竴涓寘鍚?this 鎸囬拡淇℃伅鐨勭粨鏋勩傜浜岀鍋氭硶錛屽璇?class 浣滃崟渚嬮檺鍒垛斺斿鏋滅幇瀹炴儏鍐靛厑璁哥殑璇濄?/p>

鎵浠ワ紝鏈夐澶栧弬鏁扮殑鍥炶皟鍑芥暟閮藉ソ澶勭悊銆備笉騫哥殑鏄紝W(xué)indows 鐨勭獥鍙e洖璋冨嚱鏁版病鏈夎繖鏍蜂竴涓澶栧弬鏁幫細(xì)

typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);

榪欎嬌寰楀紿楀彛鐨?C++ 灝佽鍙樺緱鍥伴毦銆備負(fù)浜?jiǎn)瑙e唽櫩欎釜闂锛屼竴涓緢鑷劧鐨勬兂娉曟槸錛岀淮鎶や竴浠藉叏灞鐨勭獥鍙e彞鏌勫埌紿楀彛綾葷殑瀵瑰簲鍏崇郴錛屽錛?/p>

#include <map>

class Window
{
public:
    Window();
    ~Window();
   
public:
    BOOL Create();

protected:
    LRESULT WndProc(UINT message, WPARAM wParam, LPARAM lParam);

protected:
    HWND m_hWnd;

protected:
    static LRESULT CALLBACK StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
    static std::map<HWND, Window *> m_sWindows;
};

鍦?Create 鐨勬椂鍊欙紝鎸囧畾 StaticWndProc 涓虹獥鍙e洖璋冨嚱鏁幫紝騫跺皢 hWnd 涓?this 瀛樺叆 m_sWindows錛?/p>

BOOL Window::Create()
{
    LPCTSTR lpszClassName = _T("ClassName");
    HINSTANCE hInstance = GetModuleHandle(NULL);

    WNDCLASSEX wcex    = { sizeof(WNDCLASSEX) };
    wcex.lpfnWndProc   = StaticWndProc;
    wcex.hInstance     = hInstance;
    wcex.lpszClassName = lpszClassName;

    RegisterClassEx(&wcex);

    m_hWnd = CreateWindow(lpszClassName, NULL, WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

    if (m_hWnd == NULL)
    {
        return FALSE;
    }

    m_sWindows.insert(std::make_pair(m_hWnd, this));

    ShowWindow(m_hWnd, SW_SHOW);
    UpdateWindow(m_hWnd);

    return TRUE;
}

鍦?StaticWindowProc 涓紝鐢?hWnd 鎵懼埌 this錛岀劧鍚庤漿鍙戠粰鎴愬憳鍑芥暟錛?/p>

LRESULT CALLBACK Window::StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    std::map<HWND, Window *>::iterator it = m_sWindows.find(hWnd);
    assert(it != m_sWindows.end() && it->second != NULL);

    return it->second->WndProc(message, wParam, lParam);
}

錛坢_sWindows 鐨勫綰跨▼淇濇姢鐣ヨ繃錛屼笅鍚岋級(jí)

鎹 MFC 閲囩敤鐨勫氨鏄被浼肩殑鍋氭硶銆傜己鐐規(guī)槸錛屾瘡嬈?StaticWndProc 閮借浠?m_sWindows 涓幓鎵?this銆傜敱浜庣獥鍙g被涓鑸細(xì)淇濆瓨紿楀彛鍙ユ焺錛屽洖璋冨嚱鏁伴噷鐨?hWnd 灝辨病澶氬ぇ浣滅敤浜?jiǎn)锛屽鏋湗q欎釜 hWnd 鑳藉琚敤鏉ュ瓨 this 鎸囬拡灝卞ソ浜?jiǎn)锛岄偅涔垶p兘鍐欐垚榪欐牱錛?/p>

LRESULT CALLBACK Window::StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    return ((Window *)hWnd)->WndProc(message, wParam, lParam);
}

榪欐牱鐪嬩笂鍘誨氨鐖藉浜?jiǎn)銆備紶璇翠腑 WTL 鎵閲囧彇鐨?thunk 鎶鏈氨鏄繖涔堝共鐨勩備箣鍓嶏紝鍙槸鍚繃榪欓仴榪滅殑浼犺錛屼粖澶╋紝緇堜簬鏈夋満浼?xì)璧皹q涜繖涓紶璇村幓鐪嬩竴鐪嬨傚弬鑰冭祫鏂欐槸涓綃囦笉鐭ュ師濮嬪嚭澶勭殑鏂囩珷銆婃繁鍏ュ墫鏋怶TL鈥擶TL妗嗘灦紿楀彛鍒嗘瀽銆嬶紝浠ュ強(qiáng)閮ㄥ垎 WTL 8.0 浠g爜錛岃繕鏈夊叾浠栦貢涓冨叓緋熺殑鏂囩珷銆?/p>

WTL 鐨勬濊礬鏄紝姣忔鍦ㄧ郴緇熻皟鐢?WndProc 鐨勬椂鍊欙紝璁╁畠楝間嬌紲炲樊鍦板厛璧板埌鎴戜滑鐨勫彟涓澶勪唬鐮侊紝璁╂垜浠湁鏈轟細(xì)淇敼鍫嗘爤涓殑 hWnd銆傝繖澶勪唬鐮佸彲鑳芥槸綾諱技榪欐牱鐨勶細(xì)

__asm
{
    mov dword ptr [esp+4], pThis  ;璋冪敤 WndProc 鏃訛紝鍫嗘爤緇撴瀯涓猴細(xì)RetAddr, hWnd, message, wParam, lParam, ... 鏁?[esp+4]
    jmp WndProc
}

鐢變簬 pThis 鍜?WndProc 闇瑕佽浜嬪厛淇敼錛堜絾鍙堟棤娉曞湪緙栬瘧鍓嶅畾濂斤級(jí)錛屾墍浠ユ垜浠渶瑕佽繍琛岀殑鏃跺欏幓淇敼榪欓儴鍒嗕唬鐮併傚厛寮勪竴涓皬紼嬪簭鎺㈡祴涓嬭繖涓よ璇彞鐨勬満鍣ㄧ爜錛?/p>

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    return 0;
}

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, NULL, NULL, MB_OK);

    __asm
    {
        mov dword ptr [esp+4], 1
        jmp WndProc
    }

    return 0;
}

鏈鍓嶉潰鐨?MessageBox 鏄負(fù)浜?jiǎn)绛変笅璋冭瘯鐨勬椂鍊欏鏄撴壘鍒拌繘鍏ョ偣銆?/p>

鐒跺悗浣跨敤 OllyDbg錛屽湪 MessageBoxW 涓婅緗柇鐐癸紝鎵ц鍒拌鍑芥暟榪斿洖錛?/p>

image

榪欓噷鎴戜滑鐪嬪埌錛宮ov dword ptr [esp+4] 鐨勬満鍣ㄧ爜涓?C7 44 24 04錛屽悗闈㈢揣鎺ョ潃鐨勪竴涓?DWORD 鏄?mov 鐨勭浜屼釜鎿嶄綔鏁般俲mp 鐨勬満鍣ㄧ爜鏄?e9錛屽悗闈㈢揣鎺ョ潃鐨勪竴涓?DWORD 鏄煩杞殑鐩稿鍦板潃銆傚叾涓?00061000h - 0006102Bh = FFFFFFD5h銆?/p>

浜庢槸瀹氫箟榪欐牱涓涓粨鏋勶細(xì)

#pragma pack(push,1)
typedef struct _StdCallThunk
{
    DWORD   m_mov;          // = 0x042444C7
    DWORD   m_this;         // = this
    BYTE    m_jmp;          // = 0xe9
    DWORD   m_relproc;      // = relative distance
} StdCallThunk;
#pragma pack(pop)

榪欎釜緇撴瀯鍙互浣滀負(fù)紿楀彛綾葷殑鎴愬憳鍙橀噺瀛樺湪銆傛垜浠殑紿楀彛綾葷幇鍦ㄥ彉鎴愪簡(jiǎn)榪欐牱瀛愶細(xì)

class Window
{
public:
    Window();
    ~Window();

public:
    BOOL Create();

protected:
    LRESULT WndProc(UINT message, WPARAM wParam, LPARAM lParam);

protected:
    HWND         m_hWnd;
    StdCallThunk m_thunk;

protected:
    static LRESULT CALLBACK StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
};

浼間箮灝戜簡(jiǎn)鐐逛粈涔堚︹﹀垱寤虹獥鍙g殑鏃跺欙紝鎴戜滑鏄笉鑳界洿鎺ユ妸鍥炶皟鍑芥暟璁懼埌 StaticWndPorc 涓幓鐨勶紝鍥犱負(fù)榪欎釜鍑芥暟鏄笇鏈涜鍐欐垚榪欐牱瀛愮殑錛?/p>

LRESULT CALLBACK Window::StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    return ((Window *)hWnd)->WndProc(message, wParam, lParam);
}

閭d箞鑷沖皯闇瑕佷竴涓復(fù)鏃剁殑鍥炶皟鍑芥暟錛屽湪榪欎釜鍑芥暟閲屽幓璁劇疆鏂扮殑鍥炶皟鍑芥暟錛堣鍒?m_thunk 涓婏級(jí)錛屽啀鐢?m_thunk 鏉ヨ皟鐢?StaticWndProc錛孲taticWndProc 鍐嶅幓璋冪敤 WndProc錛岃繖鏍鋒暣涓繃紼嬪氨閫氫簡(jiǎn)銆?/p>

浣嗘槸錛屼復(fù)鏃跺洖璋冨嚱鏁拌繕鏄渶瑕佺煡閬撲粠 hWnd 鍒?this 鐨勫搴斿叧緋匯傚彲鏄幇鍦ㄦ垜浠笉鑳界収鎼敤鍒氭墠鐨?m_sWindows 浜?jiǎn)銆傚洜涓虹獥鍙e湪鍒涘緩榪囩▼涓氨浼?xì)璋冪敤鍒板洖璋冨嚱鏁板Q岄渶瑕佷嬌鐢ㄥ埌 m_sWindows 閲岀殑 this錛岃岀獥鍙h鎴愬姛鍒涘緩涔嬪墠錛屾垜浠病娉曟彁鍓嶆嬁鍒?HWND 瀛樺叆 m_sWindows銆傜幇鍦紝鎹釜鏂規(guī)硶錛屽瓨褰撳墠綰跨▼ ID 涓?this 鐨勫搴斿叧緋匯傝繖鏍鳳紝榪欎釜綾誨彉鎴愪簡(jiǎn)錛?/p>

#include <map>

class Window
{
public:
    Window();
    ~Window();

public:
    BOOL Create();

protected:
    LRESULT WndProc(UINT message, WPARAM wParam, LPARAM lParam);

protected:
    HWND         m_hWnd;
    StdCallThunk m_thunk;

protected:
    static LRESULT CALLBACK TempWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

    static LRESULT CALLBACK StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
    static std::map<DWORD, Window *> m_sWindows;
};

鐒跺悗瀹炵幇 Create 鍜?TempWndProc錛?/p>

BOOL Window::Create()
{
    LPCTSTR lpszClassName = _T("ClassName");
    HINSTANCE hInstance = GetModuleHandle(NULL);

    WNDCLASSEX wcex    = { sizeof(WNDCLASSEX) };
    wcex.lpfnWndProc   = TempWndProc;
    wcex.hInstance     = hInstance;
    wcex.lpszClassName = lpszClassName;

    RegisterClassEx(&wcex);

    DWORD dwThreadId = GetCurrentThreadId();
    m_sWindows.insert(std::make_pair(dwThreadId, this));

    m_thunk.m_mov = 0x042444c7;
    m_thunk.m_jmp = 0xe9;

    m_hWnd = CreateWindow(lpszClassName, NULL, WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

    if (m_hWnd == NULL)
    {
        return FALSE;
    }
   
    ShowWindow(m_hWnd, SW_SHOW);
    UpdateWindow(m_hWnd);

    return TRUE;
}

LRESULT CALLBACK Window::TempWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    std::map<DWORD, Window *>::iterator it = m_sWindows.find(GetCurrentThreadId());
    assert(it != m_sWindows.end() && it->second != NULL);

    Window *pThis = it->second;
    m_sWindows.erase(it);

    WNDPROC pWndProc = (WNDPROC)&pThis->m_thunk;

    pThis->m_thunk.m_this = (DWORD)pThis;
    pThis->m_thunk.m_relproc = (DWORD)&Window::StaticWndProc - ((DWORD)&pThis->m_thunk + sizeof(StdCallThunk));

    m_hWnd = hWnd;
    SetWindowLong(hWnd, GWL_WNDPROC, (LONG)pWndProc);

    return pWndProc(hWnd, message, wParam, lParam);
}

宸笉澶氬彲浠ヤ簡(jiǎn)錛岃皟璇曚竴涓嬨傜粨鏋滐紝鍦?thunk 鐨勭涓琛屽嚭閿欎簡(jiǎn)銆傛垜鍘熶互涓哄湴鍧綆楅敊浜?jiǎn)绁為┈鐨勫Q屽皾璇曟妸 thunk.m_mov 鏀逛負(fù) 0x90909090錛屽啀榪愯錛岃繕鏄嚭閿欍備簬鏄偦鎺変簡(jiǎn)鈥︹﹁繃浜?jiǎn)濂戒竴浼?xì)鍎挎墠鎰忚瘑鍒板Q屽彲鑳芥槸鍥犱負(fù) thunk 鍦ㄦ暟鎹錛屾棤娉曡鎵ц銆傚彲鏄紝寰堜箙寰堜箙浠ュ墠鍋舵淮涓涓暚鐖辯殑鑰佸笀鍦?TC 涓紦鎹g▼搴忚繍琛屾椂鏀瑰彉鑷韓浠g爜鏃訛紝璨屼技鏃犳闂鍟娿傘傘傜劧鍚庢煡鍛鏌ワ紝鍘熸潵鏄?Windows 鍦ㄧ殑鏁版嵁鎵ц淇濇姢鎼炵殑楝箋備簬鏄紝闇瑕佺敤 VirtualAlloc 鏉ョ敵璇蜂竴孌墊湁鎵ц鏉冮檺鐨勫唴瀛樸俉TL 閲岄潰涔熸槸榪欎箞鍋氱殑錛屼笉榪囧畠浼間箮緇存姢浜?jiǎn)涓鍧楄緝澶х殑鍙墽琛屽唴瀛樺尯浣滀負(fù) thunk 鍐呭瓨姹狅紝鎴戜滑榪欓噷浠庣畝銆傛渶鍚庯紝鏁翠釜嫻佺▼緇堜簬璺戦氫簡(jiǎn)銆傛渶緇堜唬鐮佹竻鍗曞涓嬶細(xì)

#include <Windows.h>
#include <assert.h>
#include <map>
#include <tchar.h>

#pragma pack(push,1)
typedef struct _StdCallThunk
{
    DWORD   m_mov;
    DWORD   m_this;
    BYTE    m_jmp;
    DWORD   m_relproc;

} StdCallThunk;
#pragma pack(pop)

class Window
{
public:
    Window();
    ~Window();

public:
    BOOL Create();

protected:
    LRESULT WndProc(UINT message, WPARAM wParam, LPARAM lParam);

protected:
    HWND          m_hWnd;
    StdCallThunk *m_pThunk;

protected:
    static LRESULT CALLBACK TempWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
    static LRESULT CALLBACK StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
    static std::map<DWORD, Window *> m_sWindows;
};

std::map<DWORD, Window *> Window::m_sWindows;

Window::Window()
{

}

Window::~Window()
{
    VirtualFree(m_pThunk, sizeof(StdCallThunk), MEM_RELEASE);
}

BOOL Window::Create()
{
    LPCTSTR lpszClassName = _T("ClassName");
    HINSTANCE hInstance = GetModuleHandle(NULL);

    WNDCLASSEX wcex    = { sizeof(WNDCLASSEX) };
    wcex.lpfnWndProc   = TempWndProc;
    wcex.hInstance     = hInstance;
    wcex.lpszClassName = lpszClassName;
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);

    RegisterClassEx(&wcex);

    DWORD dwThreadId = GetCurrentThreadId();
    m_sWindows.insert(std::make_pair(dwThreadId, this));

    m_pThunk = (StdCallThunk *)VirtualAlloc(NULL, sizeof(StdCallThunk), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    m_pThunk->m_mov = 0x042444c7;
    m_pThunk->m_jmp = 0xe9;

    m_hWnd = CreateWindow(lpszClassName, NULL, WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

    if (m_hWnd == NULL)
    {
        return FALSE;
    }
   
    ShowWindow(m_hWnd, SW_SHOW);
    UpdateWindow(m_hWnd);

    return TRUE;
}

LRESULT Window::WndProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_LBUTTONUP:
        MessageBox(m_hWnd, _T("LButtonUp"), _T("Message"), MB_OK | MB_ICONINFORMATION);
        break;
    case WM_RBUTTONUP:
        MessageBox(m_hWnd, _T("RButtonUp"), _T("Message"), MB_OK | MB_ICONINFORMATION);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        break;
    }

    return DefWindowProc(m_hWnd, message, wParam, lParam);
}

LRESULT CALLBACK Window::TempWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    std::map<DWORD, Window *>::iterator it = m_sWindows.find(GetCurrentThreadId());
    assert(it != m_sWindows.end() && it->second != NULL);

    Window *pThis = it->second;
    m_sWindows.erase(it);

    WNDPROC pWndProc = (WNDPROC)pThis->m_pThunk;

    pThis->m_pThunk->m_this = (DWORD)pThis;
    pThis->m_pThunk->m_relproc = (DWORD)&Window::StaticWndProc - ((DWORD)pThis->m_pThunk + sizeof(StdCallThunk));

    pThis->m_hWnd = hWnd;
    SetWindowLong(hWnd, GWL_WNDPROC, (LONG)pWndProc);

    return pWndProc(hWnd, message, wParam, lParam);
}

LRESULT CALLBACK Window::StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    return ((Window *)hWnd)->WndProc(message, wParam, lParam);
}

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    Window wnd;
    wnd.Create();

    MSG msg;

    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int)msg.wParam;
}

鍒氭墠鏈変竴澶勶紝瀛?this 鎸囬拡鐨勬椂鍊欙紝鎴戝緢姝︽柇鍦版妸瀹冧笌褰撳墠綰跨▼ ID 鍏寵仈璧鋒潵浜?jiǎn)锛屽叾瀹灅q欐鏄?WTL 鏈韓鐨勫仛娉曘傚畠鐢?CAtlWinModule::AddCreateWndData 瀛樼殑 this錛屾渶緇堜細(xì)鎶婂綋鍓嶇嚎紼?ID 鍜?this 浣滃叧鑱斻傛垜鏄繖涔堢悊瑙g殑鍚э紝鍚屼竴綰跨▼涓嶅彲鑳藉悓鏃舵湁涓ゅ鍦ㄨ皟鐢?CreateWindow錛屾墍浠ヨ繖鏍峰彇鍥炴潵鐨?this 鏄彲闈犵殑銆?/p>

濂戒簡(jiǎn)錛屽埌姝や負(fù)姝紝杈硅瘯楠岃竟璁板綍鐨勶紝涓嶇煡閬撶悊瑙f槸鍚︽紜傛榪庢寚鍑轟笉褰撲箣澶勶紝涔熸榪庢彁鍑虹浉鍏崇殑闂鏉ヨ冩垜錛屾榪庝粙緇嶆湁鍏蟲闂鐨勬柊鏂規(guī)硶銆佹柊鎬濊礬錛岀瓑絳夛紝鎬諱箣錛岃鍚勪綅鐪嬪畼澶氭寚鏁欏搱銆?/p>

婧祦 2010-10-24 16:44 鍙戣〃璇勮
]]>
InternetOpenURL 鍐呴儴 crash 鐨勯棶棰?/title><link>http://m.shnenglu.com/Streamlet/archive/2010/08/26/124787.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Thu, 26 Aug 2010 03:19:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2010/08/26/124787.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/124787.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2010/08/26/124787.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/124787.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/124787.html</trackback:ping><description><![CDATA[<p>榪戞潵閬囦笂涓涓緢璇″紓鐨?bug錛欼nternetOpenURL 鍐呴儴鍙戠敓 crash銆傝櫧璇村彂鐢熼棶棰樼殑鏃跺埢鎬繪槸澶勪簬榪欎釜 API 鍐呴儴錛屽彲涔熶竴鐩翠笉鏁㈢‘瀹氫笉鏄叾浠栧師鍥犲紩璧風(fēng)殑錛屽氨榪欎箞涓鐩存嫋鐫銆?/p> <p>鍓嶄袱澶╃粓浜庢湁鍙互闅忔椂鎿嶄綔鐨勪笖閲嶇幇鍑犵巼闈炲父楂樼殑鏈哄櫒浜?jiǎn)锛寢箣璇曚簡(jiǎn)涓涓嬶紝鍙戠幇涓涓寰嬶細(xì)鍙鍦ㄨ皟鐢?InternetOpenURL 涔嬪墠璋冪敤榪?SHGetFolderPath錛屾闂鐨勯噸鐜板嚑鐜囧氨闈炲父楂橈紱濡傛灉娌℃湁璋冪敤榪?SHGetFolderPath錛屽垯鍩烘湰涓嶅嚭鐜般?/p> <p>鐩墠緗戜笂鎵懼埌鐨勪竴涓嚑涔庡敮涓鐨勫笘瀛愭槸 <a title="http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/2982efc6-8403-4577-9dba-ad5cfdf01753" target="_blank">http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/2982efc6-8403-4577-9dba-ad5cfdf01753</a>錛岀幇璞″嚑涔庝竴妯′竴鏍楓傚彧鍙儨娌℃湁鏈変環(huán)鍊肩殑鍥炲銆傝鏂囩珷鐨勪綔鑰呮寚鍑虹殑 VPN 絳夌綉緇滃師鍥犲ソ鍍忎笉鏄叧閿紝鍦ㄦ垜榪欓噷鏄緢鏅氱殑灞鍩熺綉錛屼竴鏍瘋兘鍑虹幇銆?/p> <p>嫻嬭瘯浠g爜濡備笅錛?/p> <p>#include <Windows.h><br>#include <tchar.h><br>#include <ShlObj.h> <p>#include <WinInet.h><br>#pragma comment(lib, "wininet.lib") <p>#define URL _T("http://www.baidu.com/") <p>int main()<br>{<br>    TCHAR szCommonAppData[MAX_PATH];<br>    SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, szCommonAppData); <p>    HINTERNET hInternet = InternetOpen(_T("WCU"), INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, 0); <p>    if (hInternet == NULL)<br>    {<br>        return 0;<br>    } <p>    HINTERNET hInternetFile = InternetOpenUrl(hInternet, URL, NULL, 0, INTERNET_FLAG_NO_UI | INTERNET_FLAG_RELOAD, 0); <p>    if (hInternetFile == NULL)<br>    {<br>        InternetCloseHandle(hInternet);<br>        return 0;<br>    } <p>    InternetCloseHandle(hInternetFile);<br>    InternetCloseHandle(hInternet); <p>    return 0;<br>} <p>鍦ㄨ兘澶熷嚭鐜版闂鐨勬満鍣ㄤ笂錛孋trl + F5 鐩存帴榪愯錛屽嚑涔庢瘡嬈″繀鐜幫紱濡傛灉 F5 璋冭瘯榪愯錛屽垯鍑犵巼灝忎竴鐐癸紝浣嗘槸璺戜釜涓冨叓嬈″乏鍙沖熀鏈笂鑳藉嚭鐜般傜洰鍓?XP 32/64 涓婇兘鏈夊彂鐜拌繖涓棶棰橈紝Vista/Win7 涓婃殏鏃舵病鏈夊彂鐢熸鐜拌薄銆傦紙濡傛灉 InternetOpenURL 鎹㈡垚 InternetConnect銆丠ttpOpenRequest銆丠ttpSendrequest錛屽垯浼?crash 鍦?HttpSendRequest 鍐呫傦級(jí) <p>闄勪歡鏄竴涓祴璇曞伐紼嬶紝闄勫甫涓婁簡(jiǎn) Debug銆丷elease 鐗堟湰鐨?EXE銆丳DB 鏂囦歡浠ュ強(qiáng) Crash 鏃剁殑 Dump 鏂囦歡銆傝鏈夊績(jī)浜哄府蹇欑湅鐪嬨俕_^<br><a href="http://m.shnenglu.com/Files/Streamlet/InternetOpenURLCrashTest.rar">鐐瑰嚮涓嬭澆</a></p> <p>鍙槸錛屽鏋滆繖涓棶棰樼‘瀹炲瓨鍦紝涓轟粈涔堢綉涓婃煡鍒扮殑鐩稿叧鍐呭榪欎箞灝戝憿錛熷鎬獈</p><img src ="http://m.shnenglu.com/Streamlet/aggbug/124787.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2010-08-26 11:19 <a href="http://m.shnenglu.com/Streamlet/archive/2010/08/26/124787.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍝ョ粓浜庢?zhèn)熷囖Z簡(jiǎn)UAC緙栫▼鐨勭簿楂?/title><link>http://m.shnenglu.com/Streamlet/archive/2010/06/01/116930.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Tue, 01 Jun 2010 13:24:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2010/06/01/116930.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/116930.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2010/06/01/116930.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/116930.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/116930.html</trackback:ping><description><![CDATA[<p><font color="#0080ff"><strong>鍗曚竴鐢ㄦ埛浼戞兂鏀瑰彉鍏ㄥ眬鐘舵侊紒</strong></font></p> <p>濂借鍘岋紝ri鍟妑i銆傘傘?/p> <p>鍚勪綅鏈夋病鏈夌獊鐮存柟娉曪細(xì)鎵懼埌涓涓換浣曠敤鎴烽兘鍙互鍙潬璇誨啓鐨勪綅緗紵</p><img src ="http://m.shnenglu.com/Streamlet/aggbug/116930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2010-06-01 21:24 <a href="http://m.shnenglu.com/Streamlet/archive/2010/06/01/116930.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Vista/Win7 鍙ユ焺琛ㄥ湴鍧http://m.shnenglu.com/Streamlet/archive/2009/11/17/101227.html婧祦婧祦Tue, 17 Nov 2009 11:18:00 GMThttp://m.shnenglu.com/Streamlet/archive/2009/11/17/101227.htmlhttp://m.shnenglu.com/Streamlet/comments/101227.htmlhttp://m.shnenglu.com/Streamlet/archive/2009/11/17/101227.html#Feedback0http://m.shnenglu.com/Streamlet/comments/commentRss/101227.htmlhttp://m.shnenglu.com/Streamlet/services/trackbacks/101227.html緗戜笂鎻愬緱杈冨鐨勬槸 2K/XP 鐨勫彞鏌勮〃錛屼互鍙?qiáng)鍙ユ焺鍒嗛厤绠楁硶銆傚叾涓?Win2K 鐨勫彞鏌勮〃鍦?_EPROCESS + 0x128 澶勶紝W(xué)inXP 鍦?_EPROCESS + 0x0c4 澶勩俈ista 鍜?Win7 鎵鵑亶浜?Internet 娌℃壘鍒幫紝浜庢槸鍙ソ涓嬭澆絎﹀彿琛紝瑁呯郴緇熻嚜宸辨壘銆傚叾瀹炰篃灝?dt _EPROCESS 涓涓嬩簡(jiǎn)銆俈ista 鍦?_EPROCESS + 0x0dc 澶勶紝W(xué)in7 鍦?_EPROCESS + 0x0f4 澶勩備互涓婂潎鏄?32 浣嶇郴緇熶笅鐨勫湴鍧銆傚彞鏌勫垎閰嶇畻娉曞湪 Vista 鍜?Win7 涓兘娌℃湁鍙樺寲錛屽拰 XP 涓鏍鳳紙鑷沖皯鎴戠殑嫻嬭瘯緇撴灉鏄繖鏍風(fēng)殑錛夈?/p>

灝忚涓絎斻傛槑澶╃戶緇湅 64 浣嶇殑銆?/p>

==================================================
WinXP x64: 0x158
Vista x64: 0x160
Win7 x64: 0x200



婧祦 2009-11-17 19:18 鍙戣〃璇勮
]]>
Win7 UAC 鐨勪竴浜涘鎬幇璞?/title><link>http://m.shnenglu.com/Streamlet/archive/2009/10/22/99212.html</link><dc:creator>婧祦</dc:creator><author>婧祦</author><pubDate>Thu, 22 Oct 2009 11:50:00 GMT</pubDate><guid>http://m.shnenglu.com/Streamlet/archive/2009/10/22/99212.html</guid><wfw:comment>http://m.shnenglu.com/Streamlet/comments/99212.html</wfw:comment><comments>http://m.shnenglu.com/Streamlet/archive/2009/10/22/99212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Streamlet/comments/commentRss/99212.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Streamlet/services/trackbacks/99212.html</trackback:ping><description><![CDATA[<p>嫻嬭瘯紼嬪簭鏄竴涓?InstallShield 鍋氱殑 Windows Installer 瀹夎紼嬪簭錛屽彂甯冩柟寮忎負(fù)鍗曚竴 EXE錛孧enifest 涓寚瀹?requireAdministrator錛屽湪 Win7 鏍囧噯鐢ㄦ埛涓嬪弻鍑?yán)L墽琛岋紝鍦ㄥ脊鍑虹殑 UAC 瀵硅瘽妗嗕腑閫夋嫨涓涓鐞嗗憳鐢ㄦ埛銆傝繖縐嶆儏鍐典笅錛屽浜庤繖涓▼搴忔潵璇達(dá)紝HKEY_CURRENT_USER 涓虹鐞嗗憳鐢ㄦ埛鐨勬暟鎹紝SH鈥?緋誨垪 API 鐨勬墽琛岀幆澧冧篃鏄鐞嗗憳鐢ㄦ埛錛屽 SHGetFolderPath 鍙?AppData 鐩綍鍙栧埌鐨勬槸綆$悊鍛樼敤鎴風(fēng)殑 AppData 鐩綍銆?/p> <p>浣嗗鏋滀粠鎺у埗闈㈡澘=>娣誨姞鍒犻櫎紼嬪簭錛堢▼搴忓拰鍔熻兘錛夐噷鎵ц錛堢浉褰撲簬鎵ц msiexec /鈥︼級(jí)錛屽湪榪囦竴浼?xì)鍎垮脊鍑虹?UAC 瀵硅瘽妗嗕腑閫夌鐞嗗憳鐢ㄦ埛錛屾鏃?HKEY_CURRENT_USER 涓虹鐞嗗憳鐢ㄦ埛鐨勬暟鎹紝浣嗘槸 SH鈥?緋誨垪 API 鐨勬墽琛岀幆澧冨嵈鏄爣鍑嗙敤鎴楓傛煡鐪嬩袱涓?MsiExec.exe 榪涚▼錛屽叾涓竴涓槸 System 鐢ㄦ埛鐨勶紝涔熷氨鏄?Windows Installer 鏈嶅姟瀵瑰簲鐨勮繘紼嬶紱鍙︿竴涓槸綆$悊鍛樼敤鎴風(fēng)殑錛屼絾鏄敤 Process Explorer 鏌ョ湅錛屽畠鐨勬墍鏈夌幆澧冭礬寰勫叏鏄爣鍑嗙敤鎴風(fēng)殑銆?/p> <p>瑙夊緱鏈夌偣濂囨紝鏄互璁頒箣銆俕_^</p><img src ="http://m.shnenglu.com/Streamlet/aggbug/99212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Streamlet/" target="_blank">婧祦</a> 2009-10-22 19:50 <a href="http://m.shnenglu.com/Streamlet/archive/2009/10/22/99212.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.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://www11111111.com" target="_blank">亚洲免费视频网站</a>| <a href="http://iacapmm.com" target="_blank">久久综合久久88</a>| <a href="http://bjayj.com" target="_blank">国内久久视频</a>| <a href="http://7755cc.com" target="_blank">在线观看av不卡</a>| <a href="http://xiangshi888.com" target="_blank">经典三级久久</a>| <a href="http://569688.com" target="_blank">亚洲品质自拍</a>| <a href="http://ckk755.com" target="_blank">亚洲深夜福利视频</a>| <a href="http://080973.com" target="_blank">久久国产毛片</a>| <a href="http://663747.com" target="_blank">欧美国产一区二区</a>| <a href="http://cl5555.com" target="_blank">亚洲久久成人</a>| <a href="http://sdsptl.com" target="_blank">欧美一区二区三区四区在线观看</a>| <a href="http://sinojinxing.com" target="_blank">久久精品一区四区</a>| <a href="http://www31931.com" target="_blank">欧美电影免费观看网站</a>| <a href="http://058888e.com" target="_blank">国产精品久久久久久影院8一贰佰</a>| <a href="http://www11108b.com" target="_blank">国产热re99久久6国产精品</a>| <a href="http://laoyewo.com" target="_blank">伊人成人开心激情综合网</a>| <a href="http://kxm6868.com" target="_blank">一本不卡影院</a>| <a href="http://hs045.com" target="_blank">久久视频在线免费观看</a>| <a href="http://bizhijidi.com" target="_blank">日韩一级免费观看</a>| <a href="http://www218999.com" target="_blank">久久久国产精品一区二区三区</a>| <a href="http://qkspvip.com" target="_blank">欧美精彩视频一区二区三区</a>| <a href="http://tsjcmm.com" target="_blank">国产日韩精品电影</a>| <a href="http://www7495.com" target="_blank">亚洲精品国产精品乱码不99按摩</a>| <a href="http://244223.com" target="_blank">午夜伦理片一区</a>| <a href="http://gffffg.com" target="_blank">亚洲国产一成人久久精品</a>| <a href="http://www-988900.com" target="_blank">亚洲自拍偷拍网址</a>| <a href="http://8410555.com" target="_blank">欧美国产在线观看</a>| <a href="http://ewaygou.com" target="_blank">精品成人国产在线观看男人呻吟</a>| <a href="http://060969.com" target="_blank">亚洲香蕉伊综合在人在线视看</a>| <a href="http://800716.com" target="_blank">乱码第一页成人</a>| <a href="http://7redy.com" target="_blank">亚洲一区二区三区中文字幕在线 </a>| <a href="http://mysuteng.com" target="_blank">香蕉久久精品日日躁夜夜躁</a>| <a href="http://422608.com" target="_blank">久久综合中文</a>| <a href="http://621939.com" target="_blank">亚洲午夜视频在线观看</a>| <a href="http://mimi78.com" target="_blank">欧美激情精品</a>| <a href="http://www55747.com" target="_blank">在线观看日韩av先锋影音电影院 </a>| <a href="http://www-44469.com" target="_blank">亚洲人体偷拍</a>| <a href="http://v63xs.com" target="_blank">老司机一区二区</a>| <a href="http://www55avav.com" target="_blank">国产综合在线视频</a>| <a href="http://ximaimicro.com" target="_blank">欧美一区二区三区在线播放</a>| <a href="http://360inns.com" target="_blank">夜夜精品视频</a>| <a href="http://www780yy.com" target="_blank">欧美日韩国产首页在线观看</a>| <a href="http://wwwmiya728.com" target="_blank">亚洲国产欧美一区二区三区同亚洲</a>| <a href="http://域名" target="_blank">久久精品国产精品亚洲</a>| <a href="http://chinagreetown.com" target="_blank">在线视频日本亚洲性</a>| <a href="http://szsywine.com" target="_blank">欧美欧美天天天天操</a>| <a href="http://qqx123.com" target="_blank">最新国产成人av网站网址麻豆</a>| <a href="http://707377c.com" target="_blank">噜噜噜噜噜久久久久久91</a>| <a href="http://filark.com" target="_blank">国产日韩欧美一区二区三区四区</a>| <a href="http://sese699.com" target="_blank">日韩亚洲成人av在线</a>| <a href="http://wwwwy9001.com" target="_blank">亚洲午夜久久久久久尤物</a>| <a href="http://7777977.com" target="_blank">欧美a级理论片</a>| <a href="http://yhc26.com" target="_blank">久久成人免费</a>| <a href="http://2312138.com" target="_blank">国产午夜精品麻豆</a>| <a href="http://123086.com" target="_blank">欧美在线观看视频一区二区</a>| <a href="http://yujiaosanye.com" target="_blank">亚洲天堂网在线观看</a>| <a href="http://sanlans888.com" target="_blank">国产精品盗摄一区二区三区</a>| <a href="http://2225101.com" target="_blank">亚洲一级一区</a>| <a href="http://621767.com" target="_blank">亚洲一区国产精品</a>| <a href="http://www297777.com" target="_blank">国产精品视屏</a>| <a href="http://qq5621.com" target="_blank">久久成人精品电影</a>| <a href="http://www249aaa.com" target="_blank">欧美制服丝袜第一页</a>| <a href="http://6aaee.com" target="_blank">伊人婷婷欧美激情</a>| <a href="http://j88866.com" target="_blank">欧美搞黄网站</a>| <a href="http://ggg4444.com" target="_blank">欧美日韩久久久久久</a>| <a href="http://51duanxinmao.com" target="_blank">亚洲一区二区三区在线视频</a>| <a href="http://6688se.com" target="_blank">亚洲一区二区影院</a>| <a href="http://luobu520.com" target="_blank">国产综合自拍</a>| <a href="http://shiyoudiban.com" target="_blank">欧美国产日韩一区二区</a>| <a href="http://4006616309.com" target="_blank">欧美激情一区二区在线</a>| <a href="http://czjrby.com" target="_blank">亚洲一区二区三区高清不卡</a>| <a href="http://wwwok1965.com" target="_blank">亚洲欧美精品</a>| <a href="http://77777gao.com" target="_blank">伊大人香蕉综合8在线视</a>| <a href="http://asanny.com" target="_blank">亚洲国产成人精品女人久久久</a>| <a href="http://20074972.com" target="_blank">免费一区二区三区</a>| <a href="http://csmdjs.com" target="_blank">亚洲午夜电影在线观看</a>| <a href="http://xaxkizlar.com" target="_blank">亚洲欧美国产视频</a>| <a href="http://488918.com" target="_blank">亚洲二区在线观看</a>| <a href="http://jzsp87.com" target="_blank">日韩网站在线</a>| <a href="http://6567ya.com" target="_blank">国语自产精品视频在线看抢先版结局 </a>| <a href="http://83319b.com" target="_blank">亚洲一二三区精品</a>| <a href="http://1277k.com" target="_blank">欧美伊人精品成人久久综合97</a>| <a href="http://jiuzuifusheng.com" target="_blank">激情91久久</a>| <a href="http://by777117.com" target="_blank">日韩午夜三级在线</a>| <a href="http://cao2014.com" target="_blank">国产亚洲人成a一在线v站</a>| <a href="http://www497171a.com" target="_blank">美女尤物久久精品</a>| <a href="http://yunpiwang.com" target="_blank">欧美日韩黄色一区二区</a>| <a href="http://xxdd51.com" target="_blank">久久精品99国产精品酒店日本</a>| <a href="http://998609.com" target="_blank">老司机aⅴ在线精品导航</a>| <a href="http://qqx123.com" target="_blank">中文一区二区在线观看</a>| <a href="http://szbeikai.com" target="_blank">久久黄色小说</a>| <a href="http://tareandshare.com" target="_blank">亚洲午夜电影网</a>| <a href="http://894322.com" target="_blank">久久伊人免费视频</a>| <a href="http://mytopvogue.com" target="_blank">亚洲免费视频网站</a>| <a href="http://173168.com" target="_blank">美女尤物久久精品</a>| <a href="http://aydsrmyy.com" target="_blank">午夜日韩av</a>| <a href="http://993934.com" target="_blank">欧美片网站免费</a>| <a href="http://kan0577.com" target="_blank">美女91精品</a>| <a href="http://994745.com" target="_blank">国产精品亚洲综合一区在线观看</a>| <a href="http://mmmm43.com" target="_blank">欧美大片网址</a>| <a href="http://www-333410.com" target="_blank">国产亚洲欧洲一区高清在线观看</a>| <a href="http://0000zz.com" target="_blank">亚洲精品黄色</a>| <a href="http://qqqtrip.com" target="_blank">在线欧美亚洲</a>| <a href="http://7m08.com" target="_blank">欧美在线视频二区</a>| <a href="http://04781900.com" target="_blank">亚洲永久在线观看</a>| <a href="http://gaobb52.com" target="_blank">欧美福利视频</a>| <a href="http://szzzzzzz.com" target="_blank">国色天香一区二区</a>| <a href="http://www-00468.com" target="_blank">亚洲图色在线</a>| <a href="http://596361.com" target="_blank">米奇777超碰欧美日韩亚洲</a>| <a href="http://86808a.com" target="_blank">午夜精品一区二区三区在线视 </a>| <a href="http://shght.com" target="_blank">国产麻豆视频精品</a>| <a href="http://88848885.com" target="_blank">亚洲三级性片</a>| <a href="http://895658.com" target="_blank">亚洲成色www久久网站</a>| <a href="http://nn99dd.com" target="_blank">亚洲欧美激情在线视频</a>| <a href="http://ddixx.com" target="_blank">亚洲午夜在线观看</a>| <a href="http://xajtyd.com" target="_blank">欧美日韩成人一区</a>| <a href="http://haixian360.com" target="_blank">亚洲成人在线网站</a>| <a href="http://konwoosh.com" target="_blank">黄色成人91</a>| <a href="http://689992.com" target="_blank">久久精彩视频</a>| <a href="http://497n.com" target="_blank">久久久免费精品视频</a>| <a href="http://saohu79.com" target="_blank">国产精品一区二区三区免费观看</a>| <a href="http://www-4997.com" target="_blank">亚洲免费观看高清完整版在线观看熊 </a>| <a href="http://xxxcalls.com" target="_blank">欧美日韩999</a>| <a href="http://ctmhotel.com" target="_blank">亚洲第一视频</a>| <a href="http://ctmhotel.com" target="_blank">91久久国产自产拍夜夜嗨</a>| <a href="http://sewuyueyue.com" target="_blank">久久久久久婷</a>| <a href="http://mm77gg.com" target="_blank">免播放器亚洲一区</a>| <a href="http://785448.com" target="_blank">在线免费观看成人网</a>| <a href="http://888nei.com" target="_blank">久久久综合香蕉尹人综合网</a>| <a href="http://psykoptic.com" target="_blank">久久久夜夜夜</a>| <a href="http://xxxx48.com" target="_blank">精品51国产黑色丝袜高跟鞋</a>| <a href="http://tristooges.com" target="_blank">欧美亚洲一区二区三区</a>| <a href="http://szzzzzzz.com" target="_blank">久久国产精品一区二区三区四区</a>| <a href="http://13789a.com" target="_blank">国产欧美综合在线</a>| <a href="http://857sds.com" target="_blank">欧美亚洲综合在线</a>| <a href="http://787622.com" target="_blank">久久一日本道色综合久久</a>| <a href="http://8xyxs1.com" target="_blank">精品不卡一区</a>| <a href="http://270909.com" target="_blank">欧美电影免费</a>| <a href="http://booyitech.com" target="_blank">日韩一二三在线视频播</a>| <a href="http://lcqrsj.com" target="_blank">亚洲一本视频</a>| <a href="http://jiarenlady.com" target="_blank">国产老肥熟一区二区三区</a>| <a href="http://www344399.com" target="_blank">午夜精品国产</a>| <a href="http://hhsp13.com" target="_blank">免费观看久久久4p</a>| <a href="http://9881600.com" target="_blank">日韩一级在线观看</a>| <a href="http://520taose.com" target="_blank">欧美三级在线播放</a>| <a href="http://www3344cao.com" target="_blank">亚洲一区二区三区精品动漫</a>| <a href="http://7kz6.com" target="_blank">久久精品噜噜噜成人av农村</a>| <a href="http://994745.com" target="_blank">一区二区亚洲</a>| <a href="http://www-13413.com" target="_blank">欧美精品二区三区四区免费看视频</a>| <a href="http://www51avav.com" target="_blank">亚洲日本成人</a>| <a href="http://305838.com" target="_blank">小嫩嫩精品导航</a>| <a href="http://sh738.com" target="_blank">伊人春色精品</a>| <a href="http://saobitv.com" target="_blank">欧美日韩精品二区第二页</a>| <a href="http://x2b2.com" target="_blank">亚洲欧美一区二区原创</a>| <a href="http://xuduoshu.com" target="_blank">免费h精品视频在线播放</a>| <a href="http://dacellflex.com" target="_blank">日韩网站免费观看</a>| <a href="http://as777as.com" target="_blank">国产免费成人av</a>| <a href="http://miaoxp.com" target="_blank">麻豆国产va免费精品高清在线</a>| <a href="http://dlwansheng.com" target="_blank">亚洲人成毛片在线播放</a>| <a href="http://zztto7.com" target="_blank">午夜精品三级视频福利</a>| <a href="http://xb989.com" target="_blank">玉米视频成人免费看</a>| <a href="http://erodasy.com" target="_blank">欧美久久久久久久久久</a>| <a href="http://cytus2wiki.com" target="_blank">西瓜成人精品人成网站</a>| <a href="http://0755hqr.com" target="_blank">亚洲国产精品t66y</a>| <a href="http://zuan3344.com" target="_blank">久久国产精品高清</a>| <a href="http://hbshwx.com" target="_blank">亚洲精品影视</a>| <a href="http://1332233.com" target="_blank">国产午夜精品麻豆</a>| <a href="http://aqdav81.com" target="_blank">一区二区三区不卡视频在线观看 </a>| <a href="http://essuee.com" target="_blank">亚洲精品国产视频</a>| <a href="http://yw6632.com" target="_blank">欧美性猛交一区二区三区精品</a>| <a href="http://360695.com" target="_blank">亚洲欧美国产77777</a>| <a href="http://227c7.com" target="_blank">亚洲高清久久</a>| <a href="http://www-44469.com" target="_blank">久久不见久久见免费视频1</a>| <a href="http://www330088.com" target="_blank">亚洲高清在线观看一区</a>| <a href="http://mysuteng.com" target="_blank">国产精品久久久久久久久久ktv</a>| <a href="http://cqrebo.com" target="_blank">久久久久久日产精品</a>| <a href="http://aqdav81.com" target="_blank">亚洲视频大全</a>| <a href="http://hnjlhgw.com" target="_blank">91久久精品国产91性色tv</a>| <a href="http://mmpzyw.com" target="_blank">久久久国产成人精品</a>| <a href="http://236fff.com" target="_blank">中文精品在线</a>| <a href="http://wyy66.com" target="_blank">亚洲精品1区2区</a>| <a href="http://www1982t.com" target="_blank">国产一区二区三区视频在线观看</a>| <a href="http://www90aaa.com" target="_blank">欧美日韩国产高清视频</a>| <a href="http://91chaopron.com" target="_blank">久久精品国产免费观看</a>| <a href="http://kkwwxx.com" target="_blank">一区二区三区欧美日韩</a>| <a href="http://ylnnc.com" target="_blank">亚洲国产日韩在线</a>| <a href="http://zhongrenma.com" target="_blank">久久中文在线</a>| <a href="http://22abb.com" target="_blank">欧美在线亚洲一区</a>| <a href="http://www50050.com" target="_blank">亚洲一区二区久久</a>| <a href="http://481323.com" target="_blank">99热免费精品</a>| <a href="http://18p2.com" target="_blank">亚洲三级免费</a>| <a href="http://40346c.com" target="_blank">亚洲大片免费看</a>| <a href="http://beeperagain.com" target="_blank">国产亚洲一区在线播放</a>| <a href="http://412342.com" target="_blank">国产精品国产三级国产aⅴ9色</a>| <a href="http://aaa798.com" target="_blank">欧美福利视频网站</a>| <a href="http://taikonghua.com" target="_blank">蜜臀99久久精品久久久久久软件</a>| <a href="http://59199m.com" target="_blank">欧美一区二区三区日韩</a>| <a href="http://z169.com" target="_blank">亚洲自拍另类</a>| <a href="http://789583.com" target="_blank">亚洲自啪免费</a>| <a href="http://xjksrbh.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>