【发布时间】:2016-08-24 18:43:13
【问题描述】:
最近我将我的应用程序从 Visual Studio 2013 迁移到 Visual Studio 2015。在 DEBUG 模式下一切正常,但如果我切换到 RELEASE 模式,则会弹出此错误:“MyApp 中 0x773F7FB2 (ucrtbase.dll) 处的未处理异常。 exe:一个无效的参数被传递给一个认为无效参数致命的函数”(在我的应用程序中,我传递了一个指向列表的指针)。此错误的原因可能是什么? 编辑: 当我使用 VS 2013 时,一切正常。这不是VS 2015的问题吗?
【问题讨论】:
-
显示您的代码。你可能很幸运它在调试模式之前/在调试模式下工作。
-
可能是未定义的行为,调试程序的发布版本。
-
通常这意味着你在某个地方使用了一个未初始化的变量,但它几乎可以是任何东西。调试版本将未初始化的变量设置为已知值,但发布版本将其随机化。
-
指针在释放模式下可能指向随机内存,不像在调试模式下,就像@MarkRansom 建议的那样。
-
编辑:当我使用 VS 2013 时,一切正常。 - 看起来 VS 2015 在您的应用程序的 VS 2013 版本中暴露了一个隐藏的错误。心存感激。
标签: c++ visual-studio-2013 visual-studio-2015 release-mode