6

Win32 API for OpenGL を使用する場合、HDC と HRC を削除する必要がありますか? ウィンドウを閉じると、Win32API がそれらを破棄すると思いますか?

明確化: HRC は HGLRC オブジェクトです。

4

3 に答える 3

7

それは必要ですか"?ウィンドウを閉じた後にプロセスが終了した場合は、いいえ。Windows は、これらの種類の未処理のハンドルをクリーンアップします。

やるべきですか?絶対。アプリケーションで使用するオブジェクトは常にクリーンアップする必要があります。OS がクリーンアップするために物を床に落とすことは、良い習慣ではありません。古いウィンドウを閉じた後に新しいウィンドウを作成したいという事実以外の理由がない場合。その場合、このガベージ HGLRC が貴重なリソースを占有しています。

于 2013-04-02T00:27:32.887 に答える
0

窓が閉まっているだけでなく、他のことを心配する必要があります。たとえば、http://blogs.msdn.com/b/oldnewthing/archive/2013/03/06/10399678.aspxを読んでください。オブジェクトの所有者は、DC に選択されている間はオブジェクトを削除できないと書かれています。

于 2013-04-01T18:12:33.760 に答える
0

できるだけ早く HDC を解放します (削除しないでください)。私は OpenGL を行ったことがあるので、HGLRC が何に使用されているかは完全にはわかりませんが、同様に処理されていると思われます。ハンドルを取得するのは安価です。それらを保持することは問題になる可能性があります。

于 2013-04-01T18:14:50.907 に答える