这样的话…就只能从理论层面范范的说了。
首先,所谓release模式呢,即为发布版本。
脱离环境可以在操作系统独立运行,编译器生成release版本的时候会做一些优化和精简。
帧指针的省略就是其中的一种精简方式,
函数调用原理来说,函数调用过程中,会将函数信息存于栈中,函数信息通常包括参数,返回等。
如果出现函数实现和函数声明不匹配,程序必然down掉。(常见的run time error起因)
debug模式下,栈的访问是靠寄存器EBP保存的地址来访问的,这样的访问通常比较安全。
而release模式下,优化会省略掉EBP栈基址指针,通过一个全局指针来访问栈,就有可能出现程序release版本down掉的结果。
LZ的汇编码已经反应出两种编译版本,函数指针取址的区别了,所以我觉着这种可能大一些。
具体解决办法,我用的不是私人的电脑没有vc环境,建议多上网搜搜,应该是改release模式里边的一些参数
好久不用 已然记不清楚了 呵呵。。