介紹如何使用 Visual Studio 2019 將自己撰寫的 C++ 程式編譯成 DLL 動態連結函式庫。
建立 DLL 動態連結函式庫
Step 1
開啟 Visual Studio 2019,點選「建立新的專案」。
Step 2
專案的類型請選擇「動態連結程式庫(DLL)」。
輸入專案的名稱,並點選「建立」。
在建立動態連結程式庫專案之後,專案內會包含一些基本的內容,這些程式碼基本上不需要更動。
Step 4
在「標頭檔」上按下滑鼠右鍵,選擇「加入」中的「新增項目」。
Step 5
項目類型選擇「標頭檔(.h)」。
Step 6
在新增的標頭檔中,填入以下程式碼。
#pragma once #ifdef MYDLL_EXPORTS #define MYDLL_API __declspec(dllexport) #else #define MYDLL_API __declspec(dllimport) #endif // 計算歐氏距離(Euclidean Distance)函數 extern "C" MYDLL_API double dist( const double x1, const double y1, const double x2, const double y2);
關於此處 dllexport
與 dllimport
的結構用法,可以參考 OT Coding Note 的解說。
Step 7
在「來源檔案」上按下滑鼠右鍵,選擇「加入」中的「新增項目」。
Step 8
項目類型選擇「C++ 檔(.cpp)」。
Step 9
在新增的 C++ 檔中,填入以下程式碼。
#include "pch.h" #include <cmath> #include "MyDLL.h" // 計算歐氏距離(Euclidean Distance)函數 double dist( const double x1, const double y1, const double x2, const double y2) { return std::sqrt(std::pow(x1 - x2, 2) + std::pow(y1 - y2, 2)); }
Step 10
在「建置」選單中選擇建置自己的專案。
專案建置完成之後,在下方的輸出訊息中就會顯示產生的 DLL 檔案路徑,這樣就完成 DLL 動態連結函式庫的建立了。
Step 11
開啟 DLL 檔案所在的目錄,就可以看到產生的 DLL 函式庫檔案了。
使用 DLL 動態連結函式庫
建立好自己的 DLL 動態連結函式庫之後,就可以在其他專案中使用這個 DLL 動態連結函式庫了,以下是詳細的操作步驟。
Step 1
新增一個「主控台應用程式」類型的專案(或是其他類型的專案亦可)。
Step 2
在「專案」選單中,點選專案的屬性。
Step 3
在「C/C++」的「一般」設定中,修改「其他 Include 目錄」設定,加入 MyDLL.h
標頭檔案所在的目錄。
Step 4
在「連結器」的「一般」設定中,修改「其他程式庫目錄」設定,加入 MyDLL.lib
程式庫檔案所在的目錄。
Step 5
在「連結器」的「輸入」設定中,修改「其他相依姓」設定,加入 MyDLL.lib
程式庫檔案。
Step 6
在「建置事件」的「建置後事件」設定中,將「命令列」內容設定為以下指令,讓每次專案建置之後,自動將 MyDLL.dll
檔案複製到專案建置的目錄,跟執行檔案放在一起:
xcopy /y /d "..\..\MyDLL\$(IntDir)MyDLL.dll" "$(OutDir)"
Step 7
編輯 C/C++ 程式碼,引入 MyDLL.h
之後即可使用其中的函數。
#include <iostream> #include "MyDLL.h" int main() { double d = dist(1.0, 2.0, 4.0, 6.0); std::cout << "d = " << d << std::endl; return 0; }
編輯好 C/C++ 程式碼之後,即可編譯並執行。
這是將 C/C++ 程式編譯之後,搭配 DLL 動態連結函式庫執行的結果。