vc中使用動態(tài)鏈接庫dll

vc中使用動態(tài)鏈接庫dll

ID:14324300

大?。?2.00 KB

頁數(shù):10頁

時(shí)間:2018-07-27

vc中使用動態(tài)鏈接庫dll_第1頁
vc中使用動態(tài)鏈接庫dll_第2頁
vc中使用動態(tài)鏈接庫dll_第3頁
vc中使用動態(tài)鏈接庫dll_第4頁
vc中使用動態(tài)鏈接庫dll_第5頁
資源描述:

《vc中使用動態(tài)鏈接庫dll》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、VC中使用動態(tài)鏈接庫DLL:靜態(tài)調(diào)用和動態(tài)調(diào)用2010-05-0215:56VC中生成DLL的辦法見:www.codeproject.com/KB/DLL/RegDLL.aspx--------------------------------------VC中使用DLLhttp://www.cnblogs.com/c1230v/articles/1401448.html調(diào)用DLL有兩種方法:靜態(tài)調(diào)用和動態(tài)調(diào)用.(一).靜態(tài)調(diào)用其步驟如下:1.把你的youApp.DLL拷到你目標(biāo)工程(需調(diào)用youApp.DLL的工程)的Debug目錄下;2.把你的y

2、ouApp.lib拷到你目標(biāo)工程(需調(diào)用youApp.DLL的工程)目錄下;3.把你的youApp.h(包含輸出函數(shù)的定義)拷到你目標(biāo)工程(需調(diào)用youApp.DLL的工程)目錄下;4.打開你的目標(biāo)工程選中工程,選擇VisualC++的Project主菜單的Settings菜單;5.執(zhí)行第4步后,VC將會彈出一個(gè)對話框,在對話框的多頁顯示控件中選擇Link頁。然后在Object/librarymodules輸入框中輸入:youApp.lib6.選擇你的目標(biāo)工程HeadFiles加入:youApp.h文件;7.最后在你目標(biāo)工程(*.cpp,需要調(diào)用D

3、LL中的函數(shù))中包含你的:#include"youApp.h"注:youApp是你DLL的工程名。(二).動態(tài)調(diào)用其程序如下:動態(tài)調(diào)用時(shí)只需做靜態(tài)調(diào)用步驟1.01{02HINSTANCEhDllInst=LoadLibrary("youApp.DLL");03if(hDllInst)04{05typedefDWORD(WINAPI*MYFUNC)(DWORD,DWORD);06MYFUNCyouFuntionNameAlias=NULL;07//youFuntionNameAlias函數(shù)別名08youFuntionNameAlias=(MYFUNC

4、)GetProcAddress(hDllInst,"youFuntionName");09//youFuntionName在DLL中聲明的函數(shù)名10if(youFuntionNameAlias)11{12youFuntionNameAlias(param1,param2);13}14FreeLibrary(hDllInst);15}16}顯式(靜態(tài))調(diào)用:LIB+DLL+.H,注意.H中dllexport改為dllimport隱式(動態(tài))調(diào)用:DLL+函數(shù)原型聲明,先LoadLibrary,再GetProcAddress(即找到DLL中函數(shù)的地址)

5、,不用后FreeLibrary--------------------------------------動態(tài)鏈接庫DLL的鏈接http://blog.donews.com/mmycly/archive/2006/06/15/917076.aspx應(yīng)用程序使用DLL可以采用兩種方式:一種是隱式鏈接,另一種是顯式鏈接。在使用DLL之前首先要知道DLL中函數(shù)的結(jié)構(gòu)信息。VisualC++6.0在VCbin目錄下提供了一個(gè)名為Dumpbin.exe的小程序,用它可以查看DLL文件中的函數(shù)結(jié)構(gòu)。另外,Windows系統(tǒng)將遵循下面的搜索順序來定位DLL:1

6、.包含EXE文件的目錄,2.進(jìn)程的當(dāng)前工作目錄,3.Windows系統(tǒng)目錄,4.Windows目錄,5.列在Path環(huán)境變量中的一系列目錄。(一).隱式鏈接隱式鏈接就是在程序開始執(zhí)行時(shí)就將DLL文件加載到應(yīng)用程序當(dāng)中。實(shí)現(xiàn)隱式鏈接很容易,只要將導(dǎo)入函數(shù)關(guān)鍵字_declspec(dllimport)函數(shù)名等寫到應(yīng)用程序相應(yīng)的頭文件中就可以了。下面的例子通過隱式鏈接調(diào)用MyDll.dll庫中的Min函數(shù)。首先生成一個(gè)項(xiàng)目為TestDll,在DllTest.h、DllTest.cpp文件中分別輸入如下代碼:01//Dlltest.h02#pragmaco

7、mment(lib,"MyDll.lib")03extern"C"_declspec(dllimport)intMax(inta,intb);04extern"C"_declspec(dllimport)intMin(inta,intb);05//TestDll.cpp06#include07#include"Dlltest.h"08voidmain()09{10inta;11a=min(8,10)12printf("比較的結(jié)果為%d",a);13}在創(chuàng)建DllTest.exe文件之前,要先將MyDll.dll和MyDll.lib拷貝到當(dāng)前工程

8、所在的目錄下面,也可以拷貝到windows的System目錄下。如果DLL使用的是def文件,要?jiǎng)h除TestDll.h文件

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

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

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