Wie kann ich mein Programm "kleiner" machen?



  • Hallo,

    Ich habe eine kleines Programm geschrieben mit MSVC++ 6. Es wird lediglich mit Winapi-Befehlen gearbeitet, also keine zusätzlichen Komponenten ausser windows.h und string. Trotzdem ist das Programm nach dem compilieren 172 kb groß. Ich habe das Projekt über Neues Project, Win32Application und dann als leeres Projekt begonnen. Kann mir jemand sagen wie ich das Programm verkleinern kann?



  • Hast du es im Release Modus kompiliert??? Wenn nein, dann mach das mal...



  • seddto schrieb:

    Hallo,

    Ich habe eine kleines Programm geschrieben mit MSVC++ 6. Es wird lediglich mit Winapi-Befehlen gearbeitet, also keine zusätzlichen Komponenten ausser windows.h und string. Trotzdem ist das Programm nach dem compilieren 172 kb groß. Ich habe das Projekt über Neues Project, Win32Application und dann als leeres Projekt begonnen. Kann mir jemand sagen wie ich das Programm verkleinern kann?

    Die grösse eines 'kleinen' Programmes ist relativ, aber vielleicht hast du immer die Debug Version erstellt.
    Erstelle einmal die Release Version (Erstellen|Aktive Konfiguration wählen | Release) und wenn das noch nicht reicht kannst du bei den Projekteinstellungen unter Optimierungen den Eintrag "Speichergrösse optimieren" wählen.





  • Danke für die Antworten 🙂 Das umstellen auf Release hab ich probiert, dadurch ist das Programm jetzt nur noch 36 kb groß. UPX ist auch gut, kenn ich schon.
    Aber ist es denn wirklich richtig, das das kleinstmögliche Programm das man mit Visual C++ erstellen kann 36 kb groß ist?

    Danke & LG

    Seddto 🙂



  • Ich würde mal sagen, es kommt auf die Funktionalität des Programmes an. Wieso ist es dir eigentlich so wichtig das das Programm >36 kb ist???



  • Das Problem ist einfach, das ich das Programm an einige Freunde und Bekannte weitergeben möchte. Deshalb werde ich das Programm auf meinen Webspace legen, und jeder der es gerne haben möchte, kann es sich von dort dann herunterladen. Viele meiner Bekannten haben aber noch ein Modem und deshalb möchte ich die Datei so klein wie möglich halten. Das Programm ist jetzt inzwischen fertig, das cpp Source-File hat eine Größe von 12 kb. Die fertige exe-Datei ist aber fette 52 kb groß. Ich habe lediglich Windows.h, string und stdafx.h eingebunden. Wieso ist die fertige exe dann so groß und wie kann ich sie deutlich kleiner(am besten unter 20kb) machen(ohne komprimieren)?



  • Also, 52 kb ist doch schon sehr klein. Mein Programm hat alleine schon 721 kb und dieses ist nicht grade was weltbewegendes. Also meiner Meinung nach sind 52 kb voll und ganz ok. Wenn du es noch kleiner haben willst kannst du dies in Assembler schreiben, da sollte es dann kleiner sein...



  • was du noch überprüfen kannst:
    - VC++ fügt beim erstellen eines neues project immer noch icons und andere resourcen dazu, kannst alles raus machen.
    - Unter Properties->C/C++->Code Generation->Runtime Library schalte auf Multi-threaded DLL um.
    Ein project mit ner WinMain und nem MessageBox braucht bei mir so 3,5kb



  • @CMATT

    Danke für die Hilfe 🙂 Multi-threaded Dll war der Tipp des Tages, damit ist mein Programm jetzt von 52 kb auf 20 kb geschrumpft. Das ist okay so 😉



  • Toll, dafür brauch man aber auf dem System die DLL.



  • Dafür benötigen deine Freunde aber die ms-runtime dll auf ihrem Rechner.
    Oder Du mußt sie ihnen mitgeben, denn sonst kann es sein, das Dein Programm
    auf dem Zielrechner nicht läuft!

    Gruss
    EB



  • hab eh keine Freunde :p



  • mit einem modem dauert das runterladen einer 52 kb großen exe doch nur 10 sekunden?! das kann doch wohl nicht ernsthaft dein grund sein.



  • Aber die MSVC++ Runtime Library ist bei Windows doch standartmäßig dabei oder nicht?



  • du kannst auch zippen oder den ass code den einfach durchmorsen

    oder binär per sms senden

    also da gibts viele möglichkeiten

    kansnt aber auch als tolles jamba abo anbieten dein kl. proggie

    schicke

    proggie1



  • upx



  • Ja upx kenne ich, aber wie bereits erwähnt wollte ich mein Programm gerade ohne komprimieren noch etwas verkleinern. Ich hab gerade mal auf zwei anderen Computern nachgeschaut auf denen kein MSVC++ und auch kein anderer Compiler installiert ist. Auf beiden System gibt es die MSC++ Runtime Dll, die scheint also auf jedem System standartmäßig mit dabei zu sein oder?



  • Guckst du hier: http://www.nopcode.com/index.shtml und klickst dort "Aggesssive Optimizations for VC++" 😃


Anmelden zum Antworten