Debug版正常,Rlease版出错是为什么?该如何处理
Debug版正常,Rlease版出错是为什么?
我在Debug环境下完成程序后改成Rlease环境并进行编译.
可是Rlease版在运行时发生了异常,我点击 "调试 "按钮,在调试环境下弹出窗口说 "Unhandled exception in ***.exe (MFC42.DLL): 0xC0000005: Access Violation. "
但是Debug版在运行时就没这个问题.
这个错误是什么意思呢?怎样解决呢?
谢谢.
------解决方案--------------------
DEBUG下可以,RELEASE版本不行,这种情况很常见,原因也是非常多。由于DEBUG是调试版本,容错性比较强,一些非规范的用法也被认可,而Release版本要求很严格,同样的语句,有的是编译都无法通过,更危险的是编译也能通过,但运行根本就不行。
比如,自定义一个消息,在头文件中这样声明:LRESULT afx_msg OnMsg();时,DEBUG下能够正常编译运行,但Release下只能编译通过,运行就会错误。
因此,首先要能够做到规范的编码,然后多总结。具体你的代码为何不行,还要看你实际的代码了。
我在Debug环境下完成程序后改成Rlease环境并进行编译.
可是Rlease版在运行时发生了异常,我点击 "调试 "按钮,在调试环境下弹出窗口说 "Unhandled exception in ***.exe (MFC42.DLL): 0xC0000005: Access Violation. "
但是Debug版在运行时就没这个问题.
这个错误是什么意思呢?怎样解决呢?
谢谢.
------解决方案--------------------
DEBUG下可以,RELEASE版本不行,这种情况很常见,原因也是非常多。由于DEBUG是调试版本,容错性比较强,一些非规范的用法也被认可,而Release版本要求很严格,同样的语句,有的是编译都无法通过,更危险的是编译也能通过,但运行根本就不行。
比如,自定义一个消息,在头文件中这样声明:LRESULT afx_msg OnMsg();时,DEBUG下能够正常编译运行,但Release下只能编译通过,运行就会错误。
因此,首先要能够做到规范的编码,然后多总结。具体你的代码为何不行,还要看你实际的代码了。