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

标签 c# dll dllimport

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

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

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


知道如何使用 dll 导入在 C# 中访问它以及签名应该是什么。

最佳答案

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

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

一旦此函数返回 IntPtr 值将实质上代表一个 char**

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

关于c# - 如何从 C# 中的 dll 导入访问 char***,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2529471/

相关文章:

c# - 以编程方式使用 LowProfileImageLoader

c# - 如何将自定义控件 DLL 导入到新项目中?

windows - WAMP 在安装时显示缺少 MSVCP140.dll

c# - 从 C# 调用包含指针的 Delphi DLL 结构不起作用

c# - 如何将指针从 C# 传递到非托管 DLL?

c++ - 无法在 Delphi : The procedure entry point could not be located 中使用 DLL(用 C++ 编写)

c# - AWS Cognito - 用户池 xxxx 不存在

c# - 如何在 .NET 中将 C# 对象转换为 JSON 字符串?

windows - 从 sictus prolog pl 文件窗口创建一个独立的 exe 文件

c++ - 无法接收/捕获 Windows 消息