64ビット プログラムの開発
64ビット アプリケーションをVisual C++で作成してみた。まず、通常の方法で32ビット プログラムを作成する。例えば、このウェブサイトで説明した方法で図1のプログラムを作成する。
図1
ここで、配列xの大きさを図2のように大きくとると、ビルド時に図2に示されているようにエラーとなる。これは、32ビットアプリケーションであるからである。
図2
図2のプログラムを、以下の手順で64ビットアプリケーションに変更する。
まず、図3に示されているように「Win32」と表示されているテキストボックスの右側の下向き黒三角形をクリックする。
図3
図4に示すメニュリストが表示されるので「構成マネージャー」を選んでクリックする。
図4
図5に示す「構成マネージャー」ダイアログウィンドウが表示される。
図5
プラットフォーム欄の「Win32」の右側の下向き黒三角形をクリックすると図6に示すメニュリストが表示される。
図6
「<新規作成...>」を選んでクリックすると、図7に示す「新しいプロジェクトプラットフォーム」ダイアログウィンドウが表示される。
図7
「新しいプラットフォーム」の右側の下向き黒三角形をクリックすると図8に示すメニュリストが表示される。
図8
「x64」を選んでクリックすると図9の状態になる。
図9
「OK」ボタンのクリックで、図10に示すようにプラットフォームに「x64」が表示される。
図10
「閉じる」ボタンをクリックすると、図11に示すように「x64」が表示される。
図11
図11の状態でF5キーを押すと、ビルド 実行される(図12)。
図12
実行前にタスクマネージャーを起動してメモリの使用量を調べたものが図13である。
図13
図12の実行中のときのメモリ使用量が図14に示されている。メモリ使用量が3.05GB(図13)から10.5GB(図14)に増えていることがわかる。
図14
プログラムの実行が終了すると、図15に示すようにメモリ使用量は減少する。
図15
次に、配列を
char y[120000000];
と定義してみる。このとき、配列yはスタックと呼ばれる領域に確保される(newによって確保された領域はスタック外にとられる)。
図16
スタックの大きさは、デフォルトで1MBであるが、図16の配列yの大きさは1MBを超えており、実行時に図17に示すようにエラーとなる。
図17
スタックのサイズは、以下に示す方法で変更できる。
メニュ「プロジェクト|〜のプロパティ」(図18)を選んでクリックすると「〜プロパティページ」ダイアログウィンドウが表示される(図19)。
図18
「リンカー|システム」を選んでクリックする。
図19
右側に表示されるている「スタックのサイズの設定」の右側のセルをクリックして、スタックのサイズをバイト単位で設定する。図20では1210000000バイトが設定されている。
図20
サイズの数値の設定後、Enterキーを押すと、「適用」ボタンがイネーブル状態になる。「適用」ボタンのクリックでスタックのサイズが設定され、「適用」ボタンはディスエーブルになる(図21)。
図21
「OK」ボタンをクリックして、「〜プロパティページ」を閉じる。
プロジェクトをビルド 実行すると、図22に示すように実行される。
図22