锘??xml version="1.0" encoding="utf-8" standalone="yes"?>伊人久久综在合线亚洲2019,久久婷婷五月综合色奶水99啪,久久精品国产亚洲网站http://www.shnenglu.com/swo2006/category/3201.htmlzh-cnMon, 19 May 2008 20:57:07 GMTMon, 19 May 2008 20:57:07 GMT60灝哣C鍚戝涓垱寤哄嚭鏉ョ殑Win32欏圭洰鍜學(xué)in32鎺у埗鍙扮▼搴忎簰鐩歌漿鎹?/title><link>http://www.shnenglu.com/swo2006/articles/15791.html</link><dc:creator>swo</dc:creator><author>swo</author><pubDate>Wed, 29 Nov 2006 13:23:00 GMT</pubDate><guid>http://www.shnenglu.com/swo2006/articles/15791.html</guid><wfw:comment>http://www.shnenglu.com/swo2006/comments/15791.html</wfw:comment><comments>http://www.shnenglu.com/swo2006/articles/15791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/swo2006/comments/commentRss/15791.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/swo2006/services/trackbacks/15791.html</trackback:ping><description><![CDATA[ 浼間箮鍦╓in32欏圭洰涓?鍙兘浣跨敤WinMain鍑芥暟,鑰學(xué)in32鎺у埗鍙扮▼搴忎腑鍙兘浣跨敤main鍑芥暟. 聽<br /><span id="uouaamg" class="yinchang"><a >uml_basic</a></span> 浼間箮涓や釜欏圭洰榪炴帴鐨刢rt0.obj鏈変簺涓嶅悓. 聽<br />濡備綍鍦╒C涓慨鏀歸」鐩殑灞炴?聽聽 聽<br /> 聽<br /> 瀹冧滑涓昏鐨勫尯鍒槸瀹氫箟鐨勫畯涓嶅悓錛屼竴涓槸WIN32,鍙︿竴涓槸CONSOLE.聽 聽<br /><br /> 鍦ㄩ澶勭悊涓妸_WINDOWS鎹㈡垚_CONSOLE灝辮浜喡?<br /> 聽<br /> project 聽settings 聽-> 聽Link 聽:灝?SUBSUSTEM:WINDOWS寮鍏蟲敼涓?SUBSYSTEM:CONSOLE 聽<br /> 聽<br /> 鍙皢 聽Win32鎺у埗鍙扮▼搴?聽褰撴垚 聽鍦╓in32欏圭洰 聽浣跨敤錛屽弽涔嬩害鐒躲?聽<br />聽<br /> 鎶?subsystem:windows鎴?subsystem:console鍒犻櫎,鐢辯紪璇戝櫒鑷繁鍐沖畾涔熷彲浠?img src ="http://www.shnenglu.com/swo2006/aggbug/15791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/swo2006/" target="_blank">swo</a> 2006-11-29 21:23 <a href="http://www.shnenglu.com/swo2006/articles/15791.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>windows 緋葷粺綆$悊浣跨敤鍛戒護琛?/title><link>http://www.shnenglu.com/swo2006/articles/14749.html</link><dc:creator>swo</dc:creator><author>swo</author><pubDate>Mon, 06 Nov 2006 13:47:00 GMT</pubDate><guid>http://www.shnenglu.com/swo2006/articles/14749.html</guid><wfw:comment>http://www.shnenglu.com/swo2006/comments/14749.html</wfw:comment><comments>http://www.shnenglu.com/swo2006/articles/14749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/swo2006/comments/commentRss/14749.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/swo2006/services/trackbacks/14749.html</trackback:ping><description><![CDATA[http://www.shnenglu.com/mzty/archive/2006/11/03/14631.html<img src ="http://www.shnenglu.com/swo2006/aggbug/14749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/swo2006/" target="_blank">swo</a> 2006-11-06 21:47 <a href="http://www.shnenglu.com/swo2006/articles/14749.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍔ㄦ侀摼鎺ュ簱DLL鐨勯摼鎺?/title><link>http://www.shnenglu.com/swo2006/articles/14742.html</link><dc:creator>swo</dc:creator><author>swo</author><pubDate>Mon, 06 Nov 2006 10:53:00 GMT</pubDate><guid>http://www.shnenglu.com/swo2006/articles/14742.html</guid><wfw:comment>http://www.shnenglu.com/swo2006/comments/14742.html</wfw:comment><comments>http://www.shnenglu.com/swo2006/articles/14742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/swo2006/comments/commentRss/14742.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/swo2006/services/trackbacks/14742.html</trackback:ping><description><![CDATA[ <b>鍔ㄦ侀摼鎺ュ簱DLL鐨勯摼鎺?/b> <br /> <br />銆銆搴旂敤紼嬪簭浣跨敤DLL鍙互閲囩敤涓ょ鏂瑰紡錛氫竴縐嶆槸闅愬紡閾? 鎺ワ紝鍙︿竴縐嶆槸鏄懼紡閾炬帴銆傚湪浣跨敤DLL涔嬪墠棣栧厛瑕佺煡閬揇LL涓嚱鏁扮殑緇撴瀯淇℃伅銆俈isual C++6.0鍦╒C\bin鐩綍涓嬫彁渚涗簡涓涓悕涓篋umpbin.exe鐨勫皬紼嬪簭錛岀敤瀹冨彲浠ユ煡鐪婦LL鏂囦歡涓殑鍑芥暟緇撴瀯銆傚彟澶栵紝W(xué)indows緋葷粺灝嗛伒寰? 涓嬮潰鐨勬悳绱㈤『搴忔潵瀹氫綅DLL錛?1錛庡寘鍚獷XE鏂囦歡鐨勭洰褰曪紝2錛庤繘紼嬬殑褰撳墠宸ヤ綔鐩綍錛?3錛嶹indows緋葷粺鐩綍錛? 4錛嶹indows鐩綍錛?錛庡垪鍦≒ath鐜鍙橀噺涓殑涓緋誨垪鐩綍銆?br /><br />銆銆1錛庨殣寮忛摼鎺?br /><br />銆銆闅愬紡閾炬帴灝辨槸鍦ㄧ▼搴忓紑濮嬫墽琛屾椂 灝卞皢DLL鏂囦歡鍔犺澆鍒板簲鐢ㄧ▼搴忓綋涓傚疄鐜伴殣寮忛摼鎺ュ緢瀹規(guī)槗錛屽彧瑕佸皢瀵煎叆鍑芥暟鍏抽敭瀛梍declspec(dllimport)鍑芥暟鍚嶇瓑鍐欏埌搴旂敤紼嬪簭鐩稿簲鐨勫ご鏂? 浠朵腑灝卞彲浠ヤ簡銆備笅闈㈢殑渚嬪瓙閫氳繃闅愬紡閾炬帴璋冪敤MyDll.dll搴撲腑鐨凪in鍑芥暟銆傞鍏堢敓鎴愪竴涓」鐩負(fù)TestDll錛屽湪DllTest.h銆? DllTest.cpp鏂囦歡涓垎鍒緭鍏ュ涓嬩唬鐮侊細(xì)<br /><table bgcolor="#ffffff" border="0" cellpadding="0" width="100%"><tbody><tr><td>//Dlltest.h<br />#pragma comment(lib錛?MyDll.lib")<br />extern "C"_declspec(dllimport) int Max(int a,int b);<br />extern "C"_declspec(dllimport) int Min(int a,int b);<br />//TestDll.cpp<br />#include<stdio.h><br />#include"Dlltest.h"<br />void main()<br />{int a;<br />a=min(8,10)<br />printf("姣旇緝鐨勭粨鏋滀負(fù)%d\n"錛宎);<br />}<br /></stdio.h></td></tr></tbody></table><p>銆銆鍦ㄥ垱寤篋llTest.exe鏂囦歡涔嬪墠錛岃鍏堝皢MyDll.dll鍜孧yDll.lib鎷瘋礉鍒板綋鍓嶅伐紼嬫墍鍦ㄧ殑鐩綍涓嬮潰錛屼篃鍙互鎷瘋礉鍒? windows鐨凷ystem鐩綍涓嬨傚鏋淒LL浣跨敤鐨勬槸def鏂囦歡錛岃鍒犻櫎TestDll.h鏂囦歡涓叧閿瓧extern "C"銆俆estDll.h鏂囦歡涓殑鍏抽敭瀛桺rogam commit鏄Visual C+鐨勭紪璇戝櫒鍦╨ink鏃訛紝閾炬帴鍒癕yDll.lib鏂囦歡錛屽綋鐒訛紝寮鍙戜漢鍛樹篃鍙互涓嶄嬌鐢?pragma comment(lib錛?MyDll.lib")璇彞錛岃岀洿鎺ュ湪宸ョ▼鐨凷etting->Link欏電殑Object/Moduls鏍忓~鍏? MyDll.lib鏃㈠彲銆?br /><br />銆銆2錛庢樉寮忛摼鎺?br /><br />銆銆鏄懼紡閾炬帴鏄簲鐢ㄧ▼搴忓湪鎵ц榪囩▼涓殢鏃跺彲浠ュ姞杞紻LL鏂囦歡錛屼篃鍙互闅忔椂鍗歌澆 DLL鏂囦歡錛岃繖鏄殣寮忛摼鎺ユ墍鏃犳硶浣滃埌鐨勶紝鎵浠ユ樉寮忛摼鎺ュ叿鏈夋洿濂界殑鐏墊椿鎬э紝瀵逛簬瑙i噴鎬ц璦鏇翠負(fù)鍚堥傘備笉榪囧疄鐜版樉寮忛摼鎺ヨ楹葷儲涓浜涖傚湪搴旂敤紼嬪簭涓敤 LoadLibrary鎴朚FC鎻愪緵鐨凙fxLoadLibrary鏄懼紡鐨勫皢鑷繁鎵鍋氱殑鍔ㄦ侀摼鎺ュ簱璋冭繘鏉ワ紝鍔ㄦ侀摼鎺ュ簱鐨勬枃浠跺悕鍗蟲槸涓婅堪涓や釜鍑芥暟鐨勫弬鏁幫紝姝? 鍚庡啀鐢℅etProcAddress()鑾峰彇鎯寵寮曞叆鐨勫嚱鏁般傝嚜姝わ紝浣犲氨鍙互璞′嬌鐢ㄥ鍚屽湪搴旂敤紼嬪簭鑷畾涔夌殑鍑芥暟涓鏍鋒潵璋冪敤姝ゅ紩鍏ュ嚱鏁頒簡銆傚湪搴旂敤紼嬪簭閫鍑轟箣 鍓嶏紝搴旇鐢‵reeLibrary鎴朚FC鎻愪緵鐨凙fxFreeLibrary閲婃斁鍔ㄦ侀摼鎺ュ簱銆備笅闈㈡槸閫氳繃鏄懼紡閾炬帴璋冪敤DLL涓殑Max鍑芥暟鐨勪緥瀛愩?br /></p><table bgcolor="#ffffff" border="0" cellpadding="0" width="100%"><tbody><tr><td>#include <studio.h><br />#include<widows.h><br />void main(void)<br />{<br />typedef int(*pMax)(int a,int b);<br />typedef int(*pMin)(int a,int b);<br />HINSTANCE hDLL;<br />PMax Max<br />HDLL=LoadLibrary("MyDll.dll");//鍔犺澆鍔ㄦ侀摼鎺ュ簱MyDll.dll鏂囦歡錛?br />Max=(pMax)GetProcAddress(hDLL,"Max");<br />A=Max(5,8);<br />Printf("姣旇緝鐨勭粨鏋滀負(fù)%d\n"錛宎);<br />FreeLibrary(hDLL);//鍗歌澆MyDll.dll鏂囦歡錛?br />}</widows.h></studio.h></td></tr></tbody></table><p>銆銆鍦ㄤ笂渚嬩腑浣跨敤綾誨瀷瀹氫箟鍏抽敭瀛梩ypedef錛屽畾涔夋寚鍚戝拰DLL涓浉鍚岀殑鍑芥暟鍘熷瀷鎸囬拡錛岀劧鍚庨氳繃LoadLibray()灝咲LL鍔犺澆鍒板綋鍓嶇殑搴? 鐢ㄧ▼搴忎腑騫惰繑鍥炲綋鍓岲LL鏂囦歡鐨勫彞鏌勶紝鐒跺悗閫氳繃GetProcAddress()鍑芥暟鑾峰彇瀵煎叆鍒板簲鐢ㄧ▼搴忎腑鐨勫嚱鏁版寚閽堬紝鍑芥暟璋冪敤瀹屾瘯鍚庯紝浣跨敤 FreeLibrary()鍗歌澆DLL鏂囦歡銆傚湪緙栬瘧紼嬪簭涔嬪墠錛岄鍏堣灝咲LL鏂囦歡鎷瘋礉鍒板伐紼嬫墍鍦ㄧ殑鐩綍鎴朩indows緋葷粺鐩綍涓嬨?br /><br />銆銆 浣跨敤鏄懼紡閾炬帴搴旂敤紼嬪簭緙栬瘧鏃朵笉闇瑕佷嬌鐢ㄧ浉搴旂殑Lib鏂囦歡銆傚彟澶栵紝浣跨敤GetProcAddress()鍑芥暟鏃訛紝鍙互鍒╃敤MAKEINTRESOURCE ()鍑芥暟鐩存帴浣跨敤DLL涓嚱鏁板嚭鐜扮殑欏哄簭鍙鳳紝濡傚皢GetProcAddress(hDLL,"Min")鏀逛負(fù)GetProcAddress(hDLL, MAKEINTRESOURCE(2))錛堝嚱鏁癕in()鍦―LL涓殑欏哄簭鍙鋒槸2錛夛紝榪欐牱璋冪敤DLL涓殑鍑芥暟閫熷害寰堝揩錛屼絾鏄璁頒綇鍑芥暟鐨勪嬌鐢ㄥ簭鍙鳳紝鍚﹀垯浼? 鍙戠敓閿欒銆?/p><img src ="http://www.shnenglu.com/swo2006/aggbug/14742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/swo2006/" target="_blank">swo</a> 2006-11-06 18:53 <a href="http://www.shnenglu.com/swo2006/articles/14742.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>DLLhttp://www.shnenglu.com/swo2006/articles/12746.htmlswoswoWed, 20 Sep 2006 04:21:00 GMThttp://www.shnenglu.com/swo2006/articles/12746.htmlhttp://www.shnenglu.com/swo2006/comments/12746.htmlhttp://www.shnenglu.com/swo2006/articles/12746.html#Feedback0http://www.shnenglu.com/swo2006/comments/commentRss/12746.htmlhttp://www.shnenglu.com/swo2006/services/trackbacks/12746.html5. MFC瑙勫垯DLL

