構(gòu)建DLL模塊

  1. 首先構(gòu)建一個(gè)頭文件來(lái)包含想要到處的變量和函數(shù)
    #ifdef MYAPI
    #else
    #define MYAPI extern "C" __declspec(dllimport)
    MYAPI int a;
    MYAPI add(int a, int b)

2.在DLL的每個(gè)源文件中,必須包含該頭文件
#define MYAPI extern "C" __declspec(dllexport)
#include "myapi.h"
int a;
int add(int a, int b){
return a+b
}

3.頭文件的要定義的函數(shù)和變量前要加上定義好的宏,源文件中不必加入

4.在用c++語(yǔ)言編寫DLL時(shí),應(yīng)該使用extern "C"標(biāo)識(shí)符告訴編譯器不對(duì)函數(shù)名進(jìn)行改編,使用c語(yǔ)言寫DLL時(shí)不用采用該標(biāo)識(shí)符

5.可執(zhí)行文件不應(yīng)該在包含DLL的頭文件之前定義DLL中定義的宏,否則會(huì)導(dǎo)致DLL不能被正確引用

6.使用DumpBin.exe工具(加上-exports開(kāi)關(guān))來(lái)查看一個(gè)DLL導(dǎo)出段
C:\Program Files (x86)\Microsoft Visual Studio10.0\VC\bin\amd64

7.避免導(dǎo)出時(shí)的名字改編(為非 Visual C++工具包創(chuàng)建DLL)的方法

創(chuàng)建一個(gè).def文件,并在.def文件包含類似下面的EXPORTS段
EXPORTS
MyFunc

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容