大家好,來到快要沒稿的第 19 天 (!?),介紹 dllimport
屬性。
這個屬性是搭配外部 DLL 使用的。當今天拿到合作客戶或廠商的 DLL,而且 DLL 是以 C++ 撰寫時,沒有辦法像一般的 C# 程式一樣,加入專案參考後就能使用內建的方法。此時就要用 dllimport
來呼叫。
Note: 這篇為簡單的範例,實務上通常要仰賴廠商提供的使用手冊,才能知道如何呼叫 DLL 內的函式。
以下用 Visual Studio 2022 做示範。
extern "C" {
__declspec(dllexport) int __cdecl Add(int a, int b);
}
extern int __cdecl Add(int num1, int num2) {
return num1 + num2;
}
static class AddSharp
{
internal static class UnsafeNativeMethods
{
const string _dllLocation = "DllExample.dll";
[DllImport(_dllLocation)]
public static extern int Add(int a, int b); // 宣告 C++ 內的方法
}
public static void Execute(){
Console.WriteLine(UnsafeNativeMethods.Add(5, 10));
}
}
public void Run(){
AddSharp.Execute();
}
若有正確執行的話,應該可以看到命令列顯示計算結果 (15)。