出于某种原因,我在 GetMessage() 循环结束后直接收到“无效的窗口句柄”错误,但我什至没有将 HWND 传递给它,所以我怎么会得到这个错误?:秒
MSG Message;
while(GetMessage(&Message, NULL, 0, 0) != 0)
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
ShowError();
ShowError 没有任何问题,因为我在这个应用程序之外使用它并且没有收到此错误...
void ShowError()
{
DWORD ErrorCode = GetLastError();
if(ErrorCode == ERROR_SUCCESS) return;
LPTSTR lpszBuffer = NULL;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, ErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpszBuffer, 0, NULL);
MessageBox(NULL, lpszBuffer, NULL, MB_OK | MB_ICONERROR);
LocalFree(lpszBuffer);
}