我使用的是使用MFC的Visual C ++中的大型解决方案。变化之前一切运作良好。当我刚刚修改了一个对话框并添加了一个新对话框。程序开始在第一行结束时提出异常:
if (!wglDeleteContext(m_hRc))
{
throw;
}
m_hRc = NULL;
return;
在文件RenderDevice.cpp中。
我正在使用TortoiseSVN,因此我还原了所有更改并重新编译了解决方案中的项目。但问题仍然存在。
谁能告诉我什么可能出错?
答案 0 :(得分:1)
如果我是你,我会从Microsoft安装Application Verifier并打开应用程序的堆/内存检测,然后在调试器中运行它。
答案 1 :(得分:0)
答案 2 :(得分:0)
在wglDeleteContext之后放置GetLastError:
if (!wglDeleteContext(m_hRc))
{
DWORD dwError = GetLastError();
throw;
}
m_hRc = NULL;
return;
将调试器放在
行DWORD dwError = GetLastError();
您将了解为什么wglDeleteContext失败以及它抛出异常的原因。
答案 3 :(得分:0)
我遇到了类似的问题,它正在发生,因为你不会释放任何可能由OpenGL纹理,顶点数组对象,VBO,FBO等分配的空间,至少在OpenGL的情况下。
如果您没有使用OpenGL,那么看看您是否正在释放您在程序中使用的对象。