0

我有一个 Visual Studio 2008 解决方案,它由一些项目组成,并将 dll 与他们的标题一起使用。在调试版本中,它(解决方案)工作得非常好。在发布版本中它编译成功,但是在执行一些在 dll 文件中定义的函数时它失败了。

正如我所说,该解决方案在调试模式下运行良好,并且选项设置正确。试过关掉
优化,打开调试信息,也没有用。问题的原因可能是什么?

4

1 回答 1

0

我以前见过这种情况发生很多次。几乎在每一种情况下,问题都是在写入数组或其他数据结构时出现越界错误。在其他情况下,使用了未初始化的变量。

您的代码中有错误。这是肯定的。当您在调试设置下构建时,编译器会为您做很多事情来掩盖某些类型的问题。编译器将编写代码对一些东西进行零初始化,从而掩盖未初始化的变量问题。

我会尝试的第一件事是将警告级别提高到最高设置。无论如何,你应该一直这样做。这通常会揭示问题。只要确保修复编译器告诉你的问题。不要用#pragmas 或 chintzy 演员来掩盖他们。下一步通过您的代码来隔离问题。这可能既困难又耗时,但有一线希望。无论问题是什么,您重复该错误的可能性与识别和修复错误的时间和难度成反比。:)

于 2012-10-09T13:56:42.337 回答