2011-06-12 30 views

回答

2

使用C++/CLI,在.NET平臺上託管代碼中使用的C++方言。該語言主要用於諸如您的應用程序中。

看到這個article(標題有點誇張,但內容不錯)。其他搜索C++代碼的包裝應該會給你更多的例子。

正如Barry指出的那樣,使用平臺調用(P/Invoke)調用可讓您從DLL調用本機代碼。

2

如果您想手動打包庫,那麼使用C++/CLI來創建API或P/Invoke的託管包裝以直接從C#調用本機代碼是非常簡單的。

如果你想自動創建一個包裝,我相信SWIG項目已經作爲C/C++ => C#module。 SWIG模塊在引擎蓋下使用了P/Invoke(作者聲稱,它也適用於Mono)。它似乎爲您處理P/Invoke包裝的許多細節(.NetMono)。我沒有使用它,但它似乎是你在找什麼。

+0

+1 SWiG是「打包」現有類以供其他語言使用的方式。 – 2011-06-13 00:56:09

1

你可以做的一件事是圍繞你的C++類庫構建一個COM包裝器。一旦C++類被打包爲COM對象,您就可以從C#代碼中使用它們。

看到http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx(「COM互操作第1部分:C#客戶端教程」)

如果您需要關於如何包裝C++庫到COM信息,我可以建議閱讀微軟出版社的優秀圖書「內部COM」 。

相關問題