0

C# Windows フォーム アプリに読み込まれる C++ DLL があります。dll を使用して opengl コンテキストを作成し、dll のアンロード/リロード中にマネージド アプリで使用するために保存しようとしています。LoadLibrary と FreeLibrary を使用して DLL をロードしています。

これは可能ですか?C++ DLL が opengl DLL をロードする場合、それをロードした DLL で FreeLibrary を呼び出すと、opengl dll はアンロードされますか? また、c++ DLL によって作成されたアンマネージド オブジェクトをマネージド コードに格納し、その DLL の新しいインスタンスでそれらを再利用しても安全ですか?

4

1 に答える 1

2

OpenGL dl も Load Library 呼び出しでロードされた場合、特にアンロードしない限り、DLL をアンロードしても影響はありません。システムによって自動的にロードされた場合、C++ dll をアンロードするとアンロードされます。OpenGL がアンロードされておらず、OpenGL コンテキストの作成に使用されたウィンドウ ハンドルが有効なままである限り、OpenGL コンテキストを使用できます。

しかし、アプリケーションから OpenGL dll を直接呼び出さないのはなぜでしょうか?

于 2013-09-17T15:12:43.047 に答える