銆銆5.1 姒傝堪

銆銆MFC瑙勫垯DLL鐨勬蹇典綋鐜板湪涓ゆ柟闈細(xì)

銆銆錛?錛?瀹冩槸MFC鐨?br />
銆銆鈥滄槸MFC鐨勨濇剰鍛崇潃鍙互鍦ㄨ繖縐岲LL鐨勫唴閮ㄤ嬌鐢∕FC錛?br />
銆銆錛?錛?瀹冩槸瑙勫垯鐨?br />
銆銆鈥滄槸瑙勫垯鐨勨濇剰鍛崇潃瀹冧笉鍚屼簬MFC鎵╁睍DLL錛屽湪MFC瑙勫垯DLL鐨勫唴閮ㄨ櫧鐒跺彲浠ヤ嬌鐢∕FC錛屼絾鏄叾涓庡簲鐢ㄧ▼搴忕殑鎺ュ彛涓嶈兘鏄疢FC銆傝孧FC鎵╁睍DLL涓庡簲鐢ㄧ▼搴忕殑鎺ュ彛鍙互鏄疢FC錛屽彲浠ヤ粠MFC鎵╁睍DLL涓鍑轟竴涓狹FC綾葷殑媧劇敓綾匯?br />
銆銆Regular DLL鑳藉琚墍鏈夋敮鎸丏LL鎶鏈殑璇█鎵緙栧啓鐨勫簲鐢ㄧ▼搴忚皟鐢紝褰撶劧涔熷寘鎷嬌鐢∕FC鐨勫簲鐢ㄧ▼搴忋傚湪榪欑鍔ㄦ佽繛鎺ュ簱涓紝鍖呭惈涓涓粠CWinApp緇ф壙涓嬫潵鐨勭被錛孌llMain鍑芥暟鍒欑敱MFC鑷姩鎻愪緵銆?br />
銆銆Regular DLL鍒嗕負(fù)涓ょ被錛?br />
銆銆錛?錛夐潤鎬侀摼鎺ュ埌MFC 鐨勮鍒橠LL

