Windows Forms und Visual C++ MACHT KEINEN SINN!



  • Das der Hersteller das Intellisense abschaltet und in der aktuellen Entwicklungsumgebung das Anlegen von neuen Projekten verhindert ?

    Meinte es anders ...
    Anfaenger und Grafik-Programmierung ist eh nen heisses Eissen.
    Grafik geht halt ueber c++ hinaus, ist IMHO kein (gutes) EInsteiger-Thema, weil halt jedes Toolkit sich eher wie ne neue Sprache mit neuen Paradigmen anfuehlt, als wie c++

    Also wer oberflÀchen mit c++ programmiert, sollt schon wissen was er tut.

    Von daher kann ich die Aufregung so recht ned verstehen ...

    konkret:
    Schon mal nen Qt Projekt ohne VS Plugin ohne qmake fuer VS angelegt ? 🙂

    Also mĂŒsste man genau so warnen vor QT + Visual Studio Express (keine Plugins) fĂŒr Anfaenger ...

    macht keiner ...
    Entweder nimmt man den QTCreator, oder VS Studio mit plugin, oder nen Buildgenerator (qmake, cmake)
    OberflÀchen baut man in nem externen Tool zusammen,
    und Intellisense funktioniert auch eher schlecht als recht.

    Ähnliche Liga oder nicht ?
    (keine Ahnung, mache mit CLI nix)

    Ciao ...



  • RHBaum schrieb:

    Das der Hersteller das Intellisense abschaltet und in der aktuellen Entwicklungsumgebung das Anlegen von neuen Projekten verhindert ?

    Meinte es anders ...

    Da gibt es nichts anderes.

    Anlegen von C++/CLI Windows Forms Projekten gibt es nicht mehr ab VS 2012, Basta.

    Die aktuelle GUI Technik fĂŒr .net ist WPF, die fĂŒr Apps WinRT. Beides geht nicht mit C++/CLI, Basta.

    Das erste Visual Studio .net (2002) hatte gar keinen Formular Designer fĂŒr Windows Forms. Was man dann spĂ€ter eingebaut hat, war wie das Werkzeug was dem Billigschrank aus dem Möbelmarkt beiliegt, ein Notbehelf fĂŒr einfache Lösungen. Mehr nicht.



  • RHBaum verwechselt wohl die "normale" C++-Programmierung, fĂŒr die VC12 sowohl GUI-Programmierung unterstĂŒtzt (MFC, WinRT) und die InterOp-Anbindung C++/CLI, die mit den entfernten Projekt-Templates endgĂŒltig als "do not use for anything else than interop" bestempelt wurde...

    MfG SideWinder



  • Hallo allerseits.

    Ich wollte gerade diesen Thread anfĂŒhren, um zu begrĂŒnden, warum ich den Einsatz von C++/CLI + WinForms zur GUI-Programmierung nicht empfehlen wĂŒrde.

    Und dann hat Microsoft eine 180° Wende gemacht...

    Da heißt es hier, C++/CLI sei laut Microsoft nur zur Interop-Programmierung? Pustekuchen:

    http://msdn.microsoft.com/en-us/library/60k1461a(v=vs.110).aspx schrieb:

    The .NET Framework class libraries (by using C++/CLI), STL/CLR, and the C++ Support Library

    For the development of managed apps.

    Über die "Breaking Changes" habe ich auch nichts finden können. In VS2012/2013 funktioniert der ganze Krempel ganz famos.

    Da war das Herausnehmen und degradieren von C++/CLI fĂŒr Interop wohl nur eine nicht umgesetzte Idee...

    Allerdings habe ich VS2011 (gab es das wirklich? In allen Listen kommt nach 2010 immer 2012) nie gesehen...

    Unter .NET Programming in Visual C++ wird es sogar nochmal richtig umfangreich. Es gibt sogar integrationsartikel wie "Using a Windows Form User Control in MFC".

    Ehrlich, Leute, ich bin schockiert. Jetzt muss ich meine ganze Argumentationskette neu aufbauen.
    Aber zumindest habe ich viel gelernt. 😉



  • Ich seh nicht, wo auf der von dir verlinkten Seite auch nur angedeutet wĂ€re, dass C++/CLI fĂŒr irgendwas anderes als interop zu gebrauchen wĂ€re...

    Yamakuzure schrieb:

    In VS2012/2013 funktioniert der ganze Krempel ganz famos.

    In VS 2012 und VS 2013 gibt es nichtmal entsprechende Projektvorlagen. NatĂŒrlich funktionieren alte Projekte weiterhin und man kann natĂŒrlich was basteln, wenn es sein muss. Windows Forms etc. sind nunmal Teil von .NET und in C++/CLI damit zwangsweise auch verwendbar. Das heißt noch lange nicht, dass C++/CLI zur Entwicklung von GUI Anwendungen mit .NET gedacht, gut geeignet oder gar empfohlen ist...

    Yamakuzure schrieb:

    Allerdings habe ich VS2011 (gab es das wirklich? In allen Listen kommt nach 2010 immer 2012) nie gesehen...

    Es gibt kein VS 2011, wĂŒrd mich sehr interessieren, wo du das her hast...
    Es gibt VS 2012, welches die Versionsnummer 11 hat, was, insbesondere nachdem VS 2010 zufÀlligerweise die Versionsnummer 10 hatte, einige Leute zu verwirren scheint...

    VS 2008 <=> VS 9
    VS 2010 <=> VS 10
    VS 2012 <=> VS 11
    VS 2013 <=> VS 12



  • Hallo Yamakuzure,

    aber in deinen Links steht nicht, daß C++/CLI mit WinForms empfohlen wird (und das ist auch gut so). "Managed Apps" bedeutet einfach nur, daß es ein Projekt ist, welche das .NET-Framework benutzt, aber ohne GUI (eben fĂŒr Interop, z.B. als eine Schnittstellen-DLL).
    Unter ".NET Programming in Visual C++" tauchen ja auch explizit keine GUI-Komponenten auf.

    Und das gegenseitige Hosten von WinForms und MFC sehe ich auch nur als Notlösung an (fĂŒr evtl. schon bestehende Komponenten).



  • Th69 schrieb:

    Und das gegenseitige Hosten von WinForms und MFC sehe ich auch nur als Notlösung an (fĂŒr evtl. schon bestehende Komponenten).

    Genau so eine Notlösung eben, wie es dem C++/CLI angedachten Einsatzzweck entspricht. managed/unmanaged interop eben, in diesem Beispiel halt in die andere Richtung...



  • dot schrieb:

    Ich seh nicht, wo auf der von dir verlinkten Seite auch nur angedeutet wĂ€re, dass C++/CLI fĂŒr irgendwas anderes als interop zu gebrauchen wĂ€re...

    "Managed App" ist nicht nur Interop.

    dot schrieb:

    In VS 2012 und VS 2013 gibt es nichtmal entsprechende Projektvorlagen. NatĂŒrlich funktionieren alte Projekte weiterhin und man kann natĂŒrlich was basteln, wenn es sein muss.

    Ach da liegt der Hund begraben. Na, nach neuen "Templates" habe ich ehrlich gesagt nicht geschaut.

    dot schrieb:

    Es gibt kein VS 2011, wĂŒrd mich sehr interessieren, wo du das her hast...

    MissverstĂ€ndnis. Wenn von "VS11" geschrieben wird, dachte ich immer an 2011. Danke fĂŒr die AufklĂ€rung!

    Th69 schrieb:

    aber in deinen Links steht nicht, daß C++/CLI mit WinForms empfohlen wird

    Es muss ja auch nicht explizit empfohlen sein. In dem weiter oben verlinkten Artikel zu den "Breaking Changes" in VS11 ist der ebenfalls oben zitierte Abschnitt nicht mehr enthalten.

    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.



  • 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.


Log in to reply