一、如何知道有哪些Dll里面的函數(shù)?
1.開(kāi)始菜單->程序-->vc-->vctools-->depends (vc6.0)
2.dumpbin /exports youdll.dll (vc6.0)
二、DLL有顯式調(diào)用和隱式調(diào)用兩種;
1.隱式鏈接時(shí),可執(zhí)行程序必須獲取以下內(nèi)容:
*包含導(dǎo)出函數(shù)和(或)C++類聲明的頭文件(.h);
*導(dǎo)入庫(kù)文件(.LIB);
*實(shí)際的DLL(.dll文件);
在可執(zhí)行程序的每個(gè)使用導(dǎo)出函數(shù)的原文件必須用#include 語(yǔ)句包含有導(dǎo)出函數(shù)的(或者C++類)的頭文件。調(diào)用導(dǎo)出函數(shù)與調(diào)用其他函數(shù)完全一樣。
建立可執(zhí)行程序時(shí),必須與導(dǎo)入庫(kù)文件鏈接,在project settings對(duì)話框的link選項(xiàng)卡的object/library modules文本框中指定導(dǎo)入庫(kù)的名字。
2.顯式調(diào)用例子:
#include "windows.h"
#include
typedef unsigned long (*MYPROC)(unsigned int);//此聲明須和dll 中你
//將要調(diào)用的函數(shù)同樣類型。
int main()
{
HINSTANCE hDLL;
MYPROC MyExports;
hDLL = LoadLibrary("MyDLL.DLL");
if (hDLL !=NULL)
{
MyExports= (MYPROC) GetProcAddress(hDLL,"dll 中的函數(shù)名");
}
cout< FreeLibrary(hDLL);
return 0;
}
1.開(kāi)始菜單->程序-->vc-->vctools-->depends (vc6.0)
2.dumpbin /exports youdll.dll (vc6.0)
二、DLL有顯式調(diào)用和隱式調(diào)用兩種;
1.隱式鏈接時(shí),可執(zhí)行程序必須獲取以下內(nèi)容:
*包含導(dǎo)出函數(shù)和(或)C++類聲明的頭文件(.h);
*導(dǎo)入庫(kù)文件(.LIB);
*實(shí)際的DLL(.dll文件);
在可執(zhí)行程序的每個(gè)使用導(dǎo)出函數(shù)的原文件必須用#include 語(yǔ)句包含有導(dǎo)出函數(shù)的(或者C++類)的頭文件。調(diào)用導(dǎo)出函數(shù)與調(diào)用其他函數(shù)完全一樣。
建立可執(zhí)行程序時(shí),必須與導(dǎo)入庫(kù)文件鏈接,在project settings對(duì)話框的link選項(xiàng)卡的object/library modules文本框中指定導(dǎo)入庫(kù)的名字。
2.顯式調(diào)用例子:
#include "windows.h"
#include
typedef unsigned long (*MYPROC)(unsigned int);//此聲明須和dll 中你
//將要調(diào)用的函數(shù)同樣類型。
int main()
{
HINSTANCE hDLL;
MYPROC MyExports;
hDLL = LoadLibrary("MyDLL.DLL");
if (hDLL !=NULL)
{
MyExports= (MYPROC) GetProcAddress(hDLL,"dll 中的函數(shù)名");
}
cout<
return 0;
}