我可以從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(非託管)映射到C#(託管)
- 3. 動態鏈接託管的C++類庫中的非託管dll
- 4. 在C++中託管和非託管類型之間的轉換?
- 5. C++/CLI:非託管類的聲明和託管類
- 6. C中的C++非託管DLL#
- 7. 傳遞非託管的指針非託管對象在託管類C++/CLI
- 8. 非託管C++ .NET中
- 9. 託管C#中的自由非託管C代碼內存
- 10. 如何捕捉託管C++中的非託管C++異常
- 11. c#中的管理非託管變量
- 12. C++託管和非託管靜態庫
- 13. 混合託管/非託管C++?
- 14. 託管和非託管C++和Boost
- 15. Gdiplus在C++託管或非託管?
- 16. C++託管到非託管轉換
- 17. 在非託管C++ dll中使用託管c#dll
- 18. 你能從一個非託管C++類派生一個託管C++類嗎?
- 19. 揭露非託管量靜態的std :: string在託管C++類
- 20. ERROR_MORE_DATA --- PVOID和C#---非託管類型
- 21. 從Visual C++ DLL導出非託管類?
- 22. 託管C++的std :: string在非託管C++
- 23. 類託管C++從C#
- 24. 調試MMC(非託管C++)?
- 25. 持續與非託管C++
- 26. 在非託管C++代碼
- 27. 託管類型C++
- 28. 託管C++ ref類
- 29. 非託管C++ COM和託管C++ .NET4互操作
- 30. 從非託管C++調用託管c#功能