銆銆闈欐侀摼鎺ュ埌MFC鐨勮鍒橠LL涓嶮FC搴擄紙鍖呮嫭MFC鎵╁睍 DLL錛夐潤鎬侀摼鎺ワ紝灝哅FC搴撶殑浠g爜鐩存帴鐢熸垚鍦?dll鏂囦歡涓傚湪璋冪敤榪欑DLL鐨勬帴鍙f椂錛孧FC浣跨敤DLL鐨勮祫婧愩傚洜姝わ紝鍦ㄩ潤鎬侀摼鎺ュ埌MFC 鐨勮鍒橠LL涓笉闇瑕佽繘琛屾ā鍧楃姸鎬佺殑鍒囨崲銆?br />
銆銆浣跨敤榪欑鏂規(guī)硶鐢熸垚鐨勮鍒橠LL鍏剁▼搴忚緝澶э紝涔熷彲鑳藉寘鍚噸澶嶇殑浠g爜銆?br />
銆銆錛?錛夊姩鎬侀摼鎺ュ埌MFC 鐨勮鍒橠LL

銆 銆鍔ㄦ侀摼鎺ュ埌MFC 鐨勮鍒橠LL 鍙互鍜屼嬌鐢ㄥ畠鐨勫彲鎵ц鏂囦歡鍚屾椂鍔ㄦ侀摼鎺ュ埌 MFC DLL 鍜屼換浣昅FC鎵╁睍 DLL銆傚湪浣跨敤浜哅FC鍏變韓搴撶殑鏃跺欙紝榛樿鎯呭喌涓嬶紝MFC浣跨敤涓誨簲鐢ㄧ▼搴忕殑璧勬簮鍙ユ焺鏉ュ姞杞借祫婧愭ā鏉褲傝繖鏍鳳紝褰揇LL鍜屽簲鐢ㄧ▼搴忎腑瀛樺湪鐩稿悓ID鐨勮祫婧愭椂錛堝嵆 鎵璋撶殑璧勬簮閲嶅闂錛夛紝緋葷粺鍙兘涓嶈兘鑾峰緱姝g‘鐨勮祫婧愩傚洜姝わ紝瀵逛簬鍏變韓MFC DLL鐨勮鍒橠LL錛屾垜浠繀欏昏繘琛屾ā鍧楀垏鎹互浣垮緱MFC鑳藉鎵懼埌姝g‘鐨勮祫婧愭ā鏉褲?br />
鎴戜滑鍙互鍦╒isual C++涓緗甅FC瑙勫垯DLL鏄潤鎬侀摼鎺ュ埌MFC DLL榪樻槸鍔ㄦ侀摼鎺ュ埌MFC DLL銆傚鍥?錛屼緷嬈¢夋嫨Visual C++鐨刾roject -> Settings -> General鑿滃崟鎴栭夐」錛屽湪Microsoft Foundation Classes涓繘琛岃緗?br />

鍥? 璁劇疆鍔ㄦ?闈欐侀摼鎺FC DLL

銆銆5.2 MFC瑙勫垯DLL鐨勫垱寤?/strong>

