我正在尝试编写一个允许使用旧版C ++ DLL中包含的函数的C#类(2010)。函数使用__stdcall导出,并具有不同的参数集。我没有处理字符串和其他灵长类动物的问题,并且能够毫无问题地调用这些函数。
问题是一些功能包含CArray&引用作为参数。我无法弄清楚如何编组这种数据类型,或者它是否可能。
遗憾的是,我无法更改旧版DLL代码。
答案 0 :(得分:0)
为了正确处理这个问题,您可以创建一个包装器DLL(使用与您想要调用的相同的MFC / C ++运行时版本,并确保以传统指针的形式接受相同的数组。本机C ++数组。
可以从C#调用此包装DLL。
您可以尝试使用更新的MFC版本(并使用C ++ / CLI进行编组),但新的CArray
可能与旧版库所期望的内容不兼容。