Hoe Om Die Grootte Van 'n Exe Te Verminder

INHOUDSOPGAWE:

Hoe Om Die Grootte Van 'n Exe Te Verminder
Hoe Om Die Grootte Van 'n Exe Te Verminder

Video: Hoe Om Die Grootte Van 'n Exe Te Verminder

Video: Hoe Om Die Grootte Van 'n Exe Te Verminder
Video: Наливной пол по маякам. Ровная и красивая стяжка. #27 2024, Desember
Anonim

Die klein hoeveelheid RAM en langtermynopbergingstoestelle op persoonlike rekenaars het in die verlede baie streng beperkings op die grootte van programme opgelê. Hierdie probleem bestaan nie vandag nie. Dit is egter selfs nou belangrik om die grootte van die exe-module van die ontwikkelde toepassing so min as moontlik te beperk.

Hoe om die grootte van 'n exe te verminder
Hoe om die grootte van 'n exe te verminder

Nodig

  • - bron;
  • - samesteller, skakel;
  • - kompressors van PE-modules, soos UPX, Themida.

Instruksies

Stap 1

Bou die weergawe van die programuitvoerbare weergawe. Kies die toepaslike konfigurasie in die projekinstellings in die IDE. As daar nie so 'n opset is nie, skep dit op grond van die bestaande. Verander die lys met skakelopsies deur toepaslike riglyne te verwyder en by te voeg. As u dus 'n ontwikkelingspakket van Microsoft gebruik, moet u die opsie / debug verwyder. U kan ook die volgende riglyne by die bronkode voeg: #pragma comment (linker, "/ RELEASE")

Stap 2

Stel die projek op om te vermy dat die uitvoerbare program soveel moontlik met statiese biblioteke gekoppel word. Gebruik gedeelde weergawes van die onderskeie biblioteke. U kan byvoorbeeld die kode van die C- en C ++ -tydbiblioteke uitsluit deur die skakelopsie / ML of / MT (statiese enkel- en meerdraadige biblioteke) te vervang deur / MD (CRT-DLL met meervoudige drade).

Stap 3

Oorweeg dit om verskillende dele van die exe-module in een saam te voeg. Hierdie metode sal nie 'n merkbare resultaat lewer as die lêer groot genoeg is nie, maar met die aanvanklike modulegrootte van 20-30 kilobytes, kan die wins aansienlik wees. Met die / merge linker-opsie kan u afdelings saamvoeg. U kan dit deur die projekparameters instel: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data of deur gebruik te maak van pragma-aanwysings in die bronkode: #pragma comment (linker, "/ saamvoeg:.text =.data ") # pragma-opmerking (linker," /merge:.reloc=.data")#pragma-opmerking (linker, "/merge:.rdata=.data")#pragma-opmerking (linker," / merge:.idata =.data ") Dit is ook sinvol om die eienskappe van die resulterende afdeling te definieer: #pragma comment (linker," /section:.data, rwe ")

Stap 4

Verminder die grootte van die exe deur die minimum waarde van die grootte van die blokke in te stel langs die grense waarvan die gedeeltes in lyn is. Gebruik die / filealign linker-opsie wat gespesifiseer word deur die projek-eienskappe of die pragma-aanwysing te wysig: #pragma comment (linker, "/ filealign: 0x200") Hierdie metode is geskik vir klein modules.

Stap 5

Probeer die grootte van die exe-lêer verklein deur dit te optimaliseer om die hoeveelheid masjienkode te verminder. Vervang die samestellingsopsies / O2 of / Od deur / O1.

Stap 6

Vervang die standaard DOS-stomp in die exe-module deur u eie, wat die minimum grootte het. Gebruik die opsie / stub linker: #pragma comment (linker, "/stub:mystub.exe") Hier is mystub.exe die naam van die DOS-uitvoerbare lêer wat as stub by die exe-module gevoeg sal word.

Stap 7

Oorweeg om u eie toegangspunt vir die aansoek te spesifiseer. Dit sal die initialiseringskode van die statiese runtime-biblioteke uitskakel. Gebruik die opsie / entry linker, byvoorbeeld: #pragma comment (linker, "/ entry: MyStartup") nietig MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

Stap 8

Pas verpakkingsprogramme soos UPX, ASPack, Themida, PECompact toe op die voltooide exe-lêer. Die module-data sal saamgepers word. Hulle sal in die geheue uitgepak word nadat die aansoek bekendgestel is. Hierdie metode lewer goeie resultate vir groot exe-lêers wat 'n groot hoeveelheid statiese data met lae entropie bevat (byvoorbeeld DIB-rasters in die hulpbronafdeling).

Aanbeveel: