1

我正常初始化我的代码,并获得一个有效的设备/渲染上下文,然后将这两个存储在 OpenGL_Display 类型的静态对象中。然后,当我从 DLL 外部调用图像更新函数时,对两者的调用都会 wglGetCurrentContext()返回wglGetCurrentDC()NULL。当我调用wglMakeCurrent()并存储在我的类中时,HDC将返回错误 170(请求的资源正在使用中。)HRCGetLastError()

我不明白如何从任何地方使用该资源。请注意,代码从 .exe 运行良好,因此它与我从 C# 应用程序调用它有关,或者它首先位于 DLL 中,但对于我的生活,我无法弄清楚为什么那些资源很忙。

4

2 回答 2

8

当上下文在另一个线程中处于活动状态时,将返回此错误。

很可能是您的创建/初始化代码执行了wglMakeCurrent(),但在返回之前没有将上下文设置回 NULL 。

如果绘图随后发生在不同的线程上,它将无法设置上下文并返回 ERROR_BUSY。

于 2013-01-14T16:46:23.873 回答
-1

如果您想在 C# 应用程序中使用 OpenGL(我假设是 .NET 框架),那么您应该使用OpenTK

于 2013-01-14T16:45:57.920 回答