另一个win32问题

时间:2010-11-27 09:59:21

标签: c++ c winapi

在使用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;
    }

3 个答案:

答案 0 :(得分:2)

CreateWindowEx的第二个参数是一个窗口类(字符串或ATOM)。显然NULL不是有效值。

P.S。

  

我知道我的代码没有   包含错误......

小心这么响亮的短语。当某些东西不起作用时,应仔细检查所有内容。否则你可能只是指责一些人没有任何好处来解决这个问题。检查所有内容与标准/文档/规范/等。在做出任何判断之前。

答案 1 :(得分:2)

87 = Invalid Parameter - 请注意,您可以使用FormatMessage从错误代码中获取字符串消息。

答案 2 :(得分:1)

快速浏览System Error Codes引用表明ERROR_INVALID_PARAMETER。你最有可能将无效的样式/标志组合传递给你的窗口。