我有一个用 C 编写的 DLL 文件。我尝试在我的 c# 代码中使用 C DLL。C 程序方法返回 int** 。c 中的 int** 和 c# 中的 int[][] 是一样的吗?
从 c 程序返回值时出现错误。
方法
__declspec(dllexport) int someMethod
(
size_t *foo,
int **bar
)
{
*foo = 10;
**bar = 10;
}
我的 C# 代码
[DllImport(@"my.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = true, BestFitMapping = true, EntryPoint = "someMethod")]
public unsafe static extern int someMethod
(
out Int16 foo,
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(JaggedArrayMarshaler))]
out int[][] bar
);