Windows Forms und Visual C++ MACHT KEINEN SINN!



  • Und das mit dem Winforms Deklarationen im Headerfile, überläst jedem selbst die Definition der Actionhandler in eine CPP zu packen.

    Mit Sicherheit einfacher als ne XML Datei vom QT oder WX Designer zu haben wo man sich die Bezeichner raussuchen kann und seine Handler selber Deklarieren kann.



  • C++/CLI wird oft als “Erweiterung” von C/C++ gesehen. Diese Sicht ist aber komplett falsch! Ganz einfacher Beweis: Versuch in einen STL-Vector ein CLR Objekt reinzustopfen (z.B. std::vector). Wenn es gehen würde, dann könnte man C++/CLI als Erweiterung sehen. Es geht aber nicht. Deshalb sind es zwei komplett getrennte Welten!

    std::vector in Windows Forms ist doch gar kein Problem 😕

    Ist bei mir völlig unproblematisch...



  • Was tust du denn in den vector? Wenns ein CLR-Objekt ist, ists nur eine Frage der Zeit, bis es schief geht (wenns überhaupt kompiliert).



  • In dem Vektor speichere ich geschachtelte structs mit "std::string","int" und auch noch "std::vector" der wiederum eine struct mit "std::string" und "int" enthält.

    ich weiß dass diese mixen nicht unbeding guter Code ist, aber bei mir hats bisher geklappt. 🤡
    Auch wenn der Debugger bei globalen Vektoren mir eine falschen Inhalt anzeigt, lokal werden alle Daten richtig ausgelesen. 😃



  • Hallo,

    Ich Rate jedem Anfänger davon ab VC 2008/2010 Express Edition für graphische Oberflächen zu verwenden

    Ich bin z.B. kein Anfänger (und kein Profi), also solche Fragen wie: "wie bearbeite ich den Text von TextBox im Code" hab ich nicht. Ich hab schon mit WinForms einige Programme geschrieben und hab damit eigentlich keine Problemme.

    Wenn man die Anwendung verteilen will, so muss man neben dem .NET-Framework auch die C-Runtime installieren; das muss man bei einer reinen .NET-Anwendung (z.B. C#) nicht

    .NET-Framework installieren? Hat (heutzutage) nicht jedes Windows .NET installiert (mindestest 3.5)? Also die Programme die ich erstellt habe, liefen bei anderen Rechnern (xp, vista, 7) problemmlos! Ausser bei Webbrowser-Programm, da gabs kleines Problemm mit Antivir.

    Soll ich jetzt trozdem (obwohl ich mich mit WinForms und C++/Cli auskene) auf C# oder wxWidgets umsteigen wenn ich graphische Oberfläche programmieren will?
    Ist klar, ich kann tun was ich will, aber als Rat.

    Gibts in Zukunft kein WinForms mit C++/Cli ?

    Klar dumme Fragen, aber ich kenne mich eigentlich gut mit C++/Cli und WinForms aus, und es schein alles zu klappen und zu passen. Ich wollte mal ein Datei-Commander schreiben. Und wenn WinForms kein Zukunft hat dann mach ich das anders.



  • Michael E. schrieb:

    Naja, Windows-Systemprogrammierer haben so ihre eigenen Vorstellungen von "C++" 😞

    Was manche Leute als C++ verkaufen, ist manchmal schon abenteuerlich.

    Edit: Ich zitier mal, was ich grad gelesen hab (von http://c-plusplus.net/forum/viewtopic-var-t-is-263114.html):

    Nexus schrieb:

    Das stimmt bedingt. Wenn du C kannst, musst du dich nicht mehr um prozedurale Dinge wie Schleifen, If-Abfragen, Funktionen etc. kümmern. Falls du Zeiger schon verstanden hast, kommt dir das sicher auch zu Gute. Allerdings gibt es in C++ viele neue Sprachmittel wie Klassen, Templates, Operatoren, Namensräume, Exceptions, etc., die du auch alle lernen musst.

    Das Wichtigste ist aber wohl, dass die Programmierparadigmen in C++ ganz anders als in C aussehen. Man hat viel mehr Möglichkeiten zur Abstraktion und kann fertige Klassen für Anwendungsbereiche wie Stringverarbeitung und Speicherverwaltung einsetzen. Die Philosophie ist eine andere. In C++ verwaltet man nur noch selten manuell Speicher, malloc() und free() braucht man so gut wie gar nie. Oder man benutzt typsichere Streams statt printf() mit variablen Argumentlisten. Es ist von zentraler Bedeutung, dass du dir neue Techniken anschaust, auch wenn die alten aufgrund der Abwärtskompatibilität zu C weiterhin funktionieren. Denn wenn du C in C++ programmierst, hast du C++ noch nicht verstanden.

    @Michael E.:
    Was genau stört dich an dem was Nexus da geschrieben hat?
    Oder hab' ich dich falsch verstanden?



  • ghostboss schrieb:

    Ich hab schon mit WinForms einige Programme geschrieben und hab damit eigentlich keine Problemme.

    das kommt noch 🙂

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-262627-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html



  • ghostboss schrieb:

    Ich bin z.B. kein Anfänger (und kein Profi)

    (...)

    Soll ich jetzt trozdem (obwohl ich mich mit WinForms und C++/Cli auskene) auf C# oder wxWidgets umsteigen wenn ich graphische Oberfläche programmieren will?
    Ist klar, ich kann tun was ich will, aber als Rat.

    Ja, solltest du.
    Ich behaupte nämlich einfach mal ganz frech, dass du dich mit C++/CLI eben nicht wirlich gut auskennst (wenn du schon selbst sagst dass du kein Profi bist). Ist nämlich nicht so, dass das ganze ohne Fallstricke wäre.

    Und natürlich ist C# lernen IMO sowieso angesagt. Und das meiste was man so mit .NET gedöns machen kann geht in C# viel viel VIEL angenehmer.



  • Ok 🙂 , das habe ich schon befürchtet, zum Glück sind die Sprachen ähnlich.

    mfg ghostboss (Konnte mich nicht einloggen)



  • C++/CLI ist doch eine Kombination aus C++ und den Microsoft Spracherweiterungen? 😕 😕 😕



  • Und der Zwang an .NET...



  • Und wie nutze ich dann MSVC++ 2008 zum C++ GUI-Programmieren?

    Kann ich wxWidgets in MSVC++ 2008/2010 einbinden?

    Siehe auch meine Fragen bei "Rund um die Programmierung", "Fragen zum Einstieg in C++"

    Ich bin mämlich am Überlegen ob ich mir C++ beibringe oder mein "Projekt" in VB gestalte.

    DLL's für Scilab, LabView, oder Profilab kann man mit der MSVC++ wohl in Iso C++ erstellen vermute ich, oder?

    Gruß

    Volker


  • Mod

    zarathus schrieb:

    Und wie nutze ich dann MSVC++ 2008 zum C++ GUI-Programmieren?

    Du verwendest z.B. die MFC... ATL.. WTL... Das geht allerdings nicht mit der Express Version.

    Bzw. C++ hat eben nichts mit C++/CLI zu tun!



  • Es ist einfach das Problem das sich kein Autor sich so wirklich an C++/CLR rantraut.

    Sie machen ja fast nur immer die einfachen Dialoge und gehen die Toolbox durch und machen irgend was damit was so kein schein juggt. Manch einer will vielleicht mit C++/CLR ne Datenbank Anwendung schreiben oder so. Oder Systemdaten auslesen.

    Und meisten finde ich Bücher für C# mit ASP.

    Die .Net wurde halt dafür geschrieben das Microsoft immer mehr Programme auf Linux und co. laufen lassen können ohne Probleme.

    Hab Selber angefange mit C++/CLR zuarbeiten und taste mich langsam vorran.

    Mircosoft war doch schon immer so die wollen immer was besseres rausbringen.

    MFG
    City Hunter



  • Warum sollte eine DB-Anwendung in C++/CLI schreiben, wenn dies in C# 10x schneller geht?
    C++/CLI ist eine *reine* InterOp Sprache! Das ist das erklärte Ziel von Microsoft! Wenn man mehr damit macht, dann ist dass Vergewaltigung (und nicht nur der Sprache, sondern auch des Programmierers).



  • Hmmm also ich sag mal was als fortgeschrittener Anwfänger dazu ......
    ich bin auf genau diese Therad gestossen weil ich nach einigen kapitel....Visual C++ aufgefallen ist das ich wieder irgendwie eine andere Sprache fast wieder lerne ...........nur von Sinn her ..
    stimmt das was ich in c und C++ überein..ich bring mir aber gerade C und bei und schiele schon so langsam nach C++ rüber und kommganz gut zurecht ...aber jetzt noch was neues ßßß denke das wird mich verwirren ...

    Natürlich reizen mich schöne Grafikoberflächen ...aber mich reizen auch Microcontroller ....und da bin ich mit C dran das ganze zu verstehen und für mich ist C Elementarer .um sagen wir mal ein wenig hinter die Kulissen zu schauen.

    ..).Ja Zeiger hab ich kapiert *stolz* :p 😃 ):
    was ich damit sagen will ..ich denke es kommt drauf an was man wirklich damit machen will oder eh ich das falsch =?? 😕

    Was mich vielmehr verwirrt ist das ....zum Beipsielkonfigurationssachen sowie Librarys installeríeren und einbinden ..oder so ... das haut nie so richtig hin

    🙄 😞



  • Ich habe mit .NET erst richtig angefangen zu verstehen wie man programmiert. wenn man neu ist und C++ lernt, ist das zeimlich trist und auch einfältig. da ist es einem sehr willkommen, als vorlage "Windows-Forms-Anwendung" vorzufinden. schnell draufgeklickt, etwas damit rumgespielt und der spaß war wieder da. ich finde, dass man mit dem .NET framework den quellcode sehr strukturieren kann und schnell erfolg verspürt. wenn man das mal kapiert hat, kann man auf normales c++ umsteigen. Dass .NET-Anwendungen auch erfolg haben können, sieht man an Paint.NET.
    Häufig benötigte klassen wie lists lassen sich einfach ohne iteratoren durchlaufen, was viel lästigen code verhindert.
    Nicht dass man mich falsch versteht: ich bin hobbyprogrammierer. wenn es mir mal wieder zu langweilig wird, mit c++ zu programmieren, mache ich mal wieder .NET, sowohl C++/CLI als auch C# und Visual Basic.

    grüße paulrei



  • Das ist, wie oft, die entscheidende Frage. Für reine Windows(XP,Vista,Win7,...)-Programme ist .NET, mit C# oder VB.NET, die erste Wahl. Hat man Interesse Richtung Mobil-Geräte ist eher Java, C++ und Objective-C angesagt. Bewegt man sich von Windows weg (hardwarenahe Prog., Linux, Mac,...) ist C, C++ und diverse Scriptspachen wie Python,Perl,Ruby,PHP,... ein Muss.
    Letztendlich lernt man nichts umsonst. Vieles lässt sich auf andere Programmiersystem übertragen. Wer Java berherrscht, hat auch mit .NET kein Problem. Letztlich ist beides das Gleiche, halt von unterschiedlichen Firmen.

    Mein persönlicher Favorit ist C++ und das QT-Framework.



  • Das soll sich ja mit VS11 wieder ändern, CLI bekommt ein Update und Intellisense.

    Nebenbei, sämtliche Fernunis lehren CLI als C++ Windowsprogrmmierung. Der Hintergrund wird warscheinlich sein, dass WINAPI und MFC zu komplex sind für die kurze Zeit und dann ein VS Pro, nicht Express erforderlich ist.



  • klar geht das...ist nur eine frage wie gut man ist


Anmelden zum Antworten