【问题标题】:Unhandled exception in CoreMessaging.dll during program shutdown程序关闭期间 CoreMessaging.dll 中未处理的异常
【发布时间】:2017-12-20 16:07:17
【问题描述】:

我有一个简单的程序,它只显示一个窗口,等待按键,然后退出。在关闭期间,应用程序崩溃,并抱怨 CoreMessaging.dll。以下是有问题的示例代码:

sf::RenderWindow window;

void waitForKeyPress() {
  Event event;
  bool done = false;
  while (!done) {
    while (window.pollEvent(event)) {
      if (event.type == Event::KeyPressed) {
        done = true;
      }
    }
  }
}

int main() {
  // If I don't create the window, there's no crash.
  window.create(VideoMode::getDesktopMode(), "test", Style::Default); 
  waitForKeyPress();
  return 0; // Crashes upon returning.
}

这是我遇到的崩溃:

game.exe 中 0x64260032 (CoreMessaging.dll) 处的未处理异常:0xC0000602:发生快速失败异常。异常处理程序不会被调用,进程将立即终止。

调用堆栈似乎不是特别有用

>   CoreMessaging.dll!64260032()    Unknown
    [Frames below may be incorrect and/or missing, no symbols loaded for CoreMessaging.dll] 
    [External Code] 
    InputHost.dll!5bb78a40()    Unknown
    [External Code] 

该项目是使用 Visual Studio Community 2015 构建的。什么是 CoreMessaging.dll,为什么这个仅显示一个窗口并关闭的简单应用会出现问题?

【问题讨论】:

  • 我不熟悉sf::RenderWindow 但是为什么window变量是全局的?
  • 看看this page,你应该试着把你的waitForKey函数放在while (window.isOpen())里面
  • 这是一个全球性的,因为我想把这个问题的一个非常快速的最小示例放在一起。该问题与事件处理或窗口的全局性无关。我可以完全删除它并在 main 范围内声明窗口,但问题仍然存在。在打开窗口后用 window.close() 关闭窗口也不能解决问题。

标签: c++ windows dll sfml


【解决方案1】:

您的问题是使用有错误的过时版本的 Windows 10 进行测试,该版本受现在已通过更新 KB4025342(Win10 版本 15063.483)修复的错误的影响

与您的问题匹配的错误修复摘要: "解决了可能导致 32 位应用程序在 64 位版本的 Windows 操作系统上崩溃的 CoreMessaging.dll 问题。"

在此处阅读有关此问题的更多信息:MSDN bugreport link

请更新您的 Windows 版本并检查崩溃是否会消失,然后选择我的回复作为答案(如果已解决)。

【讨论】:

  • 这听起来很可能是罪魁祸首。当我在我的电脑上时,我会尝试一下。谢谢。
  • 我必须说,如果您在他们解决了您的问题后未能将回复标记为答案(我确定确实如此),那么您就是 stackoverflow 的耻辱。找到你的解决方案并运行,因为你已经得到了你需要的东西:)
  • 不必粗鲁。即使在让 Windows 检查更新后它也没有消失——我认为微软决定何时推出预览版本,并且尝试手动更新我的版本并没有产生任何结果。因为这是一个个人项目,而且我还有其他事情要做,所以我没有时间查看我的计算机上是否有可用的新更新来解决这个问题。
猜你喜欢
  • 1970-01-01
  • 2014-06-16
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
相关资源
最近更新 更多