怎么發(fā)現(xiàn)和調(diào)用Dll里面的函數(shù)?

字號(hào):

一、如何知道有哪些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;
    }