我可以從C#代碼實例化和「處理」非託管C++類(比如使用DllImport等)嗎?C#中的非託管C++類
3
A
回答
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#中覆蓋的虛擬方法。
相關問題
- 1. 從C#調用非託管C++類DLL#
- 2. 動態鏈接託管的C++類庫中的非託管dll
- 3. 在C++中託管和非託管類型之間的轉換?
- 4. C++/CLI:非託管類的聲明和託管類
- 5. C中的C++非託管DLL#
- 6. 傳遞非託管的指針非託管對象在託管類C++/CLI
- 7. 非託管C++ .NET中
- 8. 託管C#中的自由非託管C代碼內存
- 9. c#中的管理非託管變量
- 10. Gdiplus在C++託管或非託管?
- 11. C++託管到非託管轉換
- 12. C++託管和非託管靜態庫
- 13. 在非託管C++ dll中使用託管c#dll
- 14. 你能從一個非託管C++類派生一個託管C++類嗎?
- 15. ERROR_MORE_DATA --- PVOID和C#---非託管類型
- 16. 從Visual C++ DLL導出非託管類?
- 17. 託管C++的std :: string在非託管C++
- 18. 在非託管C++代碼
- 19. 託管C++ ref類
- 20. 類未註冊....當試圖從非託管C++調用託管C#庫
- 21. 釋放C#中的非託管代碼
- 22. 銷燬C中的非託管對象#
- 23. 從非託管C++調用託管c#功能
- 24. 將二維數組從託管C++傳遞到非託管C++
- 25. 如何從託管C++ exe調用非託管C++ exe
- 26. 非託管C++ COM和託管C++ .NET4互操作
- 27. 接口託管C#out變量非託管,本機C++
- 28. 目標C屬性以非託管C++
- 29. 非託管char *數組託管System ::字符串託管C++
- 30. 託管C++中的非託管C++模板會拋出錯誤的圖像?