我有使用winapi的問題,或者無論如何我都在猜測。當我關閉應用程序時,這個過程仍然是一個'鬼魂'。該窗口照常消失,但進程保持阻止我重新編譯..我必須從任務管理器手動殺死它。關閉窗口後進程保持打開狀態
我已經不知道這部分代碼是錯誤的,它有點長,所以這裏的充分代碼的鏈接:http://pastebin.com/TmRiCeR4
我的猜測,雖然,是它可能有一些與此有關循環:
while(1) {
if(PeekMessage(&msg, hwnd, 0, 0, PM_REMOVE)) {
if(msg.message == WM_QUIT) {
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
} else
draw();
Sleep(100); //crappy way of stopping 10000000000000 loops a second
}
我猜它不正確「逃離」的循環,因此不會繼續執行closewindow()函數之後,但我可能是錯的。我部分複製了教程中的代碼,儘管我修改了它,所以我沒有看到教程代碼中出現的問題。這裏是我正在談論的教程(可能已過時?):http://bobobobo.wordpress.com/2008/02/11/opengl-in-a-proper-windows-app-no-glut/
Google也沒有給我答案。有任何想法嗎?
爲什麼你不使用'GetMessage()'和一個計時器?如果你只想繪製10幀,那麼SetTimer()就足夠了。 –
我不'一定要每秒只畫10幀。我只是簡單地把它循環得非常慢,因爲它沒有任何理由使用CPU上的一個核心的100%,所以我只是每秒循環10次,直到它實際工作。 – Arcticcu
http://stackoverflow.com/questions/10658813/infinite-windows-message-loop – jamesdlin