DLL檔案 的隨手筆記 1 - DLL 1 官方文章的試作

這份文章主要是收集一些常用的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

 

 

 

連結器部分其實主要為:
 

C++ Fundamentals | Packt

 

 

 

 

 

 

 

建置後事件自動將 MyDLL 檔案複製到專案建置的目錄

「建置事件」→「建置後事件」設定中,將「命令列」內容設定為以下指令,

xcopy /y /d "..\..\MyDLL\$(IntDir)MyDLL.dll" "$(OutDir)"

 

以上就設置完成

 

第三步

在程式碼 include 近來測試

 

 

 

 

 

 

 

 

測試結果: 

 

 

 

 

 

 

 

 

麻~ 就是 網站上範例的簡化版

不過這是基礎 即使我用了4年,後面換成寫 C#也會忘了怎麼使用

 

謝謝