Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ visual studio 2008解决方案发布版本运行时致命错误_C++_Debugging_Visual Studio 2008_Release_Runtime Error - Fatal编程技术网

C++ visual studio 2008解决方案发布版本运行时致命错误

C++ visual studio 2008解决方案发布版本运行时致命错误,c++,debugging,visual-studio-2008,release,runtime-error,C++,Debugging,Visual Studio 2008,Release,Runtime Error,我有一个VisualStudio2008解决方案,它由一些项目组成,并使用dll和它们的标题。在调试版本中,它(解决方案)工作得非常好。在发布版本中,它成功编译,但在执行dll文件中定义的某些函数时失败 正如我所说,该解决方案在调试模式下运行良好,选项设置正确。已尝试关闭 优化,打开调试信息,没有帮助。问题的原因是什么?我以前见过很多次这种情况。在几乎每一种情况下,当写入数组或其他数据结构时,问题都被发现是一个越界错误。在其他情况下,使用了未初始化的变量 您的代码中有一个bug。这是肯定的。当您

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

正如我所说,该解决方案在调试模式下运行良好,选项设置正确。已尝试关闭

优化,打开调试信息,没有帮助。问题的原因是什么?

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

您的代码中有一个bug。这是肯定的。当您在调试设置下构建时,编译器会为您做大量的工作来掩盖某些类型的问题。编译器将编写zero初始化某些内容的代码,从而掩盖未初始化的变量问题


我要做的第一件事就是将警告级别调到最高设置。无论如何,你应该一直这样做。这往往会暴露问题。只需确保修复编译器告诉您的问题。不要用
#pragma
s或印花布来遮掩它们。下一步通过代码隔离问题。这可能既困难又耗时,但也有一线希望。无论问题是什么,重复错误的可能性与识别和修复错误的时间和难度成反比。:)

错误是什么?试着把uu declspec(dllexport)void fn(..)放在一个未初始化的变量上,最有可能导致调试和发布之间行为不同的bug是一个未初始化的变量。是的,我现在意识到我有一个名为deviceList的变量,类型为vector,其中“device”是一个结构。它似乎是造成大多数问题的原因。我在一个类中声明了它,但正如我所知,STL类“vector”调用其构造函数来初始化deviceList。在这里看不到任何错误。或者编译器会因为优化而忽略声明吗?@Nabijon:极不可能。只要把编译器在这里出错的想法放在脑后就行了。