Ich habe in 7-Zip ohne Vorwarnung ein SFX-Archiv mit> 4 GB (die selbstextrahierenden Archive) erstellt. Als der Empfänger versuchte, es zu extrahieren, erhielt er dieses Fehlerband:
Ich fand es, weil das .exe
größer als 4 GB ist. Nach der Installation von 7-Zip konnte er das Archiv extrahieren, aber ich frage mich, warum Windows eine solche ausführbare Datei nicht ausführen kann. Und ist es möglich, über eine Überschreibung?
windows
computer-architecture
Louis Waweru
quelle
quelle
Antworten:
Windows unterstützt keine ausführbaren Dateien mit einer Größe von mehr als 4 GB gemäß diesem Thread:
http://sourceforge.net/p/sevenzip/discussion/45798/thread/337fc13e/
Der Kommentator "Igor Pavlov" ist der Schöpfer und Betreuer von 7-Zip. Während dieser Kommentar etwas knapp ist, gibt es in den Sourceforge-Foren andere Threads , die den gleichen Rat wiederholen. Ich glaube nicht, dass das Ausführen der ausführbaren Datei auf einem 64-Bit-Betriebssystem einen Unterschied machen würde, da dies möglicherweise eine Einschränkung der Größe einer ausführbaren Windows- Datei darstellt, dh eine Einschränkung des Windows PE-Formats selbst.
Dieser Artikel zum Schreiben von 64-Bit-Programmen schlägt Folgendes vor:
Vermutlich hat Igor eine Möglichkeit gefunden, ± 2 GB zu verwenden, um 4 GB zu erreichen.
quelle
4GiB - 1B = 2^32 - 1 bytes = 4,294,967,295 bytes
. Ich konnte es unter Windows 10 64-Bit überprüfen, indem ich mit WinRAR selbstextrahierende Archive in Form von EXE-Dateien erstellte. Eine ausführbare Datei mit einer Größe von4GiB
wird nicht gestartet,4GiB - 1B
funktioniert aber einwandfrei.Eine selbstextrahierende ausführbare Datei mit mehr als 4 GB ist extrem, da für ausführbare Windows-Dateien wie * .exe, * .dll usw. für PE32 und eine 64-Bit-Version PE32 + (gilt für 32-Bit und 64) eine Beschränkung von 4 GB gilt -bit-Versionen).
Zweitens wird die ausführbare Datei vor der Ausführung vollständig in den Arbeitsspeicher geladen, und selbst wenn Sie nicht durch Windows eingeschränkt sind (aber Sie sind es), können Sie leicht durch die Hardware eingeschränkt werden, die in einem solchen Fall die physische Größe des Arbeitsspeichers darstellt
quelle