在C#中导入C ++ DLL

时间:2009-02-18 11:25:41

标签: c#

我创建了一个C ++ DLL(比方说,MyC ++ Dll.dll),我有一个头文件(MyC ++ Dll.h)。 MyC ++ Dll.h包含类型定义。

我想在我正在创建的C#应用​​程序中导入这个dll。

我可以使用

导入dll

[的DllImport( “MYC的++ Dll.dll”)]     static extern func();

但是我无法在包含类型定义的C#应用​​程序中导入/包含头文件(MyC ++ Dll.h)。

请建议一种成功构建此C#应用程序的方法。

3 个答案:

答案 0 :(得分:5)

您必须手动将任何非标准参数类型(即自定义结构等)转换为C#。有关如何使用Win32结构执行此操作的示例,请查看http://pinvoke.net。您应该能够弄清楚如何为自己的结构做到这一点。

答案 1 :(得分:0)

我知道这样做的唯一方法是手动创建C#中的所有类型定义,确保它们与您的dll兼容。

答案 2 :(得分:0)

你还需要学习如何编组从C ++到C#的类型。