如何从C#中的dll导入访问char ***

我在win32 dll中有一个函数,签名为:

void func1(int a, char*** outData)

int a – >输入参数
char *** outData – >输出参数 – 指向char字符串数组的指针

知道如何在C#中使用dll import& amp;签名应该是什么.

最佳答案 对于像三指针这样复杂的类型,我发现最好的方法就是简单地将其编组为IntPtr

[DllImport("Some.dll")]
private static extern void func1(int a, out IntPtr ptr)

一旦这个函数返回,IntPtr值将基本上代表一个char **.

使用该值几乎是不可能的,因为我们不知道长度.在将其用于托管代码之前,您需要更改函数签名以传回数组的长度.

点赞