Ich war lange Zeit ein All-Time [visual] Basic-Programmierer. Kürzlich habe ich eine nette Android-App gefunden, die C++ lehrt und ich habe sie heruntergeladen, und ich lerne diese Sprache jetzt seit ein paar Wochen.Warum Konsolen-Anwendungen [way] größer sind als GUI-basierte Programme (Windows-Formulare)
Allerdings bemerkte ich etwas deutlich anders in meinen EXE-Dateien. Die C++ - Programme, die von Code :: Blocks generiert werden, sind jeweils etwa 1 MB groß, aber die meisten meiner mit Visual Basic 6.0 und 2010 generierten Programme erreichen kaum 100 KB.
Eine Sache zu beachten ist, dass alle meine wenigen C++ - Programme Konsolenanwendungen sind, und alle meine BASIC-Programme sind GUI-basierte Anwendungen. Also meine Frage ist: ist diese Größe Lücke aufgrund der Art der Anwendung, oder es hat damit zu tun, wie C++ und BASIC-Programme kompiliert werden?
VB.NET wird in wahnsinnig kompakten Bytecode kompiliert, wobei die .NET-Umgebung aus dem System geladen wird, auf dem die Assembly ausgeführt wird. Support-Bibliotheken werden nicht in die Assembly kompiliert. Die C++ - Anwendung wird wahrscheinlich in allen ihren Support-Bibliotheken statisch verlinkt. Sie vergleichen hier Äpfel mit Orangen. – IInspectable
Lass uns sagen, dass du ein einfaches "Hallo Welt" -Programm machen wirst. Die App EXE der Konsole wird etwa 1 MB wiegen, die Windows Form App wird etwa 1 KB wiegen. Nichts Besonderes, Standard-Compiler. – David
Sie sollten versuchen, Ihr C++ - Programm mit Optimierungen zu kompilieren (im Freigabemodus). Ohne Debug-Informationen und mit Space-Optimierungen sind ausführbare Dateien viel kleiner. – Drop