我应该检查CreateWindowEx()
函数调用失败吗?如果失败了我该怎么办,我的意思是如果我创建了一组按钮而其中一个函数调用失败了,我应该一起关闭应用程序吗?我的意思是缺少一个按钮会使应用程序无用。
答案 0 :(得分:2)
我认为您应该始终检查CreateWindowEx()
的返回值。如果返回值为NULL
,那么您就知道出现了问题,并且您可以采取一些措施来响应。出现问题时您所做的事情取决于您,例如您可以显示带有错误描述的消息框,或者您可以将错误记录到文件中等等:
// Try to create your window
HWND hwnd = CreateWindowEx(...);
// check if the handle is valid
if(hwnd == NULL) {
// display a MessageBox() with a descriptive error message
LPVOID lpErrorMessage;
DWORD dwErrorCode = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dwErrorCode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpErrorMessage,
0, NULL
);
MessageBox(NULL, (LPCTSTR)lpErrorMessage, TEXT("Error"), MB_OK);
// don't forget to free the buffer allocated by FormatMessage
LocalFree(lpErrorMessage);
// terminate process
ExitProcess(dwErrorCode);
}