2010-12-06 70 views

回答

6

在Windows上,您可以使用COM interop來使用C++。但是,這在Linux/Mac OS X上不起作用。

另一種選擇是公開C++類的C封裝(C++中的extern「C」)。這是必要的,因爲DllImport需要一個C ABI。

編輯:第三種替代方法是C++/CLI,即編譯.NET的C++代碼。這也是一個僅限Windows的解決方案。

0

您也可以使用SWIG。它適用於Linux和Mac上的Mono。

它生成一組暴露C++類的C函數,並生成一個C#類,並用DllImport調用它們。

它允許在C#中繼承C++類,並且使用Directors特性,C++代碼可以回調C#中覆蓋的虛擬方法。