C++呼叫DLL介面
基礎概念:
- SDK
- API
- DLL
SDK
sdk 軟體開發工具包,軟體開發工具包廣義上指輔助開發某一類軟體的相關文件、範例和工具的集合。一般而言SDK即開發Windows平臺下的應用程式所使用的SDK。它可以簡單的為某個程式設計語言提供應用程式介面API的一些檔案 —— [ 百度百科 ]
API
API(Application Programming Interface,應用程式設計介面)其實就是作業系統留給應用程式的一個呼叫介面,應用程式通過呼叫作業系統的 API 而使作業系統去執行應用程式的命令(動作)。 —— [ 百度百科 ]
DLL
DLL,即 Dynamic Link Library(動態連結庫)。在windows環境下含有大量 .dll格式的檔案,這些檔案就是動態連結庫檔案,其實也是一種可執行檔案格式。跟 .exe 檔案不同的是,.dll檔案不能直接執行,他們通常由 .exe 在執行時裝入,內含有一些資源以及可執行程式碼等。 —— [ 百度百科 ]
第一步——建立工程(隱式呼叫)
檔案->新建專案->控制檯程式—>Win32控制檯程式——>空專案(其他預設)完成
第二步——新增XX.h和XX.cpp(C++呼叫)
檔案->新建專案->控制檯程式—>Win32控制檯程式——>空專案(其他預設)完成
head.h
#include<stdio.h>
#include<conio.h>
extern"C" __declspec(dllimport) int Plat_Init();
testdll.cpp
#include"head.h"
int main(int argc, char*argv[])
{
Plat_Init();
//getch();
return 0;
}
第三步——新增XX.lib和XX.dll
選擇專案右擊——>新增——>現有項——>找到對應的lib檔案
其中XX.lib是在生成dll時產生的lib 解釋: 如果有dll檔案,那麼lib一般是一些索引資訊,記錄了dll中函式的入口和位置,dll中是函式的具體內容;如果只有lib檔案,那麼這個lib檔案是靜態編譯出來的,索引和實現都在其中。使用靜態編譯的lib檔案,在執行程式時不需要再掛動態庫,缺點是導致應用程式比較大,而且失去了動態庫的靈活性,釋出新版本時要釋出新的應用程式才行。
第四步——編譯執行
如果提示
選擇專案右擊——>新增——>現有項——>找到對應的lib檔案
如果報錯:計算機上丟失XX.dll
解決方法如下:
將XX.dll檔案複製到system32檔案下/win8系統 syswow資料夾下面。