EDITBIN /LARGEADDRESSWARE 2GBを超えるアドレス指定

プログラミング

WindowsのVisual Studioでアプリケーションを作る際に、お客様が32bit Windowsを使っていることを考慮して、32bitのアプリケーションを作っています。

32bitのアプリケーションでは通常は2GBまでしかアドレッシングできませんが、

EDITBIN /LARGEADDRESSWARE

を使うと2GBを超えるアドレスの指定が可能となります。

スポンサーリンク
スポンサーリンク

EDITBIN /LARGEADDRESSWARE

EDITBIN.exeは、Visual Studio付属のユーティリティの一つです。

以下のオプションがあります。

オプション 目的
/ALLOWBIND DLL をバインドすることができるかどうかを指定します。
/ALLOWISOLATION DLL または実行可能ファイルのマニフェスト検索の動作を指定します。
/APPCONTAINER Windows ストア のアプリケーションとかどうか AppContainer のアプリケーション内で実行するよう指定します。
/BIND 速度の読み込み時に指定したオブジェクトのエントリ ポイントのアドレスを設定します。
/DYNAMICBASE DLL または実行可能イメージが ASLR (ASLR) を使用してロード時にランダムに再ベースかどうかを指定します。
/ERRORREPORT Microsoft に内部エラーを報告します。
/HEAP バイトの実行可能イメージのヒープのサイズを設定します。
/HIGHENTROPYVA DLL または実行可能イメージの高いエントロピ (64 ビット) の ASLR (ASLR) をサポートしているかどうかを指定します。
/INTEGRITYCHECK 読み込み時にデジタル署名をチェックするかどうかを指定します。
/LARGEADDRESSAWARE かどうか 2 GB を超えるオブジェクトがアドレス指定します。
/NOLOGO EDITBIN の著作権情報を表示しません。
/NXCOMPAT 実行可能イメージは Windows データ実行防止機能との互換性があるかどうかを指定します。
/REBASE 指定されたオブジェクトのベース アドレスを設定します。
/RELEASE ヘッダーにチェックサムを設定します。
/SECTION セクションの属性をオーバーライドします。
/STACK バイトの実行可能イメージのスタックのサイズを設定します。
/SUBSYSTEM 実行する環境を指定します。
/SWAPRUN 実行可能イメージをスワップ ファイルにコピーする必要がある指定し、そこからことを実行します。
/TSAWARE アプリケーションがマルチユーザー環境で動作するように設計されていることを示します。
/VERSION ヘッダーのバージョン番号を設定します。

Visual Studioで32bitアプリケーションを作った後で、2GBを超えるアドレッシングを可能にするには、

/LARGEADDRESSAWARE

を使います。

EDITBINは、設定するためのコマンドです。

DUMPBIN.exe

DUMPBIN.exeは、Visual Studio付属のユーティリティの一つです。

以下のオプションがあります。

DUMPBINは、EDITBINと異なり、確認するためのコマンドです。

2GB以上のアドレッシングの確認方法と変換方法

Visual Studioで32bitのある実行モジュールを作成したとします。

以下のコマンドを実行してモジュールを確認します。

C:\>dumpbin.exe /headers (実行モジュール名)

次に、この実行モジュールを2GBを超えるアドレッシングを可能にします。

C:\>editbin.exe /LARGEADDRESSAWARE (実行モジュール名)

これで実行モジュールが2GBを超えるアドレッシング可能となりました。

次に、以下のコマンドを実行して確認します。

C:\>dumpbin.exe /headers (実行モジュール名)

Application can handle large (>2GB) addresses

と表示されていれば、無事に変換できました。

まとめ

いかがでしたか?

簡単に2GB越えのメモリを扱える32bitアプリケーションに変換することが可能であることがわかりました。

プログラミングの無料レッスン体験

約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp

<Codecampの特徴>

1 現役エンジニアによる指導

2オンラインでのマンツーマン形式の講義

3大手企業にも導入されている実践的なカリキュラム

↓無料体験レッスン実施中です。

プログラミングのオンラインスクールCodeCamp