- 首先構(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