2

タイトルが示すように、win 7 64 ビットで 32 ビット アプリケーションを実行しています。アプリケーションは、Embarcadero XE2 の C++ で作成されます。2GB 以上のメモリが必要です。

手順:

  • 3GB スイッチを有効にして、PC を再起動しました。
  • プロジェクト オプション/c++ リンカー/出力フラグに追加しようとし-GF: LARGEADDRESSAWAREましたが、リンクに失敗しました。それは言った:「コマンドGFの失敗:」またはそのようなもの。

その後、フォーラムで、FLAGS セクションの .bpr ファイルで手動で行う必要があることを発見しました。フラグを追加してから、プロジェクトをリンクしました。ただし、アプリの使用可能なメモリ インジケーターは、まだ 2 GB を下回っていることを示しています。

質問:

  1. これを適切に機能させる方法は?
  2. メモリが 3GB かどうかを確認する方法を教えてください。
4

1 に答える 1

4

この/3GBスイッチは 32 ビット システム専用です。お使いのシステムは 64 ビット システムです。つまり、LARGEADDRESSAWAREPE フラグを使用した 32 ビット実行可能ファイルには 4GB のアドレス空間があります。/3GB起動オプションを使用しないでください。

LARGEADDRESSAWAREPE 表示ツールを使用して、実行可能ファイルに PE フラグが設定されているかどうかを確認できます。MS ツールチェーンでは、dumpbin. Embarcadero ツールチェーンに相当するものはtdump. さらに、無数の GUI PE ビューアがあります。機能するツールを見つけて、この PE フラグが正しく設定されていることを確認してください。

于 2016-01-28T15:39:52.323 に答える