1. 程式人生 > >C++呼叫DLL介面

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資料夾下面。