Я пытаюсь добавить дочернее окно в мое главное окно, но функция CreatWindow создает исключение, говоря, что не может получить доступ к адресу в 0x00000, но работает нормально, когда я пытаюсь создать кнопку, я отслеживал переменные и ничего из них нулевые, вот оно:
WNDCLASSEX windowClass;
windowClass.cbSize = sizeof(WNDCLASSEX);
windowClass.hInstance = hInstance;
windowClass.lpfnWndProc = NULL;
windowClass.lpszClassName = className;
windowClass.style = CS_HREDRAW | CS_VREDRAW;
windowClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
windowClass.hCursor = LoadCursor(NULL, IDC_ARROW);
windowClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
windowClass.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
windowClass.cbClsExtra = 0;
windowClass.cbWndExtra = 0;
windowClass.lpszMenuName = NULL;
if (!RegisterClassEx(&windowClass)){
return;
}
window = CreateWindowEx(0,
className,
(LPCTSTR)NULL,
WS_CHILD | WS_BORDER,
0, 0, 0, 0,
owner,
(HMENU)ID,
hInstance,
NULL);
Приведенный выше код дает ошибку, важные переменные приходят отсюда:
gl = new OpenGLContainer("hellogl", hInstance);
addChild(gl);
первым параметром является className, конструктор выполняет только атрибуцию, вызов метода addChild gl-> setOwner (window_handler) и gl-> create (), который является первым фрагментом кода, который я опубликовал.
Я также видел список стеков, и проблема в том, что после входа программы в функцию CreateWindow это очень странно, поскольку отладчик показывает, что ни одно из значений (указателей) не является нулевым. Спасибо за помощь
Может ли это быть неудачным, потому что lpfnWndProc
нулевой?
Других решений пока нет …