前回、VBコンパイラが規定値の"任意のCPU"設定だった事もあり、Windows7でもネイティブ(64ビット)動作となってしまいましたので、今一だったなぁ~と。
そこでWindowsXPのVisualBasicは、32ビットでコンパイルする様にIDEの設定を変更してみました。
マイクロソフトのドキュメントによると、
・構成マネージャーを使用して、対象プラットフォームを指定
・プロジェクトのプロパティを使用して、対象CPUを指定
などが有るようですが、構成マージャーには新規作成や編集などの作業が必須の様なので、面倒くさがり屋には不向きです。という事で、プロジェクトのプロパティを使用して、対象CPUを指定してみる事に。
・メニューバーの「プロジェクト」をクリック→プルダウンメニューの「(プロジェクト名)のプロパティ」を選択、または、
ソリューションエクスプローラの「プロジェクト名」を"右"クリック→プルダウンメニューの「プロパティ」を選択して、プロパティのダイアログを表示します。
1.プロジェクトの「プロパティ」画面で、「コンパイル」を選択し、「詳細コンパイルオプション」ボタンをクリック
2.「コンパイラの詳細設定」画面で、「ターゲットCPU」の内容を確認
・32ビットでコンパイル出来る様に、「AnyCPU」を「x86」に変更します
3.「コンパイラの詳細設定」画面で、「ターゲットCPU」の変更内容を確認
コンパイラの対象CPU指定をx86に変更して Windows7 64Bit 版で動作確認したところ、WOW64配下で動作する事を確認できました。
2つの関数の取得データには、wProcessorArchitecture/lpMaximumApplicationAddress/dwProcessorType に違いがみられました。
・やはりCPU情報を詳しく知りたい場合には、GetNativeSystemInfo 関数の方が優れているようです。
お試し環境
WindowsXP 32bit Edition、Windows7 64bit Edition
Visual Basic 2008 対象CPUはx86
/*-------------------------------- お試し結果 ------------------------------*/
・GetSystemInfo 関数の取得データ
・GetNativeSystemInfo 関数の取得データ
/*----------------------------------------------------------------------------*/
/*-------------------------------- お試しソース ----------------------------*/
前々回の「32ビットOS下のVisualBasicからGetSystemInfo関数を呼び出す」記事のソースと同じです。
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/*============================================================================*/