Hvordan Redusere Størrelsen På En Exe

Innholdsfortegnelse:

Hvordan Redusere Størrelsen På En Exe
Hvordan Redusere Størrelsen På En Exe

Video: Hvordan Redusere Størrelsen På En Exe

Video: Hvordan Redusere Størrelsen På En Exe
Video: FNAF WORLD UPDATE 2 - FOXY.EXE | ЭТО ЧТО, ХОРРОР?! | 2024, Kan
Anonim

Den lille mengden RAM og langvarige lagringsenheter på personlige datamaskiner førte til meget strenge begrensninger på størrelsen på programmene. Dette problemet eksisterer ikke i dag. Men selv nå er det noen ganger viktig å minimere størrelsen på exe-modulen til den utviklede applikasjonen så mye som mulig.

Hvordan redusere størrelsen på en exe
Hvordan redusere størrelsen på en exe

Nødvendig

  • - kilde;
  • - kompilator, linker;
  • - kompressorer av PE-moduler, som UPX, Themida.

Bruksanvisning

Trinn 1

Bygg utgivelsesversjonen av den kjørbare applikasjonen. Velg riktig konfigurasjon i prosjektinnstillingene i IDE. Hvis det ikke er noen slik konfigurasjon, kan du opprette den basert på den eksisterende. Endre listen over koblingsalternativer ved å fjerne og legge til passende direktiver. Så når du bruker en utviklingspakke fra Microsoft, bør du fjerne alternativet / feilsøking. Du kan også legge til følgende direktiv i kildekoden: #pragma comment (linker, "/ RELEASE")

Steg 2

Konfigurer prosjektet for å unngå å koble den kjørbare filen med statiske biblioteker så mye som mulig. Bruk delte versjoner av de respektive bibliotekene. For eksempel kan du ekskludere koden til C- og C ++ kjøretidsbibliotekene ved å erstatte koblingsalternativet / ML eller / MT (statiske enkelt- og flertrådede biblioteker) med / MD (flertrådet CRT DLL).

Trinn 3

Vurder å slå sammen forskjellige deler av exe-modulen til en. Denne metoden vil ikke gi et merkbart resultat hvis filen er stor nok, men med den innledende modulstørrelsen på 20-30 kilobyte, kan gevinsten være betydelig. Alternativet / merge linker lar deg slå sammen seksjoner. Du kan angi det gjennom prosjektparametrene: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data eller ved å bruke pragmadirektiv i kildekoden: #pragma comment (linker, "/ flette:.text =.data ") # pragma comment (linker," /merge:.reloc=.data")#pragma comment (linker, "/merge:.rdata=.data")#pragma comment (linker," / merge:.idata =.data ") Det er også fornuftig å definere attributtene til den resulterende seksjonen: #pragma comment (linker," /section:.data, rwe ")

Trinn 4

Reduser størrelsen på exe ved å angi minimumsverdien for størrelsen på blokkene langs grensene som seksjonene er justert med. Bruk alternativet / filealign linker spesifisert ved å redigere prosjektegenskapene eller pragmadirektivet: #pragma comment (linker, "/ filealign: 0x200") Denne metoden er egnet for små moduler.

Trinn 5

Prøv å redusere størrelsen på exe-filen ved å bygge den med optimaliseringsalternativer for å redusere mengden maskinkode. Erstatt kompileringsalternativene / O2 eller / Od med / O1.

Trinn 6

Bytt ut standard DOS-stubben i exe-modulen med din egen, som vil ha den minste størrelsen. Bruk alternativet / stub linker: #pragma comment (linker, "/stub:mystub.exe")Her mystub.exe er navnet på DOS-kjørbare fil som vil bli lagt til exe-modulen som en stub.

Trinn 7

Vurder å spesifisere ditt eget inngangspunkt til applikasjonen. Dette vil eliminere initialiseringskoden til de statiske kjøretidsbibliotekene. Bruk alternativet / entry linker, for eksempel: #pragma comment (linker, "/ entry: MyStartup") ugyldig MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

Trinn 8

Bruk emballasjeverktøy som UPX, ASPack, Themida, PECompact til den ferdige exe-filen. Moduldataene komprimeres. De pakkes ut i minnet etter at applikasjonen er startet. Denne metoden gir gode resultater for store exe-filer som inneholder en stor mengde statiske data med lav entropi (for eksempel DIB-raster i ressursseksjonen).

Anbefalt: