假設:
1. 編譯器爲VS2010
2. 工程根目錄爲C:\VSProjects\
3. DLL是基於MFC的 (如果不是基於MFC的,也是類似的)
DLL 的創建:
1. 創建一個DLL工程
File->New->Project...->在左側Visual C++下選擇MFC->在右側選擇MFC DLL->在下面的輸入框輸入工程的名字DLLTest->點擊OK按鈕->Next->DLL type默認選擇第一項RegularDLL using shared MFC DLL->點擊Finish按鈕
2. 在DLLTest.h頭文件中加入:
#ifdef DLLTest_API
#define DLLTest_API extern "C" _declspec(dllexport)
#else
#define DLLTest_API extern "C" _declspec(dllimport)
#endif
*注:extern "C" 是可選的,extern "C" 是爲了保證導出的DLL函數名不發生變化。如果寫了extern "C",那麼導出和導入都要寫,要保證一致。
如果要導出的是類,不能在類名前加extern "C",切記切記!!編譯不會通過的。
2.1導出method:
DLLTest_API int add(int x, int y)
{
return x + y;
}
2.2導出class
class _declspec(dllimport) ClassA
{
};
3. 在DLL工程中配置宏名DLLTest_API
右鍵工程名DLLTest->選擇Properties->選擇Configuration Properties->選擇C/C++->選擇Preprocessor->在右側Preprocessor Definitions的右側的下拉箭頭點擊<Edit...>->在彈出的框中添加DLLTest_API->點擊OK
4. 編譯DLLTest
創建調用DLL的工程:
1. 創建一個Win32 Console Application工程
File->new->Project...->在左側Visual C++下選擇Win32->在右側選擇Win32 Console Application->在下面的輸入框輸入工程的名字CallDLLTest->點擊OK按鈕->Next->勾選MFC選項->點擊Finish按鈕
注:路徑信息
DLLTest 工程路徑:
C:\VSProjects\DLLTest
DLLTest.h頭文件路徑:
C:\VSProjects\DLLTest\DLLTest\DLLTest.h
DLLTest.lib文件路徑:
C:\VSProjects\DLLTest\Debug\DLLTest.lib
DLLTest.dll文件路徑:
C:\VSProjects\DLLTest\Debug\DLLTest.dll
2. 在CallDLLTest工程的CallDLLTest.h頭文件中引DLL的頭文件
#include "../../DLLTest/DLLTest/DLLTest.h"
3.在CallDLLTest工程中添加include路徑
右鍵工程名DLLTest->選擇Properties->選擇Configuration Properties->選擇C/C++->選擇General->在右側Additional Include Directories中添加DLLTest的工程路徑
4.拷貝lib和dll文件
將DLLTest.lib和DLLTest.dll文件拷貝到C:\VSProjests\CallDLLTest\Debug\路徑下
5.在CallDLLTest中添加Linker
右鍵工程名DLLTest->選擇Properties->選擇Configuration Properties->選擇Linker->在右側Additional Dependencies中添加lib的路徑../Debug/CallDLLTest.lib
大功告成~!在CallDLLTest工程中可以調用DLL導出的函數、類。