Windows Forms und Visual C++ MACHT KEINEN SINN!



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



  • Dann könnt ihr gleich auch noch ein der 50000 Threads "Progrmm lĂ€uft auf anderen rechnern nicht mehr" pinnen.



  • Naja, sehe ich ein wenig anders.

    Visual Studio als IDE ist von der Installation die am wenigsten Problematische, und zum arbeiten richtig lecker. Der Compiler unterstĂŒtzt TR1 sowie die 2010 Version schon die angedachten Änderungen zum neuen C++ Standart. Ob das mit der Intellisense so bleibt muß man schauen in der Final.
    Das mit dem Datawizard und anderen Features kann auch sein um die Distanz zwichen Express und Standart etwas zu erhöhen. Aber selbst die Standartversion ist von den Kostenpflichtigen die gĂŒnstigste am Markt.

    Zwichen Manged und Nativ Heaps zu verschieben ist nicht wirklich Trivial, aber darum macht sich kein AnfÀnger Gedanken.
    Allerdings auch nicht Trivial ist es von QStrings von QT4, auf std::strings den Buchstabensalat zu bewegen.

    Das das .Net, in der richtigen Version,auf dem Zielrechner laufen muß, trifft auf jede .Net Sprache zu. Ist mit Sicherheit viel einfacher als QR ,MFC oder WX DLL als AnfĂ€nger auf den Zielrechner zu bekommen ^^.

    NatĂŒrlich ist C++/CLi eine eigene Sprache zu einem Framework, wenn mann es genau bestrachtet dann sind QT , Wxwidget und andere dann aber auch nicht c++ Iso.
    Eigene Strings, eigene Container und co.
    Eigentlich mĂŒĂŸte mann demnach auch alles was nicht Windows, UNIX oder Unix Api ist als nicht C++ bezeichnen.

    Die Beispiele im Netz besziehen sich zwar oft auf C# fĂŒrs .net, aber das ist nicht wirklich entscheident, wichtig ist das man Infos ĂŒbers .Net bekommt und man sich halt den Syntax zu CLI erlernt, der nicht wirklich dramatisch anders als C++ ist. Und dafĂŒr ist wie fĂŒr alle Sprachen ein gutes Buch oder Dozent viel Wert.
    In der Summer einfacher dank Super Doku als andere Frameworks , da ist QT das einzig wirklich gut Dokumentierte leider nicht in Deutsch.

    .Net ob mit c# , VB oder c++/CLi bringt die schnellsten Ergebnisse beim Programmieren.

    Viel wichtiger als die Srachen oder das Framework ist das mann lernt bestimmt Probelem zu lösen, und das man das mit der Sprache macht mit der man am besten klar kommt.

    C# ist zwar die beste Sprache fĂŒr das .Net aber ob das die beste Sprache ist um Programmieren zu lernen bezweifel ich.

    Meine Meinung ist da eher C rudimentÀr, dann C++ und sich dann wirklich alle Frameworks anschauen bei kleinen Projekten, und auch das .Net.
    Und dann mit dem zu arbeiten wo man mit am besten zurecht kommt.
    Und da ist c++ die beste Sprache um in wirklich alles reinzuschnuppern.
    EIn AnfĂ€nger ist mit C# und reiner OOP auch eigentlich ziemlich ĂŒberfordert.

    Das Argument Portierbarkeit, OK.Die Frage muß man sich stellen ob die auch wiklich Notwendig ist. Schau sich mal einer die Marktanteile im CLient Bereich an.

    Was ich aber gut Verstehen kann, wenn mann C++ ganz dolle Lieb gewonnen hat. Und stĂ€ndig einer im falschen Forum die Fragen stellt weil sie denken sie benutzen C++ 😃



  • 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


Log in to reply