1

コードを通常どおりに初期化し、有効なデバイス/レンダリング コンテキストを取得してから、これら 2 つを OpenGL_Display 型の静的オブジェクトに格納します。次に、DLL の外部からイメージ更新関数を呼び出すと、両方の呼び出しと NULLwglGetCurrentContext()が返されます。クラスに格納されたを使用してwglGetCurrentDC()呼び出すwglMakeCurrent()と、エラー 170 が返されます (要求されたリソースは使用中です)。HDCHRCGetLastError()

リソースがどこからでもどのように使用されているのかわかりません。コードは .exe から正常に実行されるため、C# アプリケーションから呼び出すことと関係があるか、そもそも DLL 内にあることに注意してください。リソースがビジーです。

4

2 に答える 2

8

このエラーは、コンテキストが別のスレッドでアクティブな場合に返されます。

ほとんどの場合、作成/初期化コードはを実行しますが、wglMakeCurrent()戻る前にコンテキストをNULLに戻しません。

その後、描画が別のスレッドで行われると、コンテキストを設定できなくなり、ERROR_BUSYが返されます。

于 2013-01-14T16:46:23.873 に答える
-1

C# アプリケーション (.NET フレームワークを想定) から OpenGL を使用する場合は、OpenTKを使用する必要があります。

于 2013-01-14T16:45:57.920 に答える