Хитрая ошибка Qt / OpenGL - все вылетает - PullRequest
0 голосов
/ 02 апреля 2011

У меня раздражающая и, к сожалению, насущная проблема. Я начал с попытки создать подкласс QGLWidget для моего приложения Windows в Visual Studio 2008 x86. Насколько я мог судить, он сразу же запустился при запуске, когда был создан экземпляр QGLWidget. Наконец, я закончил тем, что попробовал все включенные примеры Qt для Open GL, и все они ведут себя одинаково - сбой следующим образом:

Появляется сообщение об ошибке:

"Windows сработала точка останова в 2dpainting.exe ... "

Выполнение останавливается в qgl_win.cpp (указана точка останова):

QGLTemporaryContext::~QGLTemporaryContext()
{
    wglMakeCurrent(d->dmy_pdc, 0);
    wglDeleteContext(d->dmy_rc);
    ReleaseDC(d->dmy_id, d->dmy_pdc);
    DestroyWindow(d->dmy_id);
--> if (d->old_dc && d->old_context)
        wglMakeCurrent(d->old_dc, d->old_context);
}

Выход:

... HEAP [2dpainting.exe]: HEAP: бесплатно Блок кучи a40c108, модифицированный на a40c288 после освобождения Windows вызвал точку останова в 2dpainting.exe.

Это может быть связано с повреждением куча, которая указывает на ошибку в 2dpainting.exe или любой из библиотек DLL это загрузил ...

Также происходит, когда я переключаюсь с отладки на релиз. Тем не менее, я могу нормально запускать большинство этих скомпилированных исполняемых файлов на примере Open GL Я не могу найти что-либо с помощью интернет-поиска. Гуру, помогите пожалуйста!

Спасибо, Matt

1 Ответ

0 голосов
/ 02 апреля 2011

Я решил проблему, обновив мои графические драйверы до их последней версии. Странно, потому что я использую чипсет Intel GMA 965 Express, который уже очень старый. Теперь все примеры Qt компилируются просто отлично. Нет повреждения кучи.

Я также могу запустить главное приложение Qt examples and Demos из меню «Пуск», чего я раньше никогда не делал - оно просто зависало.

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