銆銆鎴戜滑鏉ヤ竴姝ユ璁茶堪浣跨敤MFC鍚戝鍒涘緩MFC瑙勫垯DLL鐨勮繃紼嬶紝棣栧厛鏂板緩涓涓猵roject錛屽鍥?錛岄夋嫨project鐨勭被鍨嬩負(fù)MFC AppWizard(dll)銆傜偣鍑籓K榪涘叆濡傚浘10鎵紺虹殑瀵硅瘽妗嗐?br />

鍥? MFC DLL宸ョ▼鐨勫垱寤?/p>銆銆鍥?0鎵紺哄璇濇涓殑1鍖洪夋嫨MFC DLL鐨勭被鍒?br />
銆 銆2鍖洪夋嫨鏄惁鏀寔automation錛堣嚜鍔ㄥ寲錛夋妧鏈紝 automation 鍏佽鐢ㄦ埛鍦ㄤ竴涓簲鐢ㄧ▼搴忎腑鎿嶇旱鍙﹀涓涓簲鐢ㄧ▼搴忔垨緇勪歡銆備緥濡傦紝鎴戜滑鍙互鍦ㄥ簲鐢ㄧ▼搴忎腑鍒╃敤 Microsoft Word 鎴朚icrosoft Excel鐨勫伐鍏鳳紝鑰岃繖縐嶄嬌鐢ㄥ鐢ㄦ埛鑰岃█鏄忔槑鐨勩傝嚜鍔ㄥ寲鎶鏈彲浠ュぇ澶х畝鍖栧拰鍔犲揩搴旂敤紼嬪簭鐨勫紑鍙戙?br />
銆銆3鍖洪夋嫨鏄惁鏀寔Windows Sockets錛屽綋閫夋嫨姝ら」鐩椂錛屽簲鐢ㄧ▼搴忚兘鍦?TCP/IP 緗戠粶涓婅繘琛岄氫俊銆? CWinApp媧劇敓綾葷殑InitInstance鎴愬憳鍑芥暟浼?xì)鍒濆鍖栭氳绔殑鏀寔錛屽悓鏃跺伐紼嬩腑鐨凷tdAfx.h鏂囦歡浼?xì)鑷姩include <AfxSock.h>澶存枃浠躲?br />
娣誨姞socket閫氳鏀寔鍚庣殑InitInstance鎴愬憳鍑芥暟濡備笅錛?br />

BOOL CRegularDllSocketApp::InitInstance()

{

if (!AfxSocketInit())

{

AfxMessageBox(IDP_SOCKETS_INIT_FAILED);

return FALSE;

}


return TRUE;

}


銆銆4鍖洪夋嫨鏄惁鐢盡FC鍚戝鑷姩鍦ㄦ簮浠g爜涓坊鍔犳敞閲婏紝涓鑸垜浠夋嫨鈥淵es,please鈥濄?br />

鍥?0 MFC DLL鐨勫垱寤洪夐」

銆銆5.3 涓涓畝鍗曠殑MFC瑙勫垯DLL

銆銆榪欎釜DLL鐨勪緥瀛愶紙灞炰簬闈欐侀摼鎺ュ埌MFC 鐨勮鍒橠LL錛変腑鎻愪緵浜嗕竴涓鍥?1鎵紺虹殑瀵硅瘽妗嗐?br />

鍥?1 MFC瑙勫垯DLL渚嬪瓙

銆銆鍦―LL涓坊鍔犲璇濇鐨勬柟寮忎笌鍦∕FC搴旂敤紼嬪簭涓槸涓鏍風(fēng)殑銆?br />
銆銆鍦ㄥ浘11鎵紺篋LL涓殑瀵硅瘽妗嗙殑Hello鎸夐挳涓婄偣鍑?yán)L椂灝哅essageBox涓涓淗ello,pconline鐨勭綉鍙嬧濆璇濇錛屼笅闈㈡槸鐩稿叧鐨勬枃浠跺強婧愪唬鐮侊紝鍏朵腑鍒犻櫎浜哅FC鍚戝鑷姩鐢熸垚鐨勭粷澶у鏁版敞閲婏紙涓嬭澆鏈伐紼?a >闄勪歡錛夛細(xì)


絎竴緇勬枃浠訛細(xì)CWinApp緇ф壙綾葷殑澹版槑涓庡疄鐜?br />

// RegularDll.h : main header file for the REGULARDLL DLL



#if !defined(AFX_REGULARDLL_H__3E9CB22B_588B_4388_B778_B3416ADB79B3__INCLUDED_)

#define AFX_REGULARDLL_H__3E9CB22B_588B_4388_B778_B3416ADB79B3__INCLUDED_



#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000



#ifndef __AFXWIN_H__

#error include 'stdafx.h' before including this file for PCH

#endif

#include "resource.h" // main symbols



class CRegularDllApp : public CWinApp

{

public:

CRegularDllApp();



DECLARE_MESSAGE_MAP()

};

#endif



// RegularDll.cpp : Defines the initialization routines for the DLL.



#include "stdafx.h"

#include "RegularDll.h"



#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif



BEGIN_MESSAGE_MAP(CRegularDllApp, CWinApp)

END_MESSAGE_MAP()



/////////////////////////////////////////////////////////////////////////////

// CRegularDllApp construction



CRegularDllApp::CRegularDllApp()

{

}



/////////////////////////////////////////////////////////////////////////////

// The one and only CRegularDllApp object

CRegularDllApp theApp;


銆銆鍒嗘瀽錛?br />
銆 銆鍦ㄨ繖涓緇勬枃浠朵腑瀹氫箟浜嗕竴涓戶鎵胯嚜CWinApp鐨勭被CRegularDllApp錛屽茍鍚屾椂瀹氫箟浜嗗叾鐨勪竴涓疄渚媡heApp銆備箥涓鐪嬶紝鎮(zhèn)ㄤ細(xì)浠ヤ負(fù)瀹冩槸涓涓? MFC搴旂敤紼嬪簭錛屽洜涓篗FC搴旂敤紼嬪簭涔熷寘鍚繖鏍風(fēng)殑鍦ㄥ伐紼嬪悕鍚庢坊鍔犫淎pp鈥濈粍鎴愮被鍚嶇殑綾伙紙騫剁戶鎵胯嚜CWinApp綾伙級錛屼篃瀹氫箟浜嗚繖涓被鐨勪竴涓叏灞瀹炰緥 theApp銆?br />
鎴戜滑鐭ラ亾錛屽湪MFC搴旂敤紼嬪簭涓瑿WinApp鍙栦唬浜哠DK紼嬪簭涓璚inMain鐨勫湴浣嶏紝SDK紼嬪簭WinMain鎵瀹屾垚鐨勫伐浣滅敱CWinApp鐨勪笁涓嚱鏁板畬鎴愶細(xì)

virtual BOOL InitApplication( );

