私の C# OpenTK スクリーンセーバー アプリケーションには非常に奇妙な問題があります。拡張子を変更する前にプログラムをコンパイルして実行すると、EXEファイルとして正常に動作します。しかし、拡張子を SCR に変更して実行すると、System.EntryPointNotFound 例外 (この場合は glCreateProgram 関数) でクラッシュします。デバッガーで、実行時に次のことを確認しました。
EXE ファイルとして: GL.GetString(StringName.Vendor) -> "Intel" GL.GetString(StringName.Version) -> "2.1.0 - Build 8.15.10.2622"
SCR ファイルとして: GL.GetString(StringName.Vendor) -> "Microsoft" GL.GetString(StringName.Version) -> "1.1.0"
私のアプリケーションでは、GameWindow クラスのパラメーターなしのコンストラクターを使用して OpenGL コンテキストを作成しています。ちょっとした実験で、拡張機能を BAT に変更したところ、完全にうまく動作しました。私の OpenGL コンテキストがファイル拡張子に依存する理由がわかりません。スクリーンセーバーは何らかのオーバーレイでシステムによって実行されると推測していますが、本当にこの問題の解決策を見つけることができませんでした。
何か案は?