2011-05-18 74 views

回答

2

我會建議使用C++/CLI,因爲您可以在兩個世界中使用相同的頭文件/定義文件。開發C++ CLI的主要目標之一是填補管理和未管理的世界之間的差距。 This文章給你更多的優勢。

在MSDN中有a nice description C++ cli如何工作以及如何使用它。

也看到here

1

如果它是一個選項,你可能要考慮使用COM。定義COM類可見並具有InterfaceType ComInterfaceType.InterfaceIsDual的.NET類,並使用MarshalAs(UnmanagedType)屬性裝飾每個參數,然後C++應用程序可以封送可在託管和非託管代碼之間傳遞的對象。

「對稱定義」的處理是因爲接口是在COM中定義的,再加上COM,您可以更直觀地瞭解錯誤處理和直觀P/Invoke。