簡體   English   中英

從C#類庫導出函數

[英]Exporting functions from a C# class library

如何導出在C#類庫中定義的函數,同時允許它們導入到非托管C ++應用程序/ DLL並從中調用?

嚴格來說,你不能像在經典的.dll中那樣導出函數,因為.NET .dll根本就不是.dll。 您唯一的三個選擇是:

  1. 使用托管C ++
  2. 將C#類公開為COM對象,並從C ++代碼中使用它們
  3. 在C ++項目中托管.NET運行時,並通過它與您的C#類進行交互。

您的C ++應用程序必須從托管CLR開始。 .NET DLL沒有任何特殊要求。

你不會。 不支持。 您幾乎只能從庫C#類中導出COM對象。

您還可以為C#庫創建一個C ++包裝器 - 一個簡單的Managed C ++ DLL,它可以導入.NET方法並以原生方式導出它們。 這會添加一個額外的圖層,但如果必須具有C#庫,則可能會有用。

另一種選擇是調整已編譯的程序集以導出函數。 AC#編譯器不能這樣做,但需要稍微更改MSIL代碼才能完成任務。 看看這篇文章 - 有關於這些東西是如何工作的一些鏈接,以及一個自動化它的工具(雖然我自己沒有嘗試過)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM