何らかの理由で、GetMessage() ループが終了した直後に「無効なウィンドウ ハンドル」エラーが発生しますが、HWND を渡していないのに、どうしてこのエラーが発生するのでしょうか? :s
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);
}