什么“QGLContext :: makeCurrent():wglMakeCurrent失败:操作成功完成”是什么意思?

时间:2012-03-05 09:43:41

标签: qt opengl qt4 qglwidget qt4.8

我正在尝试创建一个使用QGLWidgets的多线程Qt应用程序,并且我不断收到此错误。(我试图使用QPainter从另一个线程绘制)

由于它,我看起来也有很大的内存泄漏。

错误是“QGLContext :: makeCurrent():wglMakeCurrent失败:操作成功完成”

1 个答案:

答案 0 :(得分:2)

我认为这与Qt邮件列表中的一个相当古老的问题有关,如here所述。简而言之,如果调用makeCurrent()的线程不等于检索设备上下文的线程,则调用GetDC()。如链接线程中所述,问题是ReleaseDC()没有相应调用,导致句柄泄漏,并且在某些时候触发Windows在GetDC()调用中返回NULL,这使得wglMakeCurrent()失败。但是,我不知道为什么GetLastError()在这种情况下声称“操作成功完成”。