我在 Visual Studio 2008 的 MFC 应用程序中使用 opengl。我的项目在 wglmakecurrent 崩溃时说:
访问冲突读取位置
这仅在特定情况下发生,因此这可能不是驱动程序问题。而且我还检查了另一台发生相同错误的机器。
错误发生在以下函数中的 wglMakeCurrent(m_hDC,m_hRC) 处:
void CCETIGLView::Convert2D(CPoint win, GLdouble * objx, GLdouble * objy, GLdouble * objz) { if((m_hDC) && (m_hRC)) {
wglMakeCurrent(m_hDC,m_hRC); }
参数有以下类型:
HGLRC m_hRC;
硬盘驱动器 m_hDC;
它们是从作为 cview 的子类的 glview 类获得的。
当我检查 wglMakeCurrent 函数时,它为 GetLastError() 返回 0。当呈现某个选项并且其他选项正常工作时会发生这种情况。
我使用的是单线程,因此多线程问题也不算在内。