VS2008 一个诡异的问题(求助)
在VS2008 DEBUG模式开发过程中,生成的了很多DLL和一个.exe文件,我直接执行.exe文件,进程正常启动,没有问题。但是使用F5进入调试模式时,就会报错(具体错误是函数中的一个条件为true,然后抛出一个异常,该异常未被catch,所以程序异常终止),最诡异的是直接使用Ctrl+F5启动进程没什么反应。
我纳闷的是;为什么直接运行正常,F5和Ctrl+F5就不行?是我的工程设置问题还是其他问题?
[解决办法]
因为调试的时候存在额外的变量,程序对于内存的使用和正常运行时不一样。
这一点本来没什么问题,但是如果你的程序存在数组访问越界这类内存 bug,就会受到影响,体现不一样的行为,比如总是莫名奇妙的死在某个变量上,因为该变量的内存被动了而已,正常运行的时候,可能是其它的内存发生了 buggy 的变化,只不过它们不是关键的,没有引起程序崩溃而已,然后看起来好像就是 f5 会死,非 f5 没事儿,其实都是假象,所以给你了那个建议。
[解决办法]
动态加载dll还是静态加载,动态加载的话,恐怕是vs设置你程序的目录问题,vs调试的时候好像不是exe所在目录,而是工程所在目录