我有一个用 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 中?
谢谢,-格雷格