2009-02-18 95 views
3

我創建了一個C++ dll(讓我說,MyC++ Dll.dll),並且我有一個頭文件(MyC++ Dll.h)。 MyC++ Dll.h包含類型定義。在C中導入C++ dll#

我想在我創建的C#應用​​程序中導入此dll。

我能夠導入使用

[的DllImport( 「MYC的++ Dll.dll」)] 靜態外部FUNC()的dll;

但是我不能在包含類型定義的C#應用​​程序中導入/包含頭文件(MyC++ Dll.h)。

請建議一種方法來成功構建這個C#應用程序。

+0

您必須使用DllImport來爲您需要從DLL中使用的每個函數。如果您從頭文件中發佈這些C++定義,我們可能會幫助您使用DllImport語句 – 2009-02-18 12:43:31

回答

0

我知道這樣做的唯一方法是手動在C#中創建所有類型定義,確保它們與您的dll兼容。

5

您必須手動將任何非標準參數類型(即自定義結構等)轉換爲C#。有關如何在Win32結構中執行此操作的示例,請參閱http://pinvoke.net。你應該能夠弄清楚如何爲你自己的結構做到這一點。

0

而且你還需要學習如何將從C++到C#的類型編組。