我有以下c ++代码。
om_out
并遵循C#P /调用层代码
exten "C" int * read_array_adapter() {
int * retval = read_array().data();
return retval;
}
绑定得很好。现在在运行时,我有以下代码调用该方法:
[DllImport(@"/sharedlibrary.so",CallingConvention = CallingConvention.Cdecl)]
public extern static IntPtr read_array_adapter();
它失败并出现以下错误:
var ptr = read_array_adapter();
var arrayLength = Marshal.ReadInt32(ptr);
我四处搜寻以查找可能的原因,但没有找到任何泄漏信息。
一些想法:
如果不是这样,可能是什么导致我的代码失败?我想念什么吗?