我有一个C语言编写的传统DLL,我想从C#.NET应用程序调用。问题是C DLL的DLL接口相当复杂。这件事情是这样的:从C DLL到.NET的接口
__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中?
感谢, -Greg
避免COM为什么?互操作性非常好,几乎没有需要做的事情,但导入接口。 – arul 2009-01-30 04:28:56