还报了“其原因可能是堆被损坏,这说明 foamtogo.exe 中或它所加载的任何 DLL 中有 Bug。 原因也可能是用户在 foamtogo.exe 具有焦点时按下了 F12。” |
我也碰到这奇怪的东西了,输出都是没问题。。编译也没报错 |
这极可能是堆栈失衡了。 检查一下对程序的调用,特别是第三方函数库或混编的函数调用。 还有可能是主程序里有个数据结构(数组或结构体),传递给子程序的时候,子程序误以为大小比真实的大,所以操作(修改)了超过范围的该数据结构内容。 你说的“秋后算账”,这事还真的是有的。函数返回(包括主程序返回)的时候,会进行堆栈还原等操作。如果此时堆栈失衡,就会出问题。 比如程序准备返回主程序之外(运行时库)的返回点,但是这个返回点原来是存储在堆栈里的,失衡以后被破坏,导致返回失败。(比如要返回 0x00000000就会失败) |
necrohan 发表于 2020-2-28 16:37 对,结果也跟预期一样,用的VS+IVF,能打开的检查项也都打开了 一直到end program的位置停下来出错了 |
一步步跟进去也没啥问题?那怎么出的错误 |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2025-4-6 20:07