18. september 2000 - 21:45Der er
13 kommentarer og 5 løsninger
små programmer med builder
Findes der en måde at gøre programmer man udvikler med builder (jeg bruger version 4.0)mindre? Jeg har linket mine programmer statisk da de skal virker på alle computere. Der er lidt irreterende at de så allerede fylder 250 kb, uden nogen videre funktionalitet. Findes der måske et andet program, som kan tage alt det udnødvendige ud af mine exe filer?
Er det et problem at de fylder 250kb? Det er en slags minimums-størrelse hvis du vil bruge en grafisk brugergræseflade. Er det et rent DOS-program du laver kan du godt få det ned på 20-30Kb. Men så ser det jo ikke fedt ud..
Mit råd er at ikke fokusere på størrelsen på din exe-fil. Desuden vil der gå lang tid (meget kode) før filen vokser nævneværdigt igen... Det er en slags \"standard-pakke\" som du får med.
Du kan ved at lige dine funktioner ud i dll-filer reducere størelsen på dit hovedrogram, og den computer, hvor programmet så skal køre på, vil kun hente de funktioner der er nødvendig for at køre den enkelte del af det valg de har foretaget i softwaren. Det er da smart...
Det genere mig når man støder ind i programmer som fylder 10-20 kb, som også kører med windows grafiske brugergrænseflade. De er nok lavet med visual c++, som bruger dynmaisk linkings med dll filer, som med 100 % findes på en hver windows maskine (det er er min opfattelse).
Kig på nettet efter XCL - KOL - ACL, det er delphi projecter der får delphi til at lave exe filer på 50kb istedet for ca 300kb, jeg ved ikke om de også kan køre med C-Builder, men du kan da prøve at kigge.
Små filer kan også laves hvis du er interesseret i at lave skummel lavniveau windows-programmering. Hvis du selv vil sørge for at definere dine window-klasser, registrere dem med windows og lave instanser af dem. Men så snakker vil 30-40 linjer kode for at lave et tomt vindue - uden noget i...
SITGC > som lrj sige noget med at \"lave skummel lavniveau windows-programmering\". Men hvis du er 100 meter mester i windows API samt MFC programmering, så go ahead. Hvis du skal have dine programmer meget små er du nødtil at skifte compiler til M$ VC++ den laver små programmer.
Det følgende er et eksempel på en MFC programm der laver en vindue, som du så kan trække en fil ind på for så at få den dumpet til skærmen ....
#include <afxwin.h>
char FileName[51200]=\"\";
class MfcSkellet : public CWinApp { public: virtual BOOL InitInstance(); };
class CMainWindow : public CFrameWnd { protected: afx_msg void OnPaint(); afx_msg void OnDropFiles(HDROP hDropInfo); DECLARE_MESSAGE_MAP(); public: CMainWindow(); };
hele ideen bag Borlands C Biulder er jo netop at det skal være nemt, og alt det grafiske er lavet for dig .. Det må nødvendig vis give en del over heap og deraf følgende stører exefiler ...
En gylden middelvej vil være at linke dynamisk ... Det vil dog kræve du distribuerer dine bibloteker sammen med din exefil ...
Jeg tror vi kan konkludere at det ikke kan lade sig gøre at lave en lille exe nemt, MS C++ snyder jo ligesom VB, fordi de kan benytte sig af MFC runtime lib. som jo kommer med alle windows versioner, så brug det eller slå runtime package til, hvis man kan det i C-builder, det kan man i delphi, hvilket betyder at du så skal sende dine runtime lib. med din exe, så det samlede resultat bliver som regl lidt støre men exe filen er lille.
martinlind> Well, det er ikke helt rigtigt - der \"snydes\" ikke nødvendigvis - du kan rent faktisk bruge windows indbyggede metoder til at generere vinduer med. Og det er en del af operativsystemet.. Så den er god nok :)
Hvis du ikke er til ren winAPI programmering, kan du lave en exe komprimering af din exe fil, til det skal du bruge UPX som kan findes på en af følgende adresser
Findes der et program, der kan tage at konvertere C++ skrevet i builder og til VCL, om til direkte MFC programmering? UPX pakker jo bare koden. Godt nok lidt bedere end zip. Jeg vil ønske at man kunne smide udnødvendig data ud af filen først, også derefter pakke filen.
Det er rigtigt at programmet pakker applikationen, men der kræves ikke noget ekstra program til at kører den pakkede applikation, hele exefilen er pakket sammen, og det er først når applikationen skal køres, at det pakkes ud i hukommelsen, det er altså ikke som en zip fil eller ligende.
Jammen det er der også et helt fint program, men hvad med først at tage det unnødvendig væk fra filen, og dernæst bruge det omtalte program. Det ville være optilmalt.
stigc> Det vil nok være for komplekst at lave et sådant program. Hvad skulle vi så med programmører? Enten må du selv lære MFC (hvilket skulle være svært, og unødvendigt, IMHO), eller evt. bruge en exe-pakker og så leve med størrelsen.
Irj har ret, hvis man virkelig skulle optimere Builder programmerne, skulle man starte med at ændre det meste af koden til selve VCL\'en og jeg kan ikke forestille mig at det ville være spændende. Man kunne måske også bruge MFC vizard\'en det kunne være at den ville give en mere kompakt kode, men igen så bliver det på bekostning af hvad der hedder visuel programmering
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.