c++ desktop - Sprache, um eine Windows-Anwendung zu schreiben, die nicht viel Platz beansprucht




application tutorial (13)

Ich muss eine Windows XP / Vista-Anwendung schreiben, Hauptanforderungen:

  • Nur eine .exe-Datei, ohne zusätzliche Laufzeit, wie Air, .Net; possitably ein paar dlls.
  • Sehr kleine Dateigröße .

Die Anwendung ist für die Verwendung im Netzwerk gedacht, ähnlich wie ICQ- oder Gtalk-Clients.


Answers

Verwenden Sie einfach C / Win32 API.
Unschlagbar (exe <1KB!)


Es hängt davon ab, wie viel UI du benötigst. Der Vorteil von Frameworks wie MFC ist, dass es eine Menge Code für Sie enthält. Allerdings, wenn ausführbare Größe und Abhängigkeiten die Haupteinschränkung sind, kann es ziemlich lustig sein, eine kleine App zu bauen.

Es ist durchaus möglich, eine Windows-Anwendung mit dem Nötigsten zu erstellen (ein Dialog usw.) und gemeinsame Dialogressourcen zu verwenden, die bereits installiert sind (zB commdlg.dll).

Um es so klein wie möglich zu halten, würde ich empfehlen, es mit C ++ zu schreiben, vorzugsweise mit der MSVC-Laufzeit. Die Win32-API ist ziemlich einfach in Bezug auf die wesentlichen Schritte, z. B. Registrieren von Fenstern und Erstellen eines Nachrichtenprozesses.

Können Sie etwas konkreter sein mit dem, worüber Sie mehr erfahren möchten?


Sie können versuchen: C ++ w / MFC. Das ist wirklich der einzige Weg, wie Sie die Größe Ihrer Anwendung ernsthaft kontrollieren können (obwohl das eine Einschränkung ist?).

Wenn Sie noch etwas leichter sein möchten, können Sie die Windows Template Library mit C ++ ausprobieren.


Es hängt davon ab, welche Sprache Sie verwenden möchten.

  • PowerBasic
  • Delphi
  • Microsoft Visual C ++ (mit oder ohne statisch verknüpfte MFC / STL / WTL-Bibliotheken)

All dies wird eine eigenständige .exe ohne die Notwendigkeit für eine Laufzeit erstellen.


Ich würde Delphi benutzen und einen Blick darauf werfen. Delphi kompiliert in eine einzige ausführbare Datei, ist leicht zu erlernen (Objekt pascal), hat eine nette IDE und einen der schnellsten verfügbaren Compiler. Und wenn Sie Turbo Delphbi 2006 bekommen, ist es sogar kostenlos!



Vergessen Sie MFC, wenn Sie keine Laufzeitabhängigkeiten benötigen. WTL ist leicht.


Wie klein ist für dich sehr klein? Ich habe MFC vorher benutzt und unter 200k Dateien bekommen. Obwohl ich nicht weiß, ob Sie mit DLLs aber OK sind.

MFC ist eine ziemlich sichere Wette auf Windows, obwohl es ziemlich alt und hässlich ist (meiner Meinung nach).


Obwohl es bereits erwähnt wurde, ist PowerBasic sehr leistungsfähig, kompiliert schnellen Code bis zu einer einzigen kleinen exe und unterstützt einige sehr fortgeschrittene Funktionen. Es wird als VB6-Alternative angepriesen, aber in vielerlei Hinsicht ist es leistungsstärker und andere Möglichkeiten sind begrenzt, zB: keine nativen Formulare / GUI, aber optionale Extras unterstützen die GUI-Frontend-Entwicklung. Keine nativen Formularsteuerelemente, aber COM wird unterstützt.

Früher bekannt als "Turbo Basic" (aus den alten Borland-Tagen) ist es ziemlich billig, aber nicht kostenlos. Es ist auch ein wenig "schrullig" und gewöhnungsbedürftig.

www.powerbasic.com


FLTK ist eine weitere Option für ein Fast Light Toolkit, es ist auch plattformübergreifend.
Um schnell und einfach auf Windows zu gehen, würde ich wahrscheinlich mit MFC gehen, es ist alt und nicht das sauberste Design, aber die Unterstützung ist in MS-Tools integriert und es ist sehr einfach, eine schnelle Probe zu starten und zu laufen.

ps. Die Verwendung von MFC mit dem kostenlosen Compiler ist ein bisschen schwierig, wenn Sie nur Visual Studio Express haben, würde ich mir etwas wie FLTK ansehen.


Ich mag Windows nicht, nun, ich hasse es. Allerdings würde ich C ++ und Windows-API verwenden. Sie können Visual C ++ Express kostenlos herunterladen oder Eclipse für C ++ verwenden.

Danke für die -9 Jungs! Ich hasse immer noch Windows. Wenige ernsthafte Befehlszeilenprogramme. Primitive Schale. Sehr geschlossene Umgebung. Ineffizient. Unsicher. Mehr wollen?


Eine andere Möglichkeit ist REALBasic. Es erstellt eine native exe, benötigt aber abhängig von den verwendeten gui-Komponenten möglicherweise ein paar DLLs. Die Größe der Basis-EXE-Datei beträgt ~ 3 MB, was für Ihre Anforderungen möglicherweise zu groß ist.


Zwei Dinge:

  1. Die Einrückung ist eigentlich in Ordnung, obwohl sie heutzutage ungewöhnlich ist (und ich persönlich hasse sie): Sie verwenden eine Einrückung von vier, die durch Leerzeichen erreicht wird, aber Tabulatoren für alle Vielfachen von acht verwenden. Dies war früher fast überall der Standard (vor allem ist es immer noch die Standardeinstellung in mehreren Editoren wie Vim). Als Konsequenz wird der Code jedoch nur dann richtig eingerückt, wenn Sie die Tabbreite auf 8 setzen. Der Code sieht also so aus:

    else if (_Where == end())
        {   // insert at end if after last element
            if (_DEBUG_LT_PRED(this->comp,
                _Key(_Rmost()), this->_Kfn(_Val)))
                return (_Insert(false, _Rmost(), _Val));
        }
    

    Was, obwohl immer noch ungewöhnlich, vollkommen logisch und leserlich ist.

  2. Es ist ein guter Stil (oder sogar vorgeschrieben?), Dass die Standardbibliothek nur reservierte Bezeichner verwendet, um Namenskonflikte mit dem C ++ - Code der Kunden zu vermeiden. Diese reservierten Namen sind entweder Namen, die mit einem Unterstrich beginnen, gefolgt von einem Großbuchstaben ( _DEBUG_LT_PRED , _Key ) oder zwei Unterstrichen (nicht in diesem Code, aber der GCC libstdc ++ ist mit __x usw. übersät).

Daher die Buchstabensuppe.

Aber ja, dieser Code wird tatsächlich manuell geschrieben - zumindest im Falle des GCC. Der aktive Quellzweig von libstdc ++ sieht genau wie der obige Code aus und wird nicht automatisch generiert.







c++ windows user-interface mfc windows-xp