從C# DLL 導出函數
與VS C/C 不同,其中extern "C" __declspec(dllexport) 可用於導出函數, C# 需要不同的方法。
非託管匯出
一個解決方案是使用 UnmanagedExports NuGet 套件。此套件允許您使用 [DllExport] 屬性修飾靜態方法,從而使它們能夠匯出以在本機程式碼中使用。
[DllExport] static int AddNumbers(int a, int b) { return a + b; }
DLLExport
另一個選項是使用 GitHub 上的 DLLExport 函式庫。它提供與 UnmanagedExports 類似的功能。
[DllExport] public static int AddNumbers(int a, int b) { return a + b; }
限制
需要注意的是,從 C# DLL 匯出函數有一些限制。具體來說,以這種方式導出的函數只能由非託管程式碼調用,例如 C 。如果您需要 C# 和其他託管程式碼之間的通信,您可能需要使用其他機制,例如互通性程式庫。
以上是如何匯出C#函數以供非託管程式碼呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!