无限 while 循环使 WinAPI 崩溃

Infinite while loop crashes WinAPI

我对 C++ 和 WinAPI 还是有点陌生​​,我遇到了一个问题。我无法在 WinAPI 中使用无限 while 循环(在本例中为 while(true)),但我可以在控制台应用程序中执行我想执行的操作而不会崩溃。

我正在尝试检测按键,所以我相信我需要这个循环,除非有人可以提供其他方法来执行此操作。

while (true) {
  if (GetAsyncKeyState(MIDDLEMOUSEBUTTON)) {
    //my code here
  }
}

感谢任何帮助或建议,谢谢。

GUI 应用程序是事件驱动的。您的循环正在阻止消息循环处理新消息。这就是您的应用程序没有响应的原因。您需要一个消息循环,并且您需要您的消息处理程序来处理 WM_KEYDOWNWM_KEYUP、and/or WM_CHAR 消息以处理按键,WM_(L|M|R)BUTTONDOWN and/or WM_(L|M|R)BUTTONUP 处理鼠标点击等的消息