想知道是否有人会如此友好地指出我如何在C#中调用第三方的C ++ DLL。 API是封闭源,但头文件可用。 我已经阅读了使用P / Invoke但是在进一步跳水之后,它导致编组非常复杂的数据结构,并且如果我可以为第三方类/函数做声明。
如果有任何阅读材料/教程,你可以推荐或只是指出我正确的方向,我将不胜感激。
非常感谢
答案 0 :(得分:1)
我发现http://www.pinvoke.net/非常有帮助。
http://clrinterop.codeplex.com/releases/view/14120
另外,我发现的有用的是做一个测试解决方案。首先制作一个最初什么都不做的C#控制台应用程序,然后创建另一个项目(文件,新建,项目,Visual C ++,Win32控制台应用程序) 出现向导时,选择DLL,导出符号,(如果需要,可选择ATL和/或MFC) 当项目出现时,按原样编译并将DLL复制到C#Project的输出文件夹 使用P / Invoke Interop助手根据标题生成C#方法(我从没有参数的函数开始并返回一个int。) 然后从你的C#控制台应用程序调用它 一旦我确定了如何使用非常简单的东西,一次扩展就容易得多 尝试自己编写C#调用,然后使用P / Invoke Interop Assistant进行双重检查。最好的祝愿。