Native Desktop Anwendung



  • Hallo Community,

    ich brauche etwas Beratung von euch:)

    Ich habe die Aufgabe eine kleine Applikation für einen Windows PC zu schreiben. Dabei war damals die Wahl .NET zu nehmen weil ich da Erfahrung habe und man (denke ich) wesentlich schneller was umgesetzt bekommt.

    Nun ist aber die Anforderung da , dass eine native Anwendung gemacht werden soll, welche ohne Installation (von Frameworks, Runtimes etc.) ausgeführt werden kann. Und zwar von Win XP aufwärts.

    Die Anwendung ist nicht wirklich Komplex. Ein Quasi One-Screen- Diagnose- Tool. mit bissel Grafik und Canvas malerei. (mal lapidar gesagt)

    Ich habe mich etwas schlau gemacht, und denke das Qt eine Cooles Framework sein könnte dafür .. oder was meint Ihr. Oder ehr MFC oder GTK. Bei welchem ist der Einstieg am einfachsten.

    Zu mir .. habe 10 Jahre .NET /WPF programmiert.. und ganz frühr C++ /MFC aber da ehr schlecht als Recht:( Wieder von Managed zu UnManaged Code ist aber trotzdem für mich ne Herausforderung.

    Danke für euere Feedback



  • Bei QT ist die Lizenzierung immer ein Thema, was du im Hinterkopf behalten solltest.
    Dort darfst du ( ohne kostenpflichtige Lizenz ) nur dynamisch linken, d.h. du musst die DDLs mit der Executable ausliefern, wenn du es an Externe weitergibst. Für den internen Hausgebrauch ist der Static-Build aber ok, denke ich.
    Die Lizenzvereinbarung solltest du dir in jedem Fall intensiv durchlesen, damit du nichts falsches machst 😉

    Dennoch würde ich immer sagen: QT! Ich mags gern, auch die Signal-Slot-Mechanik ist mir ans Herz gewachsen, auch wenn manche Sachen, insbesondere im Zusammenhang mit Multithreading da manchmal echt krumpfig sind 😎

    Was ich bei QT nicht mag, ist der Designer vom QTCreator, ist aber Geschmackssache.

    Hier im Forum ist die QT-Community allerdings eher überschaubar, aber ich denke für das was du brauchst, wirst du hier Unterstützung finden.



  • @sointman

    ohne Installation (von Frameworks, Runtimes etc.) ausgeführt werden kann.

    Dann muss es statisch gebunden sein. Eher unüblich.

    Und zwar von Win XP aufwärts.

    Auch das noch.



  • Hallo Danke schon mal für die Beiträge:)

    Ja ich müsste definitiv eine Lizenz kaufen , da dass Tool Kommerziell eingesetzt wird. Aber diese Kosten (soweit verstanden ~400€ im Jahr) werden von meinen Unternehmen dann übernommen😎

    Ja denn Qt Creater is wohl nach ersten Recherchen eine cooles Tool... besser als die Einbindung in VS 2017 (oder nicht!?).

    Aber so ein Designer ist doch mal gar nicht so schlecht.. aus WPF bin ich eben XAML/MVVM gewohnt, was in Qt Konzeptionell ganz anders laufen wird (so wie es scheint).

    Das heißt eine statisch gelinkte Exe 32bit WinXP aufwärts wird ein größeres Problem als von mir naiv angenommen?

    Qt also ne gute Wahl?



  • @sointman
    Ja QT ist aus meiner Sicht nachwievor ne gute Wahl.
    Im QTCreator kannst du mehrere QT-Frameworks (Toolkits heißen die da ) integrieren und dann auch verschiedene Applikationen bauen.
    Das statisch linken ist etwas heikel, bzw. erfordert Einlesezeit. Da können dir hier aber einige bei helfen. Ich habs bei mir auch schon öfter eingerichtet.

    Einziges Manko:

    • Ob der Kram dann unter WinXP32bit läuft kann ich dir allerdings nicht versprechen. Habe ich nie versucht.

    Lässt sich aber schnell rausfinden, indem du jemanden, dem du vertraust, bittest ein Dummy-Frontend (HelloWorldmäßig) statisch in 32bit zu linken und die Exe auf einem WinXp startest.



  • Muss ja nicht sofort schiefgehen... XP testet seit Jahren keiner mehr. Kann sein, dass sich eine API Funktion sich unter Windows 7 so verhält wie gedacht, unter Windows XP aber noch was anderes gemacht hatte.
    Wenn du eh nicht viel GUI brauchst, vielleicht einfach WinApi oder einen der C++ Wrapper dafür verwenden? Ja, Qt ist ein ganz brauchbares GUI Framework, aber es ist auch ziemlich schwerfällig. Wenn du einfach nur WinApi nimmst, hättest du wirklich eine kleine abgeschlossene exe ohne Abhängigkeiten.



  • @mechanics
    Klar. Im Nachhinein (nach dem Dummyfrontend) kann immer noch viel schiefgehen, da er aber keine komplexen Anforderungen hat, könnte er Glück haben. Risikolos ist das natürlich nicht.



  • Für ein kleines unabhänges Programm tut es dann auch die MFC... XP kompatibel wurde ich vergessen, wäre aber mit VS-2017 und entsprechenden Toolsets ohne Probleme möglich.



  • Guten Morgen Allerseits,

    hmm d.h. die Kompatibilität zu WinXP... ok WinAPI bzw. MFC wäre gewährleistet?
    @Martin-Richter welches Toolsets wären den notwendig unter V2017

    Ich tue mir da schon sehr schwer, bei der Wahl der UI Frameworks. Da ich ausm .NET WPF Bereich komme ist das Layouting schon sehr schön und schnell umsetzbar. Das alles Nativ via WinAPI stelle ich mir arg kryptisch vor?

    Allein schon eine Canvas mit paar Geometrien (WPF) in WinAPI (GDI!?) darzustellen is schon mit viel Aufwand verbunden. MFC ist dann schon etwas abstrakter?

    Danke an Euch:)

    EDIT: Ich könnte Qt 5.6.3 nehmen die is noch XP kompatibel!?



  • Was willst Du denn machen?
    Nur ein kleines Programm mit ein paar Eingaben ode komplexe Grafik.
    Inwiefern ist MFC bzgl. GDI abstrakt? Da ist nix abstrakt. Die MFC ist ein purer Wrapper um die GDI, mehr nicht.

    Mir ist das zu theoretisch... ich verstehe Deine Anforderungen nicht.
    Erst ein "kleines" Programm, jetzt WPF-Canvas -Geometrien-Dings-Da-Bums...

    XP Toolset v140_xp aus VS-2015!

    Nachtrag:
    Ich sehe gerade, dass es auch v141_xp gibt:
    https://stackoverflow.com/questions/49516896/how-to-install-build-tools-for-v141-xp-for-vc-2017



  • Hallo Martin,

    also folgendes habe ich vor:

    • Bitmaps zeichnen
    • Listbox mit schönen (bunten) Einträgen -> Symbol und Text
    • Ein Graph (X/Y Achse), mit Grid . Darin werden Geometrien gezeichnet mit ausgefüllten Flächen und Alpha Effekt...
    • Das ganze soll sich auch skalieren wenn man das Fenster groß und klein zieht

    Hoffe Du kannst es dir nun etwas besser vorstellen 😞

    EDIT:
    Habe nur VS2015 (mit WinXP Toolkit), das QT Addin und Qt 5.6.3 32 Bit installiert.
    Kann schon eine "Hello World" Anwendung starten:) yeah 🙂
    Wenn ich aber die compilierte EXE ausm Explorer starten will, fehlt die "Qt5Cored.dll"
    hmm.. müsste er dies nicht auch in das Ausgangsverzeichnis packen!?