Background: I'm writing a 2-way installation system (packaging the installation file/ and unpacking and installing the installation file) I make use of BDiff and BPatch (https://github.com/delphidabbler/bdiff). I integrated the Diff code into my app, so I could display progress...
The limitations: 32bit... Delphi 10.1 Berlin, my 7zip solution and my crc solution both need 32bit executable.
The problem: Memory. I will usually Diff 5 exe's of about 40-50Mb each (the Diff,however requires MUCH more memory than 2*filesize), my threadpool only works with 3 threads active otherwise I get out-of-memory errors, that happens ~round 1.5Gb of RAM used
The resources, all promise solution, but could get none to work
http://cc.embarcadero.com/item/24309
Using IMAGE_FILE_LARGE_ADDRESS_AWARE 32bit - 64bit
http://docwiki.embarcadero.com/RADStudio/Seattle/en/PE_(portable_executable)_header_flags_(Delphi)
http://docwiki.embarcadero.com/RADStudio/Seattle/en/Linking
My compiler doesn't recognize
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
I get [dcc32 Error] MaitreD.dpr(45): E2003 Undeclared identifier: 'IMAGE_FILE_LARGE_ADDRESS_AWARE'
But what is even more disturbing is http://cc.embarcadero.com/item/24309 has a D2009 sample that you can download, and that one, with the same
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
compiles with the same RAD studio, so I'm thinking it is some setting that had it's default changed and that the example Delphi project (where the linker directive is working), have other than these default settings;
Finally, the actual question How, in Delphi 10.1 Berlin, do I give my 32bit app full, 4gb, use of memory (I need less than that, but more than the normally limited amount)?