我正常初始化代码,获取有效的设备/渲染上下文,然后将这两个存储在OpenGL_Display类型的静态对象中。当我从DLL外部调用图像更新功能时,调用两者
wglGetCurrentContext()
以及wglGetCurrentDC()
返回NULL。
当我使用我的班级中存储的wglMakeCurrent()
和HDC
来呼叫HRC
时,GetLastError()
将返回错误170(请求的资源正在使用中。)
我不明白资源如何在任何地方使用。请注意,代码在.exe中运行良好,因此它与我从C#应用程序调用它有关,或者它首先在DLL中,但是对于我的生活,我无法弄清楚为什么那些资源很忙。
答案 0 :(得分:6)
当上下文在另一个线程中处于活动状态时,将返回此错误。
最有可能的是你的创建/初始化代码执行了wglMakeCurrent()
,但在返回之前没有将上下文设置回NULL。
如果绘图然后在另一个线程上发生,它将无法设置上下文并返回ERROR_BUSY。
答案 1 :(得分:0)
如果你想从C#应用程序中使用OpenGL(我假设是.NET框架),那么你应该使用OpenTK。