API CreateWindow не работает на VS2015 - PullRequest
0 голосов
/ 30 августа 2018

Мы используем CreateWindow() API, который корректно работал на VS2012 до обновления до VS2015. После обновления до VS2015 CreateWindow API возвращает ноль HWND.

Мы звоним AtlAxWinInit() до CreateWindow() API, как показано ниже.

Например:

// Code on VS2012 which is working correctly and failing on VS2015.

CreateControl()
{
    BOOL res = AtlAxWinInit();         // successfully return true..
    // Below API successfully return HWND on VS2012 level.
    HWND hwndChild =   CreateWindow(_T("AtlAxWin110"),
                                    _T("test"),
                                    WS_CHILD|WS_VISIBLE,
                                    0,0,0,0,
                                    hwnd,NULL,
                                    ::GetModuleHandle(NULL),
                                    NULL);
}

В соответствии с VS2015 мы изменили имя класса на «AtlAxWin140», но API все еще не работает.

CreateControl()
{
    BOOL res = AtlAxWinInit();         // successfully return true..
    // For VS2015 we changed class name to "AtlAxWin140" still API is returning null HWND.
    HWND hwndChild =   CreateWindow(_T("AtlAxWin140"),
                                    _T("test"),
                                    WS_CHILD|WS_VISIBLE,
                                    0,0,0,0,
                                    hwnd,NULL,
                                    ::GetModuleHandle(NULL),
                                    NULL);
}

Я также проверил GetLastError() после CreateWindow calll; возвращается

"Класс не зарегистрирован".

Не могли бы вы помочь мне решить эту проблему ..

Спасибо ..

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