調用DLL有兩種方法:靜態調用和動態調用.
(一).靜態調用其步驟如下:
1.把你的youApp.DLL拷到你目標工程(需調用youApp.DLL的工程)的Debug目錄下;
2.把你的youApp.lib拷到你目標工程(需調用youApp.DLL的工程)目錄下;
3.把你的youApp.h(包含輸出函數的定義)拷到你目標工程(需調用youApp.DLL的工程)目
錄下;
4.打開你的目標工程選中工程,選擇Visual C++的Project主菜單的Settings菜單;
5.執行第4步后,VC將會彈出一個對話框,在對話框的多頁顯示控件中選擇Link頁。然
后在Object/library modules輸入框中輸入:youApp.lib
6.選擇你的目標工程Head Files加入:youApp.h文件;
7.最后在你目標工程(*.cpp,需要調用DLL中的函數)中包含你的:#include "youApp.h"
注:youApp是你DLL的工程名。
2.動態調用其程序如下:
動態調用時只需做靜態調用步驟1.
{
HINSTANCE hDllInst = LoadLibrary("youApp.DLL");
if(hDllInst)
{
typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD);
MYFUNC youFuntionNameAlias = NULL; // youFuntionNameAlias 函數別名
youFuntionNameAlias = (MYFUNC)GetProcAddress
(hDllInst,"youFuntionName");
// youFuntionName 在DLL中聲明的函數名
if(youFuntionNameAlias)
{
youFuntionNameAlias(param1,param2);
}
FreeLibrary(hDllInst);
}
}
顯式(靜態)調用:
LIB + DLL + .H,注意.H中dllexport改為dllimport
隱式(動態)調用:
DLL + 函數原型聲明,先LoadLibrary,再GetProcAddress(即找到DLL中函數的地址),不用后FreeLibrary