virtual BOOL InitInstance( );

virtual BOOL Run( ); //浼犺涓璏FC紼嬪簭鐨勨滄椿姘存簮澶粹?/p>
銆 銆浣嗘槸MFC瑙勫垯DLL騫朵笉鏄疢FC搴旂敤紼嬪簭錛屽畠鎵緇ф壙鑷狢WinApp鐨勭被涓嶅寘鍚秷鎭驚鐜傝繖鏄洜涓猴紝MFC瑙勫垯DLL涓嶅寘鍚獵WinApp::Run 鏈哄埗錛屼富娑堟伅娉典粛鐒剁敱搴旂敤紼嬪簭鎷ユ湁銆傚鏋淒LL 鐢熸垚鏃犳ā寮忓璇濇鎴栨湁鑷繁鐨勪富妗嗘灦紿楀彛錛屽垯搴旂敤紼嬪簭鐨勪富娑堟伅娉靛繀欏昏皟鐢ㄤ粠DLL 瀵煎嚭鐨勫嚱鏁版潵璋冪敤PreTranslateMessage鎴愬憳鍑芥暟銆?br />
銆銆鍙﹀錛孧FC瑙勫垯DLL涓嶮FC 搴旂敤紼嬪簭涓竴鏍鳳紝闇瑕佸皢鎵鏈?DLL涓厓绱犵殑鍒濆鍖栨斁鍒癐nitInstance 鎴愬憳鍑芥暟涓?br />
銆銆絎簩緇勬枃浠?鑷畾涔夊璇濇綾誨0鏄庡強瀹炵幇(鐐瑰嚮鏌ョ湅闄勪歡)

銆銆鍒嗘瀽錛?br />
銆銆榪欎竴閮ㄥ垎鐨勭紪紼嬩笌涓鑸殑搴旂敤紼嬪簭鏍規(guī)湰娌℃湁浠涔堜笉鍚岋紝鎴戜滑鐓ф牱鍙互鍒╃敤MFC綾誨悜瀵兼潵鑷姩涓哄璇濇涓婄殑鎺т歡娣誨姞浜嬩歡銆侻FC綾誨悜瀵肩収鏍蜂細(xì)鐢熸垚綾諱技ON_BN_CLICKED(IDC_HELLO_BUTTON, OnHelloButton)鐨勬秷鎭槧灝勫畯銆?br />
銆銆絎笁緇勬枃浠?DLL涓殑璧勬簮鏂囦歡

//{{NO_DEPENDENCIES}}

// Microsoft Developer Studio generated include file.

// Used by RegularDll.rc

//

#define IDD_DLL_DIALOG 1000

#define IDC_HELLO_BUTTON 1000


銆銆鍒嗘瀽錛?br />
銆銆鍦∕FC瑙勫垯DLL涓嬌鐢ㄨ祫婧愪篃涓庡湪MFC搴旂敤紼嬪簭涓嬌鐢ㄨ祫婧愭病鏈変粈涔堜笉鍚岋紝鎴戜滑鐓ф牱鍙互鐢╒isual C++鐨勮祫婧愮紪杈戝伐鍏瘋繘琛岃祫婧愮殑娣誨姞銆佸垹闄ゅ拰灞炴х殑鏇存敼銆?br />
銆銆絎洓緇勬枃浠?MFC瑙勫垯DLL鎺ュ彛鍑芥暟

#include "StdAfx.h"

#include "DllDialog.h"


extern "C" __declspec(dllexport) void ShowDlg(void)

{

CDllDialog dllDialog;

dllDialog.DoModal();

}


銆銆鍒嗘瀽錛?br />
銆銆榪欎釜鎺ュ彛騫朵笉浣跨敤MFC錛屼絾鏄湪鍏朵腑鍗村彲浠ヨ皟鐢∕FC鎵╁睍綾籆dllDialog鐨勫嚱鏁幫紝榪欎綋鐜頒簡鈥滆鍒欌濈殑姒傜被銆?br />
銆銆涓庨潪MFC DLL瀹屽叏鐩稿悓錛屾垜浠彲浠ヤ嬌鐢╛_declspec(dllexport)澹版槑鎴栧湪.def涓紩鍑虹殑鏂瑰紡瀵煎嚭MFC瑙勫垯DLL涓殑鎺ュ彛銆?br />
5.4 MFC瑙勫垯DLL鐨勮皟鐢?/strong>

銆銆絎旇呯紪鍐欎簡濡傚浘12鐨勫璇濇MFC紼嬪簭錛堜笅杞芥湰宸ョ▼闄勪歡錛夋潵璋冪敤5.3鑺傜殑MFC瑙勫垯DLL錛屽湪榪欎釜紼嬪簭鐨勫璇濇涓婄偣鍑燴滆皟鐢―LL鈥濇寜閽椂寮瑰嚭5.3鑺侻FC瑙勫垯DLL涓殑瀵硅瘽妗嗐?br />

鍥?2 MFC瑙勫垯DLL鐨勮皟鐢ㄤ緥瀛?/p>

銆銆涓嬮潰鏄滆皟鐢―LL鈥濇寜閽崟鍑諱簨浠剁殑娑堟伅澶勭悊鍑芥暟錛?br />

void CRegularDllCallDlg::OnCalldllButton()

