我在win32 dll中有一个函数,签名为:
void func1(int a, char*** outData)
int a - >输入参数
char *** outData - >输出参数 - 指向char字符串数组的指针
任何想法如何使用dll import& C在C#中访问它什么应该是签名。
答案 0 :(得分:2)
对于像三指针这样的复杂类型,我发现最好的方法是简单地将其编组为IntPtr
[DllImport("Some.dll")]
private static extern void func1(int a, out IntPtr ptr)
此函数返回后,IntPtr
值基本上代表char**
。
使用该值几乎是不可能的,因为我们不知道长度。您需要更改函数签名,以便在可以在托管代码中使用之前传回数组的长度。