動(dòng)態(tài)鏈接庫(kù)dll編程深入淺出

動(dòng)態(tài)鏈接庫(kù)dll編程深入淺出

ID:29717650

大?。?00.01 KB

頁(yè)數(shù):10頁(yè)

時(shí)間:2018-12-22

動(dòng)態(tài)鏈接庫(kù)dll編程深入淺出_第1頁(yè)
動(dòng)態(tài)鏈接庫(kù)dll編程深入淺出_第2頁(yè)
動(dòng)態(tài)鏈接庫(kù)dll編程深入淺出_第3頁(yè)
動(dòng)態(tài)鏈接庫(kù)dll編程深入淺出_第4頁(yè)
動(dòng)態(tài)鏈接庫(kù)dll編程深入淺出_第5頁(yè)
資源描述:

《動(dòng)態(tài)鏈接庫(kù)dll編程深入淺出》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)

1、這是《VC++動(dòng)態(tài)鏈接庫(kù)(DLL)編程深入淺出》的第四部分,閱讀本文前,請(qǐng)先閱讀前三部分:(一)、(二)、(三)。MFC擴(kuò)展DLL的內(nèi)涵為MFC的擴(kuò)展,用戶使用MFC擴(kuò)展DLL就像使用MFC本身的DLL一樣。除了可以在MFC擴(kuò)展DLL的內(nèi)部使用MFC以外,MFC擴(kuò)展DLL與應(yīng)用程序的接口部分也可以是MFC。我們一般使用MFC擴(kuò)展DLL來(lái)包含一些MFC的增強(qiáng)功能,譬如擴(kuò)展MFC的CStatic、CButton等類使之具備更強(qiáng)大的能力?! ∈褂肰isualC++向?qū)a(chǎn)MFC擴(kuò)展DLL時(shí),MFC向?qū)?huì)自動(dòng)增加DLL的入口函數(shù)DllMain:extern"C"intAPIE

2、NTRYDllMain(HINSTANCEhInstance,DWORDdwReason,LPVOIDlpReserved){?//RemovethisifyouuselpReserved?UNREFERENCED_PARAMETER(lpReserved);?if(dwReason==DLL_PROCESS_ATTACH)?{??TRACE0("MFCEXPENDDLL.DLLInitializing!");??//ExtensionDLLone-timeinitialization??if(!AfxInitExtensionModule(Mfcexpenddl

3、lDLL,hInstance))???return0;??//InsertthisDLLintotheresourcechain??//NOTE:IfthisExtensionDLLisbeingimplicitlylinkedtoby??//?anMFCRegularDLL(suchasanActiveXControl)??//?insteadofanMFCapplication,thenyouwillwantto??//?removethislinefromDllMainandputitinaseparate??//?functionexportedfromthi

4、sExtensionDLL.?TheRegularDLL??//?thatusesthisExtensionDLLshouldthenexplicitlycallthat??//?functiontoinitializethisExtensionDLL.?Otherwise,??//?theCDynLinkLibraryobjectwillnotbeattachedtothe??//?RegularDLL'sresourcechain,andseriousproblemswill??//?result.??newCDynLinkLibrary(Mfcexpenddll

5、DLL);?}?elseif(dwReason==DLL_PROCESS_DETACH)?{??TRACE0("MFCEXPENDDLL.DLLTerminating!");??//Terminatethelibrarybeforedestructorsarecalled??AfxTermExtensionModule(MfcexpenddllDLL);?}?return1;??//ok}  上述代碼完成MFC擴(kuò)展DLL的初始化和終止處理?! ∮捎贛FC擴(kuò)展DLL導(dǎo)出函數(shù)和變量的方式與其它DLL沒(méi)有什么區(qū)別,我們不再細(xì)致講解。下面直接給出一個(gè)MFC擴(kuò)展DLL的創(chuàng)建

6、及在應(yīng)用程序中調(diào)用它的例子。6.1MFC擴(kuò)展DLL的創(chuàng)建  下面我們將在MFC擴(kuò)展DLL中導(dǎo)出一個(gè)按鈕類CSXButton(擴(kuò)展自MFC的CButton類),類CSXButton是一個(gè)用以取代CButton的類,它使你能在同一個(gè)按鈕上顯示位圖和文字,而MFC的按鈕僅可顯示二者之一。類CSXbutton的源代碼在Internet上廣泛流傳,有很好的“群眾基礎(chǔ)”,因此用這個(gè)類來(lái)講解MFC擴(kuò)展DLL有其特殊的功效?! FC中包含一些宏,這些宏在DLL和調(diào)用DLL的應(yīng)用程序中被以不同的方式展開(kāi),這使得在DLL和應(yīng)用程序中,使用統(tǒng)一的一個(gè)宏就可以表示出輸出和輸入的不同意思:/

7、/fordata#ifndefAFX_DATA_EXPORT?#defineAFX_DATA_EXPORT__declspec(dllexport)#endif#ifndefAFX_DATA_IMPORT?#defineAFX_DATA_IMPORT__declspec(dllimport)#endif//forclasses#ifndefAFX_CLASS_EXPORT?#defineAFX_CLASS_EXPORT__declspec(dllexport)#endif#ifndefAFX_CLASS_IMPORT?#defineAFX_CLASS

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。