出于好奇:
在我的wWinMain()
入口点,我填写了WNDCLASSEX
结构,我随后将其传递给RegisterClassEx()
。这是在WinMain中完成的第一件事,它看起来像这样:
WNDCLASSEX windowConfig = {0};
windowConfig.cbSize = sizeof(WNDCLASSEX);
windowConfig.style = CS_HREDRAW | CS_VREDRAW;
windowConfig.lpfnWndProc = WndProc;
windowConfig.hInstance = hInstance;
windowConfig.hCursor = LoadCursor(NULL, IDC_ARROW);
windowConfig.lpszClassName = L"Title";
if (!RegisterClassEx(&windowConfig))
{
MessageBox(NULL, "RegisterClassEx failed for no apparent reason", NULL, NULL);
return FALSE;
}
如果此配置运行一次,是否不?可能一个 - 鉴于参数没有改变 - 出于所有实际目的,只是假设注册课程总是成功并跳过检查?换句话说,只是
RegisterClassEx(&windowConfig);
..继续前进?
什么可能失败?
答案 0 :(得分:3)
它消耗系统资源,所以理论上,在耗尽的系统中,它可能会失败(在这种情况下LoadCursor
可能会先失败)
答案 1 :(得分:1)
RegisterClass(Ex)可能会失败。等等你的进程加载的一些dll使用类L“Title”所以你的窗口将不会被创建。始终(!)使用正确的错误检查。
更新:如果全局原子表泄露和/或已满,我忘记提及RegisterClass(Ex)可能会失败。