我创建了一个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#应用程序的方法。
答案 0 :(得分:5)
您必须手动将任何非标准参数类型(即自定义结构等)转换为C#。有关如何使用Win32结构执行此操作的示例,请查看http://pinvoke.net。您应该能够弄清楚如何为自己的结构做到这一点。
答案 1 :(得分:0)
我知道这样做的唯一方法是手动创建C#中的所有类型定义,确保它们与您的dll兼容。
答案 2 :(得分:0)
你还需要学习如何编组从C ++到C#的类型。