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

时间:2010-03-27 13:43:01

标签: c# dll dllimport

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

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

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

任何想法如何使用dll import& C在C#中访问它什么应该是签名。

1 个答案:

答案 0 :(得分:2)

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

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

此函数返回后,IntPtr值基本上代表char**

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