我有一个用 C 编写的遗留 DLL,我想从 C# .NET 应用程序调用它。问题是 C DLL 的 DLL 接口相当复杂。是这样的:
__declspec(dllexport) void __stdcall ProcessChunk(
void *p_prochdl,
const BIG_INPUT_STRC *p_inparams,
BIG_OUTPUT_STRC *p_outparams
);
BIG_INPUT_STRC/BIG_OUTPUT_STRC 包含各种各样的东西...指向缓冲区数组的指针、枚举参数、整数参数等。总之,它们很复杂。
第一个问题:是否有一种简单的方法可以将 DLL 头文件中包含的所有结构信息获取到 C# 类中,或者您是否需要将所有内容复制并粘贴到 C# 中并重新定义它?这似乎是多余的。
与此相关,从 C# 将结构传递到非托管 DLL 的正确方法是什么?
最后,是否有一个示例说明如何正确地将缓冲区数组从 C# 传递到非托管 DLL 中?或者,如何将二维数组传递到 DLL 中?
谢谢,
-格雷格
使用 P/Invoke 在 C# 中执行此操作非常简单。
我相信您将必须手动定义 C# 中的数据结构。
我建议你看看这个MSDN 文章 http://msdn.microsoft.com/en-us/library/aa288468.aspx就此主题而言
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)