другая проблема win32 - PullRequest
       1

другая проблема win32

3 голосов
/ 27 ноября 2010

Возникла проблема с созданием дочернего окна с 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 ]

2 голосов
/ 27 ноября 2010

2-й параметр для CreateWindowEx - это класс окна (либо строка, либо ATOM). Очевидно, NULL не является допустимым значением.

приписка

Насколько я знаю, мой код не содержать ошибки ...

Остерегайтесь таких громких фраз. Когда что-то не работает, все должно быть тщательно проверено. В противном случае вы можете просто обвинить что-то / кого-то без толку в решении проблемы. Проверьте все против стандарта / документации / спецификации / и т. Д. прежде чем вы сделаете какое-либо суждение.

2 голосов
/ 27 ноября 2010

87 = Неверный параметр - учтите, что вы можете использовать FormatMessage , чтобы получить строковое сообщение с кодом ошибки.

1 голос
/ 27 ноября 2010

Быстрый просмотр кодов системных ошибок ссылка указывает ERROR_INVALID_PARAMETER. Скорее всего, вы передаете недопустимую комбинацию стилей / флагов вашему окну.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...