有一个c++ 的dll c++的头文件声明及成功调用代码:
extern "C" _declspec(dllexport) FPMUIGroupOption * __stdcall createGroupOption(FPMUIGroupOption **option);
FPMUIGroupOption *groupOption = createGroupOption(&groupOption);我的c#函数声明:
public static extern IntPtr CreateGroupOption(out IntPtr groupOption);
IntPtr ipZ = FunctionManager.dll_func.DllFunction.CreateGroupOption(out ipZ);结构抛出了 访问受保护的内存......各位看下,我这样不对么,我怎么想怎么对呀;
我之前有用另种声明调用方式也不行:
public static extern IntPtr CreateGroupOption(ref IntPtr groupOption);int size = System.Runtime.InteropServices.Marshal.SizeOf(typeof(GroupOption));
IntPtr ipZ= System.Runtime.InteropServices.Marshal.AllocHGlobal(size);
IntPtr ipY = FunctionManager.dll_func.DllFunction.CreateGroupOption(ref ipZ);