visual studio 2008 解决方案发布版运行时致命错误
Posted
技术标签:
【中文标题】visual studio 2008 解决方案发布版运行时致命错误【英文标题】:visual studio 2008 solution release version runtime fatal error 【发布时间】:2012-10-09 13:08:25 【问题描述】:我有一个 Visual Studio 2008 解决方案,它由一些项目组成,并将 dll 与他们的标题一起使用。在调试版本中,它(解决方案)工作得非常好。在发布版本中它编译成功,但是在执行一些在 dll 文件中定义的函数时它会失败。
正如我所说,该解决方案在调试模式下运行良好,并且选项设置正确。试过关掉 优化,打开调试信息,没用。问题的原因可能是什么?
【问题讨论】:
错误是什么?尝试把 __declspec(dllexport) void fn(..) 最有可能导致调试和发布行为不同的错误是未初始化的变量。 flounder.com/debug_release.htm 【参考方案1】:我以前见过这种情况很多次。在几乎每一种情况中,发现问题是写入数组或其他数据结构时出现越界错误。在其他情况下,使用了未初始化的变量。
您的代码中有错误。这是肯定的。当您在调试设置下构建时,编译器会为您做很多事情来掩盖某些类型的问题。编译器将编写代码对一些东西进行零初始化,从而掩盖未初始化的变量问题。
我会尝试的第一件事是将警告级别提高到最高设置。无论如何,你应该一直这样做。这通常会揭示问题。请务必修复编译器告诉您的问题。不要用 #pragma
s 或 chintzy casts 来掩盖它们。下一步通过您的代码来隔离问题。这可能既困难又耗时,但有一线希望。无论问题是什么,您重复该错误的可能性与识别和修复错误的时间和难度成反比。 :)
【讨论】:
是的,我现在意识到我有一个类型为 vector以上是关于visual studio 2008 解决方案发布版运行时致命错误的主要内容,如果未能解决你的问题,请参考以下文章
从 Visual Studio 2008 解决方案创建 Unix makefile
CMake 为 Win32 和 x64 生成 Visual Studio 2008 解决方案