我有一个用 C 编写的遗留 DLL,我想从 C# .NET 应用程序调用它。问题是 C DLL 的 DLL 接口(interface)相当复杂。它是这样的:
__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 中?
谢谢, -格雷格
最佳答案
关于c# - 从 C DLL 到 .NET 的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/494376/