在Visual Studio中禁用了“在断言中忽略”对话框 我用Visual Studio 2015专业(更新3)在C++中编码。

在Visual Studio中禁用了“在断言中忽略”对话框 我用Visual Studio 2015专业(更新3)在C++中编码。,c++,exception,visual-studio-2015,assert,C++,Exception,Visual Studio 2015,Assert,我的问题是:当触发assert()时,断言对话框不再弹出!相反,将打开异常对话框 看起来所有断言都将作为异常处理 我重新安装了整个VisualStudio2015 IDE,禁用了所有扩展,重置了我的设置,等等。但似乎注册表中存储的一个设置改变了断言行为 如何恢复断言对话框?将以下UCRTBASE.dll替换为版本10.0.10240 C:\Windows\SysWOW64\ucrtbased.dll //32bit 10.0.14393 (not ok) C:\Windows\System3

我的问题是:当触发assert()时,断言对话框不再弹出!相反,将打开异常对话框

看起来所有断言都将作为异常处理

我重新安装了整个VisualStudio2015 IDE,禁用了所有扩展,重置了我的设置,等等。但似乎注册表中存储的一个设置改变了断言行为


如何恢复断言对话框?

将以下UCRTBASE.dll替换为版本10.0.10240

C:\Windows\SysWOW64\ucrtbased.dll  //32bit 10.0.14393 (not ok)

C:\Windows\System32\ucrtbased.dll  //64bit 10.0.14393 (not ok)

假设这是真的,下面的
assert
宏告诉我可能会让您找到罪魁祸首。出于好奇,您描述的行为在中没有提及。抛出的异常实际上等同于什么?您是如何得出
assert
导致异常的结论的?您是否刚刚用
assert(0)制作了一个简单的单行程序
,编译时未定义NDEBUG,并捕获到异常?此问题仅发生在我公司的pc上。我不确定它是何时引入的,可能是几周前,当我按照IDE的建议升级Azure时。我同事的电脑上没有出现这种情况。如果在调试中触发了assert(false),系统上将弹出异常对话框,而不是可以忽略assert的断言对话框。在这个异常对话框中,忽略按钮被禁用,这是我目前的主要问题。也许C++运行时包是错误的,我不知道。这就是我重新安装整个IDE的原因,首先卸载all First非常感谢!现在,我恢复了断言对话框:)虽然这些DLL的版本在我的系统上是10.0.10240(至少属性这么说),但我从另一个系统中替换了它们,一切都很好。谢谢,它也对我有用。我的问题始于安装visual studio 2017后,安装程序在应用Win10SDK_10.0.14393.795时遇到了问题。