{

typedef void (*lpFun)(void);


HINSTANCE hDll; //DLL鍙ユ焺

hDll = LoadLibrary("RegularDll.dll");

if (NULL==hDll)

{

MessageBox("DLL鍔犺澆澶辮觸");

}



lpFun addFun; //鍑芥暟鎸囬拡

lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");

if (NULL==pShowDlg)

{

MessageBox("DLL涓嚱鏁板鎵懼け璐?);

}

pShowDlg();

}


銆銆涓婅堪渚嬪瓙涓粰鍑虹殑鏄樉紺鴻皟鐢ㄧ殑鏂瑰紡錛屽彲浠ョ湅鍑猴紝鍏惰皟鐢ㄦ柟寮忎笌絎?鑺備腑闈濵FC DLL鐨勮皟鐢ㄦ柟寮忔病鏈変粈涔堜笉鍚屻?br />
鎴戜滑鐓ф牱鍙互鍦‥XE紼嬪簭涓殣寮忚皟鐢∕FC瑙勫垯DLL錛屽彧闇瑕佸皢DLL宸ョ▼鐢熸垚鐨?lib鏂囦歡鍜?dll鏂囦歡鎷峰叆褰撳墠宸ョ▼鎵鍦ㄧ殑鐩綍錛屽茍鍦≧egularDllCallDlg.cpp鏂囦歡錛堝浘12鎵紺哄璇濇綾葷殑瀹炵幇鏂囦歡錛夌殑欏墮儴娣誨姞錛?br />

#pragma comment(lib,"RegularDll.lib")

void ShowDlg(void);


銆銆騫跺皢void CRegularDllCallDlg::OnCalldllButton() 鏀逛負(fù)錛?br />

void CRegularDllCallDlg::OnCalldllButton()

{

ShowDlg();

}



銆銆5.5 鍏變韓MFC DLL鐨勮鍒橠LL鐨勬ā鍧楀垏鎹?/strong>

銆 銆搴旂敤紼嬪簭榪涚▼鏈韓鍙婂叾璋冪敤鐨勬瘡涓狣LL妯″潡閮藉叿鏈変竴涓叏灞鍞竴鐨凥INSTANCE鍙ユ焺錛屽畠浠唬琛ㄤ簡DLL鎴朎XE妯″潡鍦ㄨ繘紼嬭櫄鎷熺┖闂翠腑鐨勮搗濮嬪湴鍧銆傝繘 紼嬫湰韜殑妯″潡鍙ユ焺涓鑸負(fù)0x400000錛岃孌LL妯″潡鐨勭己鐪佸彞鏌勪負(fù)0x10000000銆傚鏋滅▼搴忓悓鏃跺姞杞戒簡澶氫釜DLL錛屽垯姣忎釜DLL妯″潡閮戒細(xì)鏈変笉鍚岀殑 HINSTANCE銆傚簲鐢ㄧ▼搴忓湪鍔犺澆DLL鏃跺鍏惰繘琛屼簡閲嶅畾浣嶃?

銆銆鍏變韓MFC DLL錛堟垨MFC鎵╁睍DLL錛夌殑瑙勫垯DLL娑夊強鍒癏INSTANCE鍙ユ焺闂錛孒INSTANCE鍙ユ焺瀵逛簬鍔犺澆璧勬簮鐗瑰埆閲嶈銆侲XE鍜孌LL閮芥湁鍏惰嚜宸辯殑 璧勬簮錛岃屼笖榪欎簺璧勬簮鐨処D鍙兘閲嶅錛屽簲鐢ㄧ▼搴忛渶瑕侀氳繃璧勬簮妯″潡鐨勫垏鎹㈡潵鎵懼埌姝g‘鐨勮祫婧愩傚鏋滃簲鐢ㄧ▼搴忛渶瑕佹潵鑷簬DLL鐨勮祫婧愶紝灝卞簲灝嗚祫婧愭ā鍧楀彞鏌勬寚瀹氫負(fù) DLL鐨勬ā鍧楀彞鏌勶紱濡傛灉闇瑕丒XE鏂囦歡涓寘鍚殑璧勬簮錛屽氨搴斿皢璧勬簮妯″潡鍙ユ焺鎸囧畾涓篍XE鐨勬ā鍧楀彞鏌勩?br />
銆銆榪欐鎴戜滑鍒涘緩涓涓姩鎬侀摼鎺ュ埌MFC DLL鐨勮鍒橠LL錛堜笅杞芥湰宸ョ▼闄勪歡錛夛紝鍦ㄥ叾涓寘鍚鍥?3鐨勫璇濇銆?br />

鍥?3 DLL涓殑瀵硅瘽妗?/p>

銆銆鍙﹀錛屽湪涓庤繖涓狣LL鐩稿悓鐨勫伐浣滃尯涓敓鎴愪竴涓熀浜庡璇濇鐨凪FC紼嬪簭錛屽叾瀵硅瘽妗嗕笌鍥?2瀹屽叏涓鏍楓備絾鏄湪姝ゅ伐紼嬩腑鎴戜滑鍙﹀娣誨姞浜嗕竴涓鍥?4鐨勫璇濇銆?br />

鍥?4 EXE涓殑瀵硅瘽妗?/p>銆銆鍥?3鍜屽浘14涓殑瀵硅瘽妗嗛櫎浜哻aption涓嶅悓錛堜互紺哄尯鍒級浠ュ錛屽叾瀹冪殑閮界浉鍚屻?br />
灝ゅ叾鍊煎緱鐗瑰埆娉ㄦ剰錛屽湪DLL鍜孍XE涓垜浠鍥?3鍜屽浘14鐨勫璇濇浣跨敤浜嗙浉鍚岀殑璧勬簮ID=2000錛屽湪DLL鍜孍XE宸ョ▼鐨剅esource.h涓垎鍒湁濡備笅鐨勫畯錛?br />

//DLL涓璇濇鐨処D

#define IDD_DLL_DIALOG 2000


//EXE涓璇濇鐨処D

#define IDD_EXE_DIALOG 2000


銆銆涓?.3鑺傞潤鎬侀摼鎺FC DLL鐨勮鍒橠LL鐩稿悓錛屾垜浠繕鏄湪瑙勫垯DLL涓畾涔夋帴鍙e嚱鏁癝howDlg錛屽師鍨嬪涓嬶細(xì)

#include "StdAfx.h"

#include "SharedDll.h"

void ShowDlg(void)

{

CDialog dlg(IDD_DLL_DIALOG); //鎵撳紑ID涓?000鐨勫璇濇

dlg.DoModal();

}


銆銆鑰屼負(fù)搴旂敤宸ョ▼涓誨璇濇鐨勨滆皟鐢―LL鈥濈殑鍗曞嚮浜嬩歡娣誨姞濡備笅娑堟伅澶勭悊鍑芥暟錛?br />

void CSharedDllCallDlg::OnCalldllButton()

{

ShowDlg();

}


銆銆鎴戜滑浠ヤ負(fù)鍗曞嚮鈥滆皟鐢―LL鈥濅細(xì)寮瑰嚭濡傚浘13鎵紺篋LL涓殑瀵硅瘽妗嗭紝鍙槸鍙曠殑浜嬫儏鍙戠敓浜嗭紝鎴戜滑鐪嬪埌鏄浘14鎵紺篍XE涓殑瀵硅瘽妗嗭紒

銆銆鎯婅錛?/strong>

銆銆浜х敓榪欎釜闂鐨勬牴婧愬湪浜庡簲鐢ㄧ▼搴忎笌MFC瑙勫垯DLL鍏變韓MFC DLL錛堟垨MFC鎵╁睍DLL錛夌殑紼嬪簭鎬繪槸榛樿浣跨敤EXE鐨勮祫婧愶紝鎴戜滑蹇呴』榪涜璧勬簮妯″潡鍙ユ焺鐨勫垏鎹紝鍏跺疄鐜版柟娉曟湁涓夛細(xì)

銆銆鏂規(guī)硶涓 鍦―LL鎺ュ彛鍑芥暟涓嬌鐢細(xì)

AFX_MANAGE_STATE(AfxGetStaticModuleState());

鎴戜滑灝咲LL涓殑鎺ュ彛鍑芥暟ShowDlg鏀逛負(fù)錛?br />

void ShowDlg(void)

{

//鏂規(guī)硶1:鍦ㄥ嚱鏁板紑濮嬪鍙樻洿錛屽湪鍑芥暟緇撴潫鏃舵仮澶?br />
//灝咥FX_MANAGE_STATE(AfxGetStaticModuleState());浣滀負(fù)鎺ュ彛鍑芥暟鐨勭涓//鏉¤鍙ヨ繘琛屾ā鍧楃姸鎬佸垏鎹?br />
AFX_MANAGE_STATE(AfxGetStaticModuleState());


CDialog dlg(IDD_DLL_DIALOG);//鎵撳紑ID涓?000鐨勫璇濇

dlg.DoModal();

}


銆銆榪欐鎴戜滑鍐嶇偣鍑籈XE紼嬪簭涓殑鈥滆皟鐢―LL鈥濇寜閽紝寮瑰嚭鐨勬槸DLL涓殑濡傚浘13鐨勫璇濇錛佸樋鍢匡紝寮瑰嚭浜嗘紜殑瀵硅瘽妗嗚祫婧愩?br />
AfxGetStaticModuleState鏄竴涓嚱鏁幫紝鍏跺師鍨嬩負(fù)錛?br />

AFX_MODULE_STATE* AFXAPI AfxGetStaticModuleState( );


銆銆璇ュ嚱鏁扮殑鍔熻兘鏄湪鏍堜笂錛堣繖鎰忓懗鐫鍏朵綔鐢ㄥ煙鏄眬閮ㄧ殑錛夊垱寤轟竴涓狝FX_MODULE_STATE綾伙紙妯″潡鍏ㄥ眬鏁版嵁涔熷氨鏄ā鍧楃姸鎬侊級鐨勫疄渚嬶紝瀵瑰叾榪涜璁劇疆錛屽茍灝嗗叾鎸囬拡pModuleState榪斿洖銆?br />
AFX_MODULE_STATE綾葷殑鍘熷瀷濡備笅錛?br />

// AFX_MODULE_STATE (global data for a module)

class AFX_MODULE_STATE : public CNoTrackObject

{

public:

#ifdef _AFXDLL

AFX_MODULE_STATE(BOOL bDLL, WNDPROC pfnAfxWndProc, DWORD dwVersion);

AFX_MODULE_STATE(BOOL bDLL, WNDPROC pfnAfxWndProc, DWORD dwVersion,BOOL bSystem);

#else

AFX_MODULE_STATE(BOOL bDLL);

#endif

~AFX_MODULE_STATE();


CWinApp* m_pCurrentWinApp;

HINSTANCE m_hCurrentInstanceHandle;

HINSTANCE m_hCurrentResourceHandle;

LPCTSTR m_lpszCurrentAppName;


鈥?//鐪佺暐鍚庨潰鐨勯儴鍒?br />
}


銆銆AFX_MODULE_STATE綾誨埄鐢ㄥ叾鏋勯犲嚱鏁板拰鏋愭瀯鍑芥暟榪涜瀛樺偍妯″潡鐘舵佺幇鍦哄強鎭㈠鐜板満鐨勫伐浣滐紝綾諱技姹囩紪涓璫all鎸囦護瀵筽c鎸囬拡鍜宻p瀵勫瓨鍣ㄧ殑淇濆瓨涓庢仮澶嶃佷腑鏂湇鍔$▼搴忕殑涓柇鐜板満鍘嬫爤涓庢仮澶嶄互鍙婃搷浣滅郴緇熺嚎紼嬭皟搴︾殑浠誨姟鎺у埗鍧椾繚瀛樹笌鎭㈠銆?br />
銆銆璁稿鐪嬩技涓嶇潃杈歸檯鐨勭煡璇嗙偣灞呯劧鏈夋儕浜虹殑鐩鎬技錛?br />
AFX_MANAGE_STATE鏄竴涓畯錛屽叾鍘熷瀷涓猴細(xì)

AFX_MANAGE_STATE( AFX_MODULE_STATE* pModuleState )


銆銆璇ュ畯鐢ㄤ簬灝唒ModuleState璁劇疆涓哄綋鍓嶇殑鏈夋晥妯″潡鐘舵併傚綋紱誨紑璇ュ畯鐨勪綔鐢ㄥ煙鏃訛紙涔熷氨紱誨紑浜唒ModuleState鎵鎸囧悜鏍堜笂瀵硅薄鐨勪綔鐢ㄥ煙錛夛紝鍏堝墠鐨勬ā鍧楃姸鎬佸皢鐢盇FX_MODULE_STATE鐨勬瀽鏋勫嚱鏁版仮澶嶃?br />
銆銆鏂規(guī)硶浜?鍦―LL鎺ュ彛鍑芥暟涓嬌鐢細(xì)

AfxGetResourceHandle();

AfxSetResourceHandle(HINSTANCE xxx);


銆銆AfxGetResourceHandle鐢ㄤ簬鑾峰彇褰撳墠璧勬簮妯″潡鍙ユ焺錛岃孉fxSetResourceHandle鍒欑敤浜庤緗▼搴忕洰鍓嶈浣跨敤鐨勮祫婧愭ā鍧楀彞鏌勩?br />
銆銆鎴戜滑灝咲LL涓殑鎺ュ彛鍑芥暟ShowDlg鏀逛負(fù)錛?br />

void ShowDlg(void)

{

//鏂規(guī)硶2鐨勭姸鎬佸彉鏇?br />
HINSTANCE save_hInstance = AfxGetResourceHandle();

AfxSetResourceHandle(theApp.m_hInstance);



CDialog dlg(IDD_DLL_DIALOG);//鎵撳紑ID涓?000鐨勫璇濇

dlg.DoModal();

//鏂規(guī)硶2鐨勭姸鎬佽繕鍘?br />
AfxSetResourceHandle(save_hInstance);

}


銆銆閫氳繃AfxGetResourceHandle鍜孉fxSetResourceHandle鐨勫悎鐞嗗彉鏇達紝鎴戜滑鑳藉鐏墊椿鍦拌緗▼搴忕殑璧勬簮妯″潡鍙ユ焺錛岃屾柟娉曚竴鍒欏彧鑳藉湪DLL鎺ュ彛鍑芥暟閫鍑虹殑鏃跺欐墠浼?xì)鎭㈠妯″潡鍙ユ焺銆傛柟娉曚簩鍒欎笉鍚岋紝濡傛灉灝哠howDlg鏀逛負(fù)錛?br />

