无限 while 循环使 WinAPI 崩溃
Infinite while loop crashes WinAPI
我对 C++ 和 WinAPI 还是有点陌生,我遇到了一个问题。我无法在 WinAPI 中使用无限 while 循环(在本例中为 while(true)),但我可以在控制台应用程序中执行我想执行的操作而不会崩溃。
我正在尝试检测按键,所以我相信我需要这个循环,除非有人可以提供其他方法来执行此操作。
while (true) {
if (GetAsyncKeyState(MIDDLEMOUSEBUTTON)) {
//my code here
}
}
感谢任何帮助或建议,谢谢。
GUI 应用程序是事件驱动的。您的循环正在阻止消息循环处理新消息。这就是您的应用程序没有响应的原因。您需要一个消息循环,并且您需要您的消息处理程序来处理 WM_KEYDOWN
、WM_KEYUP
、and/or WM_CHAR
消息以处理按键,WM_(L|M|R)BUTTONDOWN
and/or WM_(L|M|R)BUTTONUP
处理鼠标点击等的消息
我对 C++ 和 WinAPI 还是有点陌生,我遇到了一个问题。我无法在 WinAPI 中使用无限 while 循环(在本例中为 while(true)),但我可以在控制台应用程序中执行我想执行的操作而不会崩溃。
我正在尝试检测按键,所以我相信我需要这个循环,除非有人可以提供其他方法来执行此操作。
while (true) {
if (GetAsyncKeyState(MIDDLEMOUSEBUTTON)) {
//my code here
}
}
感谢任何帮助或建议,谢谢。
GUI 应用程序是事件驱动的。您的循环正在阻止消息循环处理新消息。这就是您的应用程序没有响应的原因。您需要一个消息循环,并且您需要您的消息处理程序来处理 WM_KEYDOWN
、WM_KEYUP
、and/or WM_CHAR
消息以处理按键,WM_(L|M|R)BUTTONDOWN
and/or WM_(L|M|R)BUTTONUP
处理鼠标点击等的消息