Win7 で正しく動作しないことがあるサードパーティ製ライブラリを使用しています。インストール時にこれを構成する方法はわかっていますが、実行時に設定することも検討したいと考えています。これは可能ですか、それともそのコンテキストを起動前に設定する必要がありますか? (可能性はほとんどないと思いますが、とにかく聞いてみようと思いました)
(C++ アプリケーション - 本当に重要というわけではありません)
Win7 で正しく動作しないことがあるサードパーティ製ライブラリを使用しています。インストール時にこれを構成する方法はわかっていますが、実行時に設定することも検討したいと考えています。これは可能ですか、それともそのコンテキストを起動前に設定する必要がありますか? (可能性はほとんどないと思いますが、とにかく聞いてみようと思いました)
(C++ アプリケーション - 本当に重要というわけではありません)
アプリケーションの実行中に互換性設定を変更することはできません。
ただし、互換性設定が正しいことを確認してからアプリケーションを起動するランチャー アプリケーションを用意することもできます。もちろん、ランチャー アプリケーションに互換性の問題がないことを確認する必要があります。
互換性設定は、選択したプラットフォームで使用できないヘッダー ファイル内の Win32 API の一部をブロックする、単なるプリプロセッサ マクロです。
ただし、API 全体が DLL によって提供されるため、実行時に実行されている OS を特定し、LoadLibraryとGetProcAddressを使用して必要なプラットフォーム固有のエントリ ポイントを取得できます。