extern CSharedDllApp theApp; //闇瑕佸0鏄巘heApp澶栭儴鍏ㄥ眬鍙橀噺

void ShowDlg(void)
{
//鏂規(guī)硶2鐨勭姸鎬佸彉鏇?br />HINSTANCE save_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(theApp.m_hInstance);
CDialog dlg(IDD_DLL_DIALOG);//鎵撳紑ID涓?000鐨勫璇濇
dlg.DoModal();


//鏂規(guī)硶2鐨勭姸鎬佽繕鍘?br />AfxSetResourceHandle(save_hInstance);
//浣跨敤鏂規(guī)硶2鍚庡湪姝ゅ鍐嶈繘琛屾搷浣滈拡瀵圭殑灝嗘槸搴旂敤紼嬪簭鐨勮祫婧?br />CDialog dlg1(IDD_DLL_DIALOG); //鎵撳紑ID涓?000鐨勫璇濇
dlg1.DoModal();
}


銆銆鍦ㄥ簲鐢ㄧ▼搴忎富瀵硅瘽妗嗙殑鈥滆皟鐢―LL鈥濇寜閽笂鐐瑰嚮錛屽皢鐪嬪埌涓や釜瀵硅瘽妗嗭紝鐩哥戶涓篋LL涓殑瀵硅瘽妗嗭紙鍥?3錛夊拰EXE涓殑瀵硅瘽妗嗭紙鍥?4錛夈?br />
鏂規(guī)硶涓?鐢卞簲鐢ㄧ▼搴忚嚜韜垏鎹?br />
銆銆璧勬簮妯″潡鐨勫垏鎹㈤櫎浜嗗彲浠ョ敱DLL鎺ュ彛鍑芥暟瀹屾垚浠ュ錛岀敱搴旂敤紼嬪簭鑷韓涔熻兘瀹屾垚錛堜笅杞芥湰宸ョ▼闄勪歡錛夈?br />
銆銆鐜板湪鎴戜滑鎶奃LL涓殑鎺ュ彛鍑芥暟鏀逛負(fù)鏈綆鍗曠殑錛?br />

