這份文章主要是收集一些常用的DLL單純心得分享~ (不過忙起來時,隨時都可能斷坑)
簡單說明一下 DLL類似一種程式庫,最大的方便就是更新時只要換檔案上的DLL就可以進行更新
所以建議在使用Function時可以使用DLL的技巧來使用
由於在一些數學擬合上我習慣使用C++處理,而介面跟一些IO處理會使用C#所以,
這次的文章最終目標是C++與C#的DLL結合使用。
首先請先參考文件: https://officeguide.cc/visual-studio-2019-create-dll-files-tutorial-examples/
如同文件上所寫
第一部分: 建立DLL檔案
建立一個 DLL專案
新增一個 .h 的檔案
新增一個 .h 的檔案 (名字為 MyDLL.h)
在 MyDLL.h 上建立一個 Function ( 範例為 Add )
#pragma once
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
// 加法運算
MYDLL_API double Add( double x1, double y1);
新增一個 .cpp 的檔案 (名字為 MyDLL.cpp)
在 MyDLL.cpp 上實作 Function ( 範例為 Add )
#include "pch.h"
#include <cmath>
#include "MyDLL.h"
// 加法運算
double Add(double x1, double y1)
{
return x1 + y1;
}
建立 DLL檔案
這樣就建立完 DLL了
第二部分: 使用DLL檔案,主要說明如何讓程式讀取到DLL的Function
第一步在方案上再次建立一個 C++專案
設定一個C++的專案
在新增的專案上選取屬性
基本上要改兩個地方
在組態屬性選「C/C++」→「一般」→「其他 Include 目錄」加入 標頭檔案 的目錄。
這個是一般的路徑,建議使用巨集的方式
使用巨集的方式
「連結器」→「一般」→「其他程式庫目錄」 加入 標頭檔案 的目錄。
「連結器」→「輸入」→「其他相依姓」加入 MyDLL
連結器部分其實主要為:
建置後事件自動將 MyDLL 檔案複製到專案建置的目錄
「建置事件」→「建置後事件」設定中,將「命令列」內容設定為以下指令,
xcopy /y /d "..\..\MyDLL\$(IntDir)MyDLL.dll" "$(OutDir)"
以上就設置完成
第三步
在程式碼 include 近來測試
測試結果:
麻~ 就是 網站上範例的簡化版
不過這是基礎 即使我用了4年,後面換成寫 C#也會忘了怎麼使用
謝謝