2016-09-16 7 views
3

私はDelphi 5.0を使用して構築され、問題なく正常に動作するアプリケーションを1つ持っています。しかし、大規模なレポートを実行するときは、アプリケーションに2Gb以上のメモリが必要です。分析を行った後、コンパイラ指令SETPEFlagsを使用して、32ビットのアプリケーションメモリを4 GBまで増やすことができます。コンパイラ指令SETPEFlags in Deplhi 5

私のプログラムでDelphi 5.0で設定しようとしましたが、 "Invalid Compiler Directive"というエラーが表示されています。誰かが別のバージョンでアプリケーションを再構築せずに解決する方法を提案することができます。 Delphiにどのバージョンが追加されましたか?

ありがとうございます。

答えて

6

Delphi 5のツールを使用してアプリケーションを大規模アドレス対応(Delphi 6で{$SetPEFlags}が追加されたもの)としてマークすることはできません。そのPEフラグをポストビルド設定として追加する必要があります。そのフラグを設定する通常の方法は、Microsoftのeditbinツールを使用することです。

これを実行すると、2 GB境界を超えてメモリを割り当てるとすぐにプログラムが機能しなくなります。これは、デフォルトのBorlandメモリマネージャが大きなアドレスをサポートしていないためです。 FastMMまたは他のLAA対応メモリマネージャで置き換える必要があります。また、必要に応じて、たとえばHeapAlloc()などの独自の置換メモリマネージャを記述することもできます。

+0

thats cool。デビッドに感謝します。 editbinを使用してフラグを設定し、メモリ管理と期待通りの動作にFastMMを使用します。 – Nalu

関連する問題