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

WindowsのVisual Studioでアプリケーションを作る際に、お客様が32bit Windowsを使っていることを考慮して、32bitのアプリケーションを作っています。
32bitのアプリケーションでは通常は2GBまでしかアドレッシングできませんが、あるオプションを使うと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を使います。

DUMPBIN.exe

DIMPBIN.exeはVisual Studio付属のユーティリティの一つです。
以下のオプションがあります。

確認方法と変換方法

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アプリケーションに変換することが可能であることがわかりました。

スポンサーリンク
スポンサーリンク
Translate »