如果想導(dǎo)出一個全局函數(shù),就用關(guān)鍵字來聲明__declspec(dllexport)
,如__declspec(dllexport) int Add(int a, int b) { return a + b; }
項目需要設(shè)置:
- 取消“預(yù)編譯頭文件”
- 修改為/MTd編譯
- 修改輸出的DLL的名字
編譯可得xx.dll和xx.lib,其中
xx.dll包含所有的代碼編譯成的指令
xx.lib包含一個列表鸳谜,表明xx.dll中含有哪些符號及每個符號對應(yīng)在dll中的位置勺鸦。
在項目中使用DLL
使用庫#pragma comment(lib, "xx.lib")
聲明需要導(dǎo)入的項目__declspec(dllimport) int Add(int a, int b);
DLL的部署位置
程序運(yùn)行時讽坏,xx.dll會被操作系統(tǒng)自動加載,以下是DLL能被OS找到的位置:
- 可執(zhí)行文件所在目錄
- 進(jìn)程當(dāng)前目錄
- 系統(tǒng)目錄(C:\Windows\System32等)
- Windows目錄(C:\Windows)
- 環(huán)境變量PATH中的目錄