WIN2000と98で動くアプリを開発しています。
GetVersionExを使いOSのバージョンの判別はできたのですが、
2000と98でincludeファイルを自動的に変更する方法が思いつきません。
宜しくお願いします。
#nclude でファイルをソースに取り込むのはコンパイルする以前です
(プリプロセス時の処理です)が、 GetVersionEx() はコンパイル後の
実行コードを動作させている時に呼び出していますね
どのようなファイルを切り替えたいのか書いていないので判りませんが
少なくとも GetVersionEx の結果で切り替えるのは無理かと思います
(あなたの文を読み間違えていたら御免なさい)
島さんありがとうございます。
内容は合っています。
GetVersionExを使わずにOSをプリプロセスで判別できれば
よいのですが・・・
手動でプリプロセッサの定義をOSによって変えていたのを
自動化できればと思ったのですが。
Win2000用とWin98用で機能別にクラスに分ける。
OSの種類をGetVersionExを使って識別し、そこで動的にクラスを実装する。
Stateパターンとか・・・
> 手動でプリプロセッサの定義をOSによって変えていたのを
> 自動化できればと思ったのですが。
もしOSに応じて何らかのマクロが自動定義されるとしたら、
2000用は2000で98用は98でコンパイルすることになり、
余計手間がかかるような気がしますが…(^^;
コンパイルのたびにマクロ定義を変更していて面倒だというなら、
「ビルド」-「構成」で新しい構成を追加して、
OS切り替え用のマクロだけが違うビルド構成を用意します。
設定は最初の一度だけで済みます。