J'ai créé une archive SFX> 4 Go (les archives auto-extractibles) en 7-Zip, sans avertissement. Lorsque le destinataire a tenté de l'extraire, il a obtenu ce ruban d'erreur:
J'ai trouvé que c'est parce que la .exe
taille est supérieure à 4 Go. Après avoir installé 7-Zip, il a pu extraire l'archive, mais je me demande pourquoi Windows ne peut pas exécuter un tel exécutable? Et est-il possible via une dérogation?
windows
computer-architecture
Louis Waweru
la source
la source
Réponses:
Windows ne prend pas en charge les exécutables d'une taille supérieure à 4 Go selon ce fil:
http://sourceforge.net/p/sevenzip/discussion/45798/thread/337fc13e/
Le commentateur "Igor Pavlov" est le créateur et le mainteneur de 7-Zip. Bien que ce commentaire soit quelque peu bref, il existe d' autres discussions sur les forums sourceforge qui répètent le même conseil. Je ne pense pas que l'exécution de l'exécutable sur un système d'exploitation 64 bits ferait une différence car cela pourrait bien être une limitation de la taille d'un fichier exécutable Windows, c'est-à-dire une limitation du format Windows PE lui-même.
Cet article sur l'écriture de programmes 64 bits suggère que:
Vraisemblablement, Igor a trouvé un moyen d'utiliser ± 2 Go pour atteindre 4 Go.
la source
4GiB - 1B = 2^32 - 1 bytes = 4,294,967,295 bytes
. J'ai pu le vérifier sur Windows 10 64 bits en créant des archives auto-extractibles avec WinRAR sous forme de fichiers .EXE. Un exécutable avec une taille de4GiB
ne démarre pas, mais4GiB - 1B
fonctionne très bien.Avoir un exécutable auto-extractible supérieur à 4 Go est à l'extrême, car il y a une limite de 4 Go sur les fichiers exécutables Windows comme * .exe, * .dll etc. pour PE32 et une version 64 bits PE32 + (s'applique aux 32 bits et 64 versions -bit).
Deuxièmement, le fichier exécutable est chargé complètement dans la RAM avant l'exécution et même si vous n'êtes pas limité par Windows (mais vous l'êtes), vous pourriez être facilement limité par le matériel, qui est la quantité physique de RAM dans un tel cas
la source