void ShowDlg(void)
{
CDialog dlg(IDD_DLL_DIALOG); //鎵撳紑ID涓?000鐨勫璇濇
dlg.DoModal();
}


銆銆鑰屽皢搴旂敤紼嬪簭鐨凮nCalldllButton鍑芥暟鏀逛負(fù)錛?br />

void CSharedDllCallDlg::OnCalldllButton()
{
//鏂規(guī)硶3錛氱敱搴旂敤紼嬪簭鏈韓榪涜鐘舵佸垏鎹?br />
//鑾峰彇EXE妯″潡鍙ユ焺

HINSTANCE exe_hInstance = GetModuleHandle(NULL);
//鎴栬匟INSTANCE exe_hInstance = AfxGetResourceHandle();
//鑾峰彇DLL妯″潡鍙ユ焺
HINSTANCE dll_hInstance = GetModuleHandle("SharedDll.dll");
AfxSetResourceHandle(dll_hInstance); //鍒囨崲鐘舵?br />ShowDlg(); //姝ゆ椂鏄劇ず鐨勬槸DLL鐨勫璇濇
AfxSetResourceHandle(exe_hInstance); //鎭㈠鐘舵?br />
//璧勬簮妯″潡鎭㈠鍚庡啀璋冪敤ShowDlg
ShowDlg(); //姝ゆ椂鏄劇ず鐨勬槸EXE鐨勫璇濇

}


銆銆鏂規(guī)硶涓変腑鐨刉in32鍑芥暟GetModuleHandle鍙互鏍規(guī)嵁DLL鐨勬枃浠跺悕鑾峰彇DLL鐨勬ā鍧楀彞鏌勩傚鏋滈渶瑕佸緱鍒癊XE妯″潡鐨勫彞鏌勶紝鍒欏簲璋冪敤甯︽湁Null鍙傛暟鐨凣etModuleHandle銆?br />
銆 銆鏂規(guī)硶涓変笌鏂規(guī)硶浜岀殑涓嶅悓鍦ㄤ簬鏂規(guī)硶涓夋槸鍦ㄥ簲鐢ㄧ▼搴忎腑鍒╃敤AfxGetResourceHandle鍜孉fxSetResourceHandle榪涜璧勬簮妯″潡 鍙ユ焺鍒囨崲鐨勩傚悓鏍峰湴錛屽湪搴旂敤紼嬪簭涓誨璇濇鐨勨滆皟鐢―LL鈥濇寜閽笂鐐瑰嚮錛屼篃灝嗙湅鍒頒袱涓璇濇錛岀浉緇т負(fù)DLL涓殑瀵硅瘽妗嗭紙鍥?3錛夊拰EXE涓殑瀵硅瘽妗嗭紙鍥? 14錛夈?br />
銆銆鍦ㄤ笅涓鑺傛垜浠皢瀵筂FC鎵╁睍DLL榪涜璇︾粏鍒嗘瀽鍜屽疄渚嬭瑙o紝嬈㈣繋鎮(zhèn)ㄧ戶緇叧娉ㄦ湰緋誨垪榪炶澆銆?br />



swo 2006-09-20 12:21 鍙戣〃璇勮
]]>
久久中文字幕一区二区| 久久久久女人精品毛片| 亚洲欧美国产精品专区久久| 无码任你躁久久久久久老妇| 99精品国产99久久久久久97 | 一本一本久久a久久综合精品蜜桃| 亚洲熟妇无码另类久久久| 国产精品久久久久无码av| 国产一区二区精品久久凹凸 | 久久九九亚洲精品| 久久精品国产精品亜洲毛片| 麻豆精品久久久久久久99蜜桃| 久久久久亚洲AV无码专区体验| 久久被窝电影亚洲爽爽爽| 亚洲欧洲精品成人久久曰影片| 久久久久免费看成人影片| 精品久久久久国产免费| 综合久久国产九一剧情麻豆| 99久久精品免费观看国产| 伊人久久大香线蕉亚洲五月天| 99久久精品这里只有精品 | 欧美亚洲国产精品久久久久| 99久久国产热无码精品免费| 亚洲精品国精品久久99热| 精品无码久久久久久尤物| 国内精品久久久久影院亚洲 | 人妻少妇久久中文字幕一区二区| 国产免费福利体检区久久| 久久久久亚洲av无码专区| 亚洲乱码日产精品a级毛片久久| 欧美伊香蕉久久综合类网站| 国产精品一区二区久久精品涩爱 | 亚洲国产成人久久综合一区77| 久久被窝电影亚洲爽爽爽| 日韩久久久久久中文人妻| 亚洲国产精品综合久久一线| 国内精品伊人久久久久影院对白| 久久国产免费观看精品3| 亚洲∧v久久久无码精品| 久久强奷乱码老熟女网站| 青青草国产97免久久费观看|