3

Windows XP、Vista、および 7 の 3 つのバージョンすべてで動作するアプリケーションを開発したいと考えています。このアプリケーションでは、開くファイルを選択し、操作後にファイルを保存できます。Windows の 3 つのバージョンには、それぞれ異なるスタイルの [ファイルを開く] ダイアログ ボックスがあります。XP は OPENFILENAME 構造を持つ GetOpenFileName を使用しますが、Vista と Windows 7 では「共通ファイル ダイアログ」を使用することをお勧めします。OS の異なるバージョンごとに、提案されたスタイルでファイル ダイアログを動作させることができます。ただし、アプリケーションがバージョンごとに異なるスタイルのダイアログ ボックスを開くようにしたいと考えています。異なるバージョンの Windows 用に個別のバイナリをビルドしたくありません。

このロジックをアプリケーションに組み込むことは可能ですか。つまり、アプリケーションが実行されている OS に基づいてネイティブのファイルを開くダイアログにアクセスできるようにすることは可能ですか。

ありがとう、

アビジット

4

1 に答える 1

1

あなたは次のようなことをしなければならないでしょう

if (isVista())
{
    //Use IFileDialog
}
else
{
    //Use GetOpenFileName
}

ノート:

ダイアログをカスタマイズする場合は、これを行うことはできません。古いバージョンを使用する必要があります。

DLL の遅延読み込みを試します。

于 2011-05-23T22:27:40.520 に答える