Windows Forms und Visual C++ MACHT KEINEN SINN!



  • Yamakuzure schrieb:

    Wie dem auch sei, ich danke euch für die Aufklärung. Ich muss also nichts neu argumentieren, Windows Forms Anwendungen mittels C++/CLI sind tote Pferde.

    C++/CLI ist nicht und war niemals zur Entwicklung von Windows Forms Anwendungen gedacht. C++/CLI hat nur einen einzigen Zweck, nämlich managed/unmanaged Interop.



  • Danke Jochen, das ist genau die Antwort, die ich mit meinem Anfänger-Thread haben wollte.
    Ich bin voll in die von Dir beschriebene Falle getreten. und wundere mich, dass ganz einfache Dinge nicht funktionieren.
    Schlimmer noch, ich bin mit der Absicht, C++ machen zu wollen, mit der Installation von VisualStudio Express 2012 nicht in C++ sondern in BisualBasic gelandet, und habe nach vielem Suchen eben ein missglücktes FrageThread gepostet. Hätte ich Deinen Thread doch eher gefunden. Vielen Dank und Bitte an den Moderator, meinen missglückten namenlosen Thread vom 11.11.13 zu löschen.
    Vielen Dank
    EB



  • dot schrieb:

    C++/CLI ist nicht und war niemals zur Entwicklung von Windows Forms Anwendungen gedacht. C++/CLI hat nur einen einzigen Zweck, nämlich managed/unmanaged Interop.

    Die Erstellung von Windows-Forms-Anwendungen ist aber mit VSC++/CLI jederzeit möglich, bietet aber weniger Komfort als mit VSC#!



  • Hi, also der Thread ist zwar schon alt aber egal.

    Ich bin neu bei c++ und kenne mich recht gut mit Java aus. Zu Java gibt es viele gute Quellen im Internet und die Installation ist ziemlich einfach.

    Jetzt wollte ich mich mit c++ vertraut machen, da ich doch recht rechenintensive Anwendungen schreiben.
    Am Ende bin ich auch bei Visual C++ gelandet, da ich nichts gefunden habe, was mir die Installation von C oder C++ ohne Probleme unter Windows ermöglicht/nähergebracht hätte. Visual Studio hatte ich wegen C# sowieso schon.

    Jetzt mache ich die ersten Schritte und habe auch ganz brauchbares Material gefunden, bin aber doch etwas enttäuscht. Bis man mal das passende zu seinen Fragen findet vergeht doch recht viel Zeit, das war bei Java ganz anders (subjektive Empfindung).

    Dafür das C/C++ aber schon so alt ist hätte ich vermutet, das es inzwischen irgendwie nutzerfreundliche Installationsroutinen gibt, irgendwie klare Ansagen, was ich brauche um mit einer guten IDE arbeiten zu können. Vielleicht gibt es sowas irgendwo, wenn man länger suchen mag, aber das ist sicherlich auch ein Grund weshalb Anfänger erstmal abgeschreckt werden...

    Naja ich hoffe nun, dass mir visual c++ den erhofften Geschwindigkeitsschub bringt.



  • Lummel ja das ist wahr ich versuche schon Monate dieses sch*iß SFML zu installieren allerdings klappt es immer nur bis zum punkt wenn man das Programm startet... Es werden alle Befehle erkannt und sobald ich starte klappt das Programm nicht. Das problem ist dass in meinen Programmordnern immer ein zusätzlicher Ortner eingebaut ist in dem die vcxproj files und ein 2. debug folder gespeichert sind und egal in welchen der gleichnamigen files ich nun die SFML Vorbereitungen erledige es wird nicht gefunden ich verzweifle schon langsam 😮 😞 und gerade für einen Anfänger wie mich ist da kein durchsehen...



  • Als Anfänger direkt die dickste IDE zu nehmen ist keine gute Idee, damit hat man dann mehr Probleme als mit der Sprache selbst.
    Es reicht nicht die lib in irgendeinen Ordner zu legen, du musst den Linker anweisen, sie zu deinem Projekt zu linken.



  • SFML ist doch nun wirklich gut dokumentiert.
    http://www.sfml-dev.org/tutorials/2.3/start-vc.php

    Und noch was. Die Tastatur hat eine "," Taste....



  • Hallo !
    Ich bin ein C++ Anfänger und mache noch alle I/O´s via den standard iostream (console). Nun schiele ich natürlich auch schon danach, meine Übungen in eine FensterAnwendung zu implementieren. Da der Thread hier schon knapp 6 Jahre alt ist, hätte ich gern gewusst ob sich an der .NET impementierung in C++ mittlerweile was geändert hat. Dann würde ich noch gerne nach Online-Referenzen zu den Libraries fragen: Angenommen ich möchte jetzt besagtes Fenster öffnen,

    1. Woher weiss ich nach welcher Funktion ich in welcher Library suchen muss ?
    2. Wo finde ich dann auch Dokumentationen der Funktion (Parameter, Einbindung in meinen Code usw.) ?
    3. Wäre dass dann die direkte WIN32/MFC Programmierung ?

    Wäre toll wenn Ihr mir ein paar Links geben könntet auch gern in English !

    Dankeee ! 🙂



  • Nein, die Situation hat sich nicht geändert - eher noch verdeutlicht.

    C++/CLI ist nicht ISO C++. Der Zweck von C++/CLI ist die managed Welt (.NET) mit der nativen Welt zu verbinden, falls nötig. Aufgrund der Interoperabilität der Sprache bietet sie viele, viele Fallstricke.

    Auf keinen Fall kann ich deshalb diese Sprache empfehlen, um Programmieren zu lernen - das Frustpotenzial ist zu gross und das gelernte oftmals sehr spezifisch. Es gibt offenbar Lehranstalten (Fern Uni o. ä.) die ihre Kurse auf C++/CLI aufbauen (siehe die vielen Fragen zu der Lagerverwaltung) - das ist für mich absolut nicht nachvollziebar.

    Wenn du schon bei .NET bist, empfehle ich dir C# zu benutzen (für Consolen-, Fenster-, Serviceanwendungen etc.).

    Wenn du mit ISO C++ ein GUI machen möchtest, guck dir mal Qt, GTK oder ähnliches an (von mir aus auch MFC). Da gibt es auch entsprechende Dokumentation und Beispiele.

    Direkt die WinAPI zu bemühen ist mühsam - geht aber natürlich grundsätzlich, hier ein Walkthrough: https://msdn.microsoft.com/en-us/library/bb384843.aspx



  • Ja vielen Dank,
    ich werde mir dann wohl sowohl Qt als auch MFC mal genauer angucken, WIN_API kann man mal später reingucken. .NETframework als Basis muss ja auch gar nicht sein, wollte einfach nur einen schnelleren Zugang zur GUI Programmierung haben )

    EDIT: Hab jetzt mal Qt und wxWidgets getest, so far so good, aber warum kann ich in Qt nur x64 exe´s und in wxWidgets nur x86´er generieren? Mein system: Win8.1 x64, VS 2015. Mir gefällt Qt wegen der Integrierung vom Designer direkt in VS.



  • verstehe ich das richtig das in VS2017 CLR = dieses CLI ist?



  • Ja, die Common Language Runtime (CLR) ist eine Umsetzung vom Virtual Execution System, die Bestandteil der Common Language Infrastructure (CLI) ist - und C++/CLI ist eine der .NET-Sprachen, basierend auf diesem Standard.



  • hmm, danke.

    Jetzt suche ich seit 2 Wochen nen Compiler für c++ mit Window Designer.
    In VS2017 C++ CLR hab ich schon den Fensterdesigner hinbekommen jedoch ist es nicht so wie ich C++ aus einem Buch erlerne/oder ich habe noch einen Denkfehler mit dem includieren.

    Gibt es denn eine aktuelle Liste von c++ compilern mit Window Designer?



  • Wenn du (nativ) C++ mit GUI programmieren möchtest, dann schau mal in [HOWTO] Welches Toolkit für GUIS? (ich persönlich würde QT empfehlen, evtl. sogar direkt den QT Creator als IDE, da dieser dann auch einen UI-Designer integriert hat).

    Und für .NET-Anwendungen mit GUI würde ich dir C# als Sprache empfehlen (mit Visual Studio und dessen integriertem UI-Designer).



  • dannert schrieb:

    In VS2017 C++ CLR hab ich schon den Fensterdesigner hinbekommen jedoch ist es nicht so wie ich C++ aus einem Buch erlerne/oder ich habe noch einen Denkfehler mit dem includieren.

    Ich rate dringend von Büchern ab die noch mit C++ und Windows Forms arbeiten, da C++/CLI auch nicht C++ ist, du lernst also effektiv eine Sprache (noch dazu eine die eigentlich nur in seltenen Fällen einen Sinn ergibt - z.B. als reine Vermittler-DLL zwischen C++ Code und .NET Code [häufig C#]).

    dannert schrieb:

    Gibt es denn eine aktuelle Liste von c++ compilern mit Window Designer?

    Vielleicht ist die Frage nur bedingt sinnvoll. Du solltest auf jedenfall ein paar Aspekte berücksichtigen:
    0. Es gibt kein "Standard" C++ UI-Framework
    1. Fest eingebaute Fensterdesigner deuten bei C++ zwar nicht immer, aber doch recht häufig darauf hin, das du an die IDE gebunden bist. Häufig sind die C++ UI-Frameworks auch nicht wirklich schöner C++ Code.
    2. Du solltest dir möglichst früh überlegen, was deine Ziele sind (ist z.B. Plattformunabhängigkeit gewünscht oder nicht)

    Die mir bekanntesten UI-Frameworks, die man mit echten C++ nutzen kann [aber teilweise C-Frameworks sind], sind QT, MFC, wxWindows, GTK+ und VCL. Heutzutage würde ich von MFC und VCL abraten und tendenziell zu QT (obwohl ich es nicht mag - was aber für alle C++ UI-Frameworks gilt) raten.

    Das wäre dann wohl als IDE der QT Designer, alternativ über VS-Addin (sofern noch gepflegt) mit Visual Studio.



  • Ich Danke euch beiden für den Wegweiser.

    Gelernt und viel geschrieben habe ich mit Delphi7 /Pascal.Durch grafische Trikserein sind diees Progs aber im Ram gewaltig gross und lassen auch mal ein Rechner aufhängen.

    zu 0: das C++/cli (CLR) etwas eigenes ist hab ich erst durch dieses Forum erfahren.
    zu 1. ich dachte immer das der Designer nur die Schreibarbeit mindert.Von daher bin ich auch davon ausgegangen das VS2017 solch einen Designer integriert und standardisiert hat.Was mich die letzten 3 Tage verwundern lies. Form1 startet, button-> F1 selbst schliessen und Form2 zeigen, form2, button-> sich selbst schliessen und form1 anzeigen. Form1 wieder anzeigen habe ich nicht geschaft.
    zu 2. Die Plattformunabhängigkeit und mit der Möglichkeit (irgendwann) Richting Hardware compilierung.

    Seit2,5 Wochen lese ich mich ein und bin immer noch auf 0;

    Hab gerade qt creator Installiert und als erstes mal sehr viel Beispiele und hilfen. Da Denk ich das ich damit mal weiterkomme.



  • dannert schrieb:

    Gelernt und viel geschrieben habe ich mit Delphi7 /Pascal.Durch grafische Trikserein sind diees Progs aber im Ram gewaltig gross und lassen auch mal ein Rechner aufhängen.

    Nach meiner Erfahrung ist das fast typisch bei der intensiven Nutzung von RAD-Tools. Das heißt nicht, das ich gänzlich gegen Designer bin, aber man sollte immer direkten Eingriff auf den erzeugten Code haben (Delphi/C++ Builder mit der VCL ist für mich Beispielsweise ein absolutes Negativbeispiel).

    Ein guter Designer muss aus meiner Sicht gut lesbaren Code (muss nicht unbedingt in der Programmiersprache gehalten sein, aber lesbar - z.B. XAML bei C# und WPF) erzeugen und sowohl die Bearbeitung über den Designer als auch den erzeugten Code erlauben.

    dannert schrieb:

    das C++/cli (CLR) etwas eigenes ist hab ich erst durch dieses Forum erfahren.

    Ja, leider wird das in einigen Büchern auch nicht wirklich hervorgehoben und zunächst reines C++ gelehrt und dann mit C++/CLI "verwaschen".

    dannert schrieb:

    ich dachte immer das der Designer nur die Schreibarbeit mindert.

    Du kommst von Delphi und hast dich noch nie mit den dfm-Dateien herumgeärgert?

    dannert schrieb:

    Von daher bin ich auch davon ausgegangen das VS2017 solch einen Designer integriert und standardisiert hat.

    In C++ viel die Entscheidung auf schlanke Bibliotheken, somit wurde nur die Sprache als auch eine relativ schlanke Standardbibliothek standardisiert. Es gibt keine Standardisierte GUI-Bibliothek, gleiches gilt für Datenbankzugriffe... Das unterscheidet die Sprache massiv von Anderen wie Delphi, Java und C# die allesamt umfassende Bibliotheken mitbringen.

    dannert schrieb:

    zu 2. Die Plattformunabhängigkeit und mit der Möglichkeit (irgendwann) Richting Hardware compilierung.

    Was verstehst du unter Hardwarecompilierung. C++ wird immer Plattformbezogen nativ kompiliert (anders als z.B. Java oder C#, die üblicherweise nur zu einem Metacode übersetzt werden - aber mittels Tools auch native kompilierung erlauben).



  • Macht dieser Thread hier eigentlich noch Sinn ?


  • Mod

    An der Sinnlosigkeit hat sich doch nichts geändert... 😉

    Oder was meinst Du?


Anmelden zum Antworten