我正在尝试调用本机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':嵌套数组没有编组支持。" ..如何解决这个问题?