2021年10月アーカイブ

前回、VBコンパイラが規定値の"任意のCPU"設定だった事もあり、Windows7でもネイティブ(64ビット)動作となってしまいましたので、今一だったなぁ~と。

そこでWindowsXPのVisualBasicは、32ビットでコンパイルする様にIDEの設定を変更してみました。

マイクロソフトのドキュメントによると、

・構成マネージャーを使用して、対象プラットフォームを指定
・プロジェクトのプロパティを使用して、対象CPUを指定

などが有るようですが、構成マージャーには新規作成や編集などの作業が必須の様なので、面倒くさがり屋には不向きです。という事で、プロジェクトのプロパティを使用して、対象CPUを指定してみる事に。

・メニューバーの「プロジェクト」をクリック→プルダウンメニューの「(プロジェクト名)のプロパティ」を選択、または、
ソリューションエクスプローラの「プロジェクト名」を"右"クリック→プルダウンメニューの「プロパティ」を選択して、プロパティのダイアログを表示します。


1.プロジェクトの「プロパティ」画面で、「コンパイル」を選択し、「詳細コンパイルオプション」ボタンをクリック

VBプロジェクトのプロパティ画面


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 関数の取得データ

WOW64下 GetSystemInfo 関数の取得データ

・GetNativeSystemInfo 関数の取得データ

WOW64下 GetNativeSystemInfo 関数の取得データ

/*----------------------------------------------------------------------------*/


/*-------------------------------- お試しソース ----------------------------*/

前々回の「32ビットOS下のVisualBasicからGetSystemInfo関数を呼び出す」記事のソースと同じです。

/*----------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------*/
/*============================================================================*/