C++ c++/clr StructureToPtr退出应用程序,无任何异常或错误
我有一段代码将托管对象转换为非托管对象,如下所示C++ c++/clr StructureToPtr退出应用程序,无任何异常或错误,c++,clr,C++,Clr,我有一段代码将托管对象转换为非托管对象,如下所示 static void M2N(M managed, N* pNative){ Marshal::StructureToPtr(managed, IntPtr(pNative), true); }; 我的问题是,在对某个结构调用上述代码后,代码毫无例外地神秘退出,转换显然不成功(我已经尝试了其他结构,它可以工作) 我的问题是,如何至少生成一些异常,以便知道哪里出错了?您是否尝试了Try-Catch关键字?破坏堆栈帧将是
static void M2N(M managed, N* pNative){
Marshal::StructureToPtr(managed, IntPtr(pNative), true);
};
我的问题是,在对某个结构调用上述代码后,代码毫无例外地神秘退出,转换显然不成功(我已经尝试了其他结构,它可以工作)
我的问题是,如何至少生成一些异常,以便知道哪里出错了?您是否尝试了Try-Catch关键字?破坏堆栈帧将是触发此failfast退出的一个好方法。在“输出”窗口中查找进程退出代码。@HansPassant我在这里写了一个新问题,希望您能像我猜的那样查看一下堆栈缓冲区溢出。在本机代码中的sizeof(N)等于托管代码中的Marshal.sizeof(M)之前不要停止。分而治之,从一半已注释的字段开始,上上下下找到作恶者。嗨,谢谢。但是,本机代码中的sizeof(N)等于托管代码中的Marshal.sizeof(M)是什么意思,请您详细说明一下好吗?