




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1?打開VS2012,依次選擇文件一新建一項目一MFCDLL,在下方名稱欄中輸入工程命名OneDLL,在位置欄中選擇存放工程文件的路徑一確定一點擊下一步一DLL類型:使用共享MFCDLL的規(guī)則DLL—點擊完成。其中我們感興趣的是OneDLL.cpp文件和OneDLL.def文件。OneDLL.cpp文件是DLL的主要的源代碼文件,它包含了 COneDLLApp類的定義;OneDLL.def文件包含了DLL提供的關(guān)于DLL在Windows下運行的一些信息,在這個文件中定義了一些參數(shù),如DLL的名稱和屬性等,還聲明了從DLL中輸出的函數(shù)。添加實現(xiàn)代碼,黑色加粗部分為添加的代碼。#include"stdafx.h"#include"OneDLL.h"#ifdef_DEBUG#definenewDEBUG_NEW#endifintMessage(void);BEGIN_MESSAGE_MAP(COneDLLApp,CWinApp)END_MESSAGE_MAP()//COneDLLApp構(gòu)造COneDLLApp::COneDLLApp(){//TODO:在此處添加構(gòu)造代碼,//將所有重要的初始化放置在InitInstance中}//唯一的一個COneDLLApp對象COneDLLApptheApp;//COneDLLApp初始化BOOLCOneDLLApp::InitInstance()CWinApp::InitInstance();returnTRUE;intMessage(void){MessageBox(NULL,_T("ThisistheexampleoftestingDLL."),NULL,MB_OKCANCEL);return1;}記得設(shè)為為多字節(jié)而非unicode編碼。修改.def文件:OneDLL.def:聲明DLL的模塊參數(shù)。LIBRARY"OneDLL"EXPORTSMessage;此處可以是顯式導出點擊生成——生成解決方案,可以生成相關(guān)的lib文件和dll文件,在OneDLL'Debug進行查看生成的文件。新建調(diào)用DLL(OneDLL)的MFC工程。新建一個基于MFC框架的單文檔工程,并在TestDLLView.cpp文件開始處添加HINSTANCEhandlerDLL=NULL;typedefint(*MESSAGE)(void);MESSAGEMessage;然后在菜單中添加DLL主菜單、子菜單,如下圖所示,以及View類下的菜單響應函數(shù)。子菜單ID分別為IDDLLLOAD和IDDLLTESTFile:DLL:旦巳IpLoadDLLT云DLLvoidCTestDLLView::OnDllload(){//TODO:在此添加命令處理程序代碼if(handlerDLL!=NULL){MessageBox(_T("TheOneDLL.DLLhasbeenloaded."));return;}handlerDLL=LoadLibrary(_T("OneDLL.DLL"));if(handlerDLL==NULL){MessageBox(_T("CannotLoadtheOneDLL.DLL"));}else{MessageBox(_T("LoadtheOneDLL.DLLsuccessful!"));}Message=(MESSAGE)GetProcAddress(handlerDLL,_T("Message"));}voidCTestDLLView::OnDlltest(){//TODO:在此添加命令處理程序代碼if(handlerDLL==NULL)
MessageBox(_T("PleaseLoadtheOneDLL.DLLfirst."));return;}Message();}接著,進行生成 生成解決方案,提示如下錯誤:通過查看是Message=(MESSAGE)GetProcAddress(handlerDLL,_T("Message"));引起的,解決辦法是:右擊視圖欄中的工程名一一屬性一一項目默認值一一字符集一一使用多字節(jié)字符集(原來是使用Unicode字符集) 確定,重新生成解決方案,錯誤消失。XT+■n31errorC26M:"GetPtocAddresH不斷皺2肚"mn"wchar_t罔"埠融"LPCETR-t&stdllview.cpp156占2IntelliSense; ■|DDLiU0lAD,TestDLLVievr.cpp35I3IntslliSen&B:來主!W看期nDDLLTEST'TestDULView匚鬧>36'4IntelliSen?:'conti佃:崩r_t趣的宴與1LPCETR'趣茁恿毎不稠TestDLLViffjir.Epp156打開OneDLL工程,右擊視圖欄中的工程名一一屬性一一配置屬性一一常規(guī)一一輸出目錄設(shè)置為TestDLL\Debug,然后點擊生成——生成解決方案,就可以在TestDLL\Debug路徑下生成相關(guān)的lib文件和dll文件以供調(diào)用。Data(DQ?LiuYaqiangkvs20l2kTestDLL名稱DLL主成前Te-siDLL.exe口Te&tDLL.ilkgDLL主成前名稱Data卜LiuYaqiang卜vs20l2卜TestDLL卜D已bug名稱迪OneDLLdll2013/12/1Z檸OneDLL.expDLL知娠 £013/12/1£DOneDLL.ilk2013/12/1SOOneDLL.lib2013/12/12呂OneDLLpdlbTe5.tDLL.exe-灤理浚■DTettDLLillc1"織:W"l]呂Tes-tDLLpdb2013/12/12修煎日期打開TestDLL工程,并允許該工程。打擊菜單DLL——LoadDLL,彈出下面的對話框,說明DLL載入成功,單擊確定。然后單擊DLL——TestDLL,彈出下面的對話框,說明DLL調(diào)用成功。如果提示CannotLoadtheOneDLL.DLL,說明設(shè)置的調(diào)用DLL的路徑有問題;如果提示TheOneDLL.DLLhasbeenloaded.說明DLL已經(jīng)載入了。至此,整個實驗已經(jīng)結(jié)束,如果有興趣,自己可以動手試試。在設(shè)置DLL的生成目錄時,通過瀏覽按鈕,你選擇目的路徑,系統(tǒng)會自動生成為相應的相對地址..\..\TestDLL\Debug。..\..\TestDLL\Debug代表相對路徑;D:\LiuYaqiang\vs201
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國萵筍種子數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國聚四氟乙烯材料數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國漆線雕紅釉瓷瓶數(shù)據(jù)監(jiān)測研究報告
- 科技引領(lǐng)未來現(xiàn)代電子商務技術(shù)發(fā)展與應用
- 2025至2030年中國氣霧劑閥門彈簧數(shù)據(jù)監(jiān)測研究報告
- 水利綠化合同范本
- 微型真空泵相關(guān)行業(yè)投資規(guī)劃報告范本
- 2024年濱州市濱城區(qū)事業(yè)單位招聘考試真題
- 2025年年中國電子政務項目合作計劃書
- 礦山開采本村合同范本
- 廣東省深圳市2024年重點中學小升初數(shù)學入學考試卷含解析
- 2023北師大版新教材高中數(shù)學必修第一冊考前必背
- JB-T 14426-2023 往復式氣液混輸泵裝置
- 2024核桃樹承包合同
- 保險授權(quán)書格式模板
- (完整版)數(shù)字電子技術(shù)基礎(chǔ)教案
- 小回溝礦井3.0Mt-a新建工程變更項目環(huán)評
- 汽車維修合同管理制度
- 2024中交二航局分包合同范本
- 2024年益陽醫(yī)學高等??茖W校單招職業(yè)適應性測試題庫全面
- 2024年四川電力職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫新版
評論
0/150
提交評論