在使用c ++和win32 api创建子窗口时出现问题。 如果我检查getLastError函数它返回“87”但我不知道这意味着什么。 我知道我的代码不包含错误,有人可以查看我的代码并帮我弄清楚它是什么问题。
(这是在WinProc WM_CREATE部分。)
HWND hChildWindow = CreateWindowEx(WS_EX_CLIENTEDGE,0,NULL,WS_OVERLAPPEDWINDOW|WS_VISIBLE,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,hwnd,0,GetModuleHandle(0),NULL);
if(!hChildWindow)
{
char text[256];
int errormsg = (int)GetLastError();
sprintf(text,"Error# %i",errormsg);
MessageBox(0,text,"Error",MB_OK|MB_ICONEXCLAMATION);
return false;
}
答案 0 :(得分:2)
CreateWindowEx
的第二个参数是一个窗口类(字符串或ATOM
)。显然NULL
不是有效值。
P.S。
我知道我的代码没有 包含错误......
小心这么响亮的短语。当某些东西不起作用时,应仔细检查所有内容。否则你可能只是指责一些人没有任何好处来解决这个问题。检查所有内容与标准/文档/规范/等。在做出任何判断之前。
答案 1 :(得分:2)
87 = Invalid Parameter - 请注意,您可以使用FormatMessage从错误代码中获取字符串消息。
答案 2 :(得分:1)
快速浏览System Error Codes引用表明ERROR_INVALID_PARAMETER
。你最有可能将无效的样式/标志组合传递给你的窗口。