无法编组'参数#':嵌套数组没有编组支持。 C#

时间:2016-07-04 12:44:53

标签: c# c++ arrays 2d marshalling

我正在尝试调用本机dll。
dll函数的签名看起来像这样

extern "C" BOOL FunctionName(TCHAR param1[][MAX_PATH],LPTSTR param2, int nCount);


现在我想从c#代码调用这个函数,我试着跟着

[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        public delegate bool FunctionName(MarshalAs(UnmanagedType.LPArray)]char[][] param1,
                                                    [MarshalAs(UnmanagedType.LPTStr)]string param2,
                                                    [MarshalAs(UnmanagedType.SysInt)]int nCount);

当我尝试使用以下代码创建函数指针的委托时,

FunctionName PFunctionName = (FunctionName)Marshal.GetDelegateForFunctionPointer(ptrToFn, typeof(FunctionName));

我遇到运行时错误"无法编组'参数#1':嵌套数组没有编组支持。" ..如何解决这个问题?

0 个答案:

没有答案