IDE Empfehlung für WIN32 Programmierung



  • Hallo zusammen,

    ich habe eine sehr allgemeine Frage und hoffe, ihr könnt mir mit eurer Efahrung etwas helfen.

    Also ich habe bisher nur in Linux wissenschaftliche Berechnunsprogramme in C++ programmiert, musste mich also weder mit Windows noch mit dem grafischen Layout eines Programmes beschäftigen.

    Nun soll ich aber ein kleines Programm in Windows schreiben, es sollte u.a. z.B. ein Symbol in der Statusanzeige der Symbolleiste haben, Ballonmeldungen zeigen, über rechte Maustaste auf das Icon ein Menü Anzeigen, um es zu beenden, etc. Letztendlich grundsätzliche Sachen, eines benutzerfreundlichen Programmes.

    Mein Frage ist, welche IDE würdet ihr empfehlen, als erstes habe ich mir Visual Express angeschaut, allerdings stören mich dort einige Sachen, wie z.B. dass nur ein Projekt offen sein kann, den Debuging Mode finde ich etwas umständlich und insgesamt hat man einfach den Eindruck, dass es eine Schmalspur-Umgebung ist, was ja auch verständlich ist, da ja sonst niemand die Professional Version kaufen würde. Hat jemand eine vernünftige Alternative, die er empfehlen kann?

    Weiterhin habe ich gesehen, dass ich die MFC Libraries nicht integriert sind, nachdem was ich aber bisher gelesen habe, kann ich mithilfe dieser Bibilothek all die ganzen Icons, Meldungen, etc. erstellen. Gibt es auch alternative Bibliotheken, die ähnliche Funktionen enthalten.

    Hoffe, ihr könnt mir weiterhelfen, bin ein wenig verloren im Moment in der Windos Programmierung.

    Gruß,
    Tom



  • tomasito schrieb:

    dass nur ein Projekt offen sein kann

    Nur so nebenbei: üblicherweise fasst man im VS Projekte, die gedanklich zusammengehören, in einer Projektmappe zusammen. Man öffnet dann die Mappe und alle zugehörigen Projekte sind geöffnet. Ansonsten kannst du mehrere Projekte natürlich mit mehreren VS-Instanzen hinkriegen.

    EDIT: Ich nutze nur das VS und will dir daher nicht aus zweiter Hand irgendwas empfehlen. Aber hier meldet sich sicher gleich einer. Ansonsten kannst du dir hier Anregungen holen: http://c-plusplus.net/forum/viewforum-var-f-is-51.html



  • tomasito schrieb:

    den Debuging Mode finde ich etwas umständlich

    Umständlich? Und du kommst von gdb? 🤡

    tomasito schrieb:

    was ja auch verständlich ist, da ja sonst niemand die Professional Version kaufen würde. Hat jemand eine vernünftige Alternative, die er empfehlen kann?

    Darf ich daraus schließen, daß es kostenlos sein soll?

    Von den MFC würde ich Abstand halten. Modernere Umgebungen wären etwa Visual C++/WinForms oder C++Builder/VCL, oder wenn auch geeignetere Sprachen in Betracht kommen: C#/WinForms oder Delphi/VCL. Visual C++ und Visual C# gibt es, wie du festgestellt hast, auch in einer kostenlosen Edition, Delphi und C++Builder zurzeit nicht. Ansonsten gibt es auch noch den Qt Creator, der ganz gut gemacht ist, aber noch bei weitem nicht die Reife der etablierten IDEs erreicht hat. Qt würde ich mir aber nur dann aufbürden, wenn das Programm mehrplattformfähig werden soll.





  • Jochen Kalmbach schrieb:

    Von C++/WinForms würde ich abraten:
    http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/

    Da stimme ich zwar zu - aber C++/CLI mit WinForms ist zurzeit die einzige kostenlose RAD-IDE für C++. Sofern C++ benötigt wird (etwa um bestehenden Code einzubinden), ist C++Builder sicherlich die bessere Wahl, aber eben nicht kostenfrei.

    Wenn es kostenlos sein muß, aber nicht auf C++ ankommt, würde ich auch die Verwendung von C# nahelegen.



  • Erst einmal danke für die ersten Beiträge.

    Also die IDE sowie die Bibliotheken oder für die GUI Implementierung sollten kostenlos sein. Über den Link von Matze habe ich mich erst einmal über Qt und GTK+ informiert. Da ich nicht auf mehreren Plattformen implementieren will, halte ich GTK für interessant.

    C++ ist mir erst einmal vorgegeben, habe ehrlich gesagt mich noch nie mit C# beschäfftigt, müsste es auf jeden Fall gut begründen können, wenn ich die Sprache wechseln würde. Weiterhin müsste ich natürlich die Einarbeitungszeit von C++ zu C# miteinberechnen.

    Als IDE habe ich mir mittlerweile mal Netbeans angeschaut, habe ich auch schon unter Linux eine Zeitlang benutzt, scheint mir auf jeden Fall eine interessante Alternative zu Visual Express zu sein.



  • Auch bei Einbindung von bestehendem Code, würde ich immer C# für die GUI verwenden! Wenn man Dinge nicht direkt in C# via InterOp machen kann, kann man immer noch für diesen (nicht visuellen Teil) eine Assembly in C++/CLI machen. Genau dafür ist C++/CLI gedacht! (InterOp und sonst nix!)



  • tomasito schrieb:

    Visual Express

    Argh! Das heißt Visual Studio! Sorry, ich musste das jetzt mal verbessern. Man liest das hier unverständlicherweise so unheimlich oft... 😃



  • tomasito schrieb:

    Da ich nicht auf mehreren Plattformen implementieren will, halte ich GTK für interessant.

    Den Zusammenhang verstehe ich nicht. GTK ist genauso eine Cross-platform-UI-Bibliothek wie Qt.

    Der Unterschied ist, daß Qt zumindest nach meiner Beurteilung in allen Belangen deutlich besser wegkommt. Ich finde, bei GTK sind die Programmierschnittstelle und das Resultat gleichermaßen fürchterlich (man sehe sich nur GIMP an). Qt ist unter Windows einigermaßen "good citizen"; das kann man von GTK beim besten Willen nicht behaupten.

    Wenn es also ein Cross-platform-Toolkit sein soll, dann lieber Qt.

    tomasito schrieb:

    Als IDE habe ich mir mittlerweile mal Netbeans angeschaut, habe ich auch schon unter Linux eine Zeitlang benutzt, scheint mir auf jeden Fall eine interessante Alternative zu Visual Express zu sein.

    NetBeans ist eine hervorragende IDE für Java; wie sehr es aber für C++ taugt, weiß ich nicht. Jedenfalls würde es mich wundern, wenn der Debugger mit dem von Visual C++ mithalten könnte.
    Achja, was du am VC-Debugger umständlich findest, würde mich mal interessieren 😉



  • OK, also muss mich entschuldigen, habe da ein paar Sachen durcheinander geschmissen.

    Den Zusammenhang verstehe ich nicht. GTK ist genauso eine Cross-platform-UI-Bibliothek wie Qt.

    Ich brauche definitiv keine Cross-platform-Implementierung. In einem der Berichte, den ich gelesen habe, hörte es sich so an, als würden diese Programme (Qt, PTK+, wxWidgets) auch für single-platform-Implementierung sich eignen, ein weiterer Artikel verneint das eher. Also, entschuldigt den sinnlosen Einwand.

    Habe aber immer noch nicht so ganz klar, was ich nun für die GUI Programmierung brauche.
    -Also es gibt die cross-platform Toolkits, die man kostenlos runterladen kann, die aber wohl für meine Windows Anwendung mehr bieten, als ich brauche. Von MFC wurde mir bereits abgeraten.
    -C++/CLI scheint eine alternative, da ich bereits bestehenden Source Code gebracuhen könnte, es aber einige Nachteile dabei gibt.
    -C# scheint das ganze zu vereinfachen, da die .NET umgebung wohl schon sehr viel für die Entwicklung bereitstellt, scheint aber auch von der Performance langsamer zu sein als eine C++ Implementierung?!

    Nur so nebenbei: üblicherweise fasst man im VS Projekte, die gedanklich zusammengehören, in einer Projektmappe zusammen. Man öffnet dann die Mappe und alle zugehörigen Projekte sind geöffnet. Ansonsten kannst du mehrere Projekte natürlich mit mehreren VS-Instanzen hinkriegen.

    Bei Netbeans war es möglich mehrere Projekte gleichseitig offen zu haben, man wechselt nur das akutelle und kann es kompilieren und starten. Das war praktisch, wenn man in einem grösseren Projekt einzelne Teile erst unabhängig vom grossen Projekt schreibt und es dann nachher einflechtet, oder wenn man halt Teile aus alten Projekten ändern oder kopieren will. Wäre möglich, dass ein erfahrener Programmierer das nicht braucht oder es besser organisiert, ist aber auf jeden Fall eine Funktion, die ich bei Visual STUDIO Express vermisse.



  • tomasito schrieb:

    -Also es gibt die cross-platform Toolkits, die man kostenlos runterladen kann, die aber wohl für meine Windows Anwendung mehr bieten, als ich brauche. Von MFC wurde mir bereits abgeraten.

    Qt ist zwar ein Cross-platform-Toolkit, aber sicherlich nicht die schlechteste Wahl. Trolltech hat sich zwischenzeitlich allerhand bei Borland abgeschaut, etwa für ihren Metacompiler das eine oder andere Delphi-Sprachfeature implementiert und einige Ideen und Konzepte aus der VCL übernommen. Das war durchaus keine schlechte Idee - Qt ist wesentlich einfacher zu benutzen als etwa GTK. Wenn es C++ und kostenlos sein muß, ist Qt wohl die beste Lösung.

    tomasito schrieb:

    -C# scheint das ganze zu vereinfachen, da die .NET umgebung wohl schon sehr viel für die Entwicklung bereitstellt, scheint aber auch von der Performance langsamer zu sein als eine C++ Implementierung?!

    Kann man so pauschal nicht sagen. Managed Code kann dank des JIT schneller sein als nativer Code, ist in der Praxis eher etwas langsamer, und im Allgemeinen macht es keinen erwähnenswerten Unterschied. Wenn du eine sehr performancekritische Anwendung hast und mit .NET auf Probleme stößt, hindert dich niemand, Jochens Hinweis zu befolgen, den kritischen Teil in C++ zu schreiben und in eine separate DLL auszulagern - aber das sollte mich doch sehr wundern. Wenn es einen Flaschenhals gibt, ist das in der Regel nicht die .NET-Runtime, sondern entweder ein suboptimaler Algorithmus oder ein grober Verstoß gegen die Konventionen (etwa Stringkonkatenation statt StringBuilder).

    Du schreibst, daß du "bereits bestehenden Source Code gebracuhen" könntest - wenn du viel davon hast und nicht auf die Schnelle eine gleichwertige, frei verfügbare Implementierung für .NET findest, bietet es sich eher an, Qt und eine C++-basierte Lösung zu nehmen. Die Bindung von C# nach C++ via C++/CLI, wie von Jochen angeregt, ist möglich, aber auf Dauer etwas lästig.


Anmelden zum Antworten