Stelle mich vor und bitte höflich um Hilfe



  • Hallo, ich heiße Susanne, bin 36 J. und von Beruf Dozentin im Bereich Maschinenbau.
    Ich habe in den 90er Jahren während meiner Ausbildung mal etwas C programmiert und mich hat seit einiger Zeit das C++-Fieber wieder gepackt und ich hoffe, ich bin hier bei Euch gut aufgehoben, damit ich später auch mal etwas zurückgeben kann. 👍

    Zu meiner Bitte um Hilfe:
    Meine Tochter studiert seit 2013 und kam so an diverse originale Software-Pakete, die sie für ihr Studium (also mind. die nächsten 3 J.) verwenden kann. Eines davon ist das originale "Visual Studio 2012 Ultimate" - Paket.

    Da sie selbst nicht programmiert, habe ich wieder angefangen, ein bisschen zu programmieren. Habe aber unten angefangen und erst mal schön kleine Consolenanwendugen geschrieben. Nun habe ich seit ca. Dez. 2013 etliche -mehr oder weniger gute- Tutorials durchgemacht.

    Mein jetziger Stand ist:
    Consolenanwendungen mit Schleifen, Abfragen, Operatoren verwenden, Dateien ein und auslesen etc. klappt.

    So, nun habe ich mal etwas in Visual C++ 2012 geguckt und dabei vieles Neues entdeckt.
    Allerdings ist da die Fülle an Möglichkeiten so erdrückend, dass ich jetzt seit 4 (!) Tagen lese, YouTube und google und einfach nicht weiter komme.

    Mein Problem:
    WindowsForms gefunden, die ersten kleinen Progrämmchen geschrieben, dann wieder gelesen: "Windows-Anwendungen werden mit VC++2012 mit MFC geschrieben" und und und.

    Was würde ich gerne tun:
    Mit so einem Werkzeug wie WindowsForms einfache Programme schreiben, die ich auf meinem Win7 laufen lassen kann .
    Dabei muss es nicht gar so sehr in die Tiefe gehen.
    Beispiel:[u]
    Von einer Textdatei in ein Array lesen, Daten sortieren nach z.B. Klick auf Button1. Oder ein kleines Wetter-Tagebuch wo ich diverse Daten eingeben kann, die dann in eine Textdatei geschrieben werden. Natürlich unter Verwendung von Schleifen, Abfragen etc.
    Viel mehr wird es nicht werden (obwohl, man weiß ja nie 😋 ).

    Welche Hilfe benötige ich:
    Wie und mit was fange ich am besten an.
    Auch wenn hier die echten Hardcore-C++-Programmierer die Buttom-und-Textfelder-in-eine-Form-ziehen-Programmierer eher belächeln, möchte ich doch gerne diese leichte und schnelle Form der Programmerstellung geniesen.
    Allerdings habe ich nach 4 Tagen googeln und Suchfunktionen auspressen, 5 Kannen Kaffe und wunden Fingerkuppen keinen Plan, wie ich ein neues Projekt richtig anlege (WindowsForms || MFC || ???).
    Zudem finde ich kein geeignetes Buch, was einer Einsteigerin wie mir sinnvoll das beibringt, was ich benötige.
    Von 0 auf 100 geht bei mir halt auch nicht.

    Wie gesagt, mein Grundproblem ist: Ich starte Visual Studio 2012 Ultimate und stehe dann vor einem riesen Berg, der zu bezwingen ist.
    Das Dümmste daran ist, dass es nicht mal an der Code-Erstellung liegt.
    Wenn ich mal weiß, wie ich ein neues Projekt starte, dann klappts auch mit dem benötigten Code.
    Hab ja schon ein paar Test-Projekte mit WindowsForms gemacht. Aber ist WindowsForms das Richtige bei VisualStudio 2012 Ulti.?

    Ja, ich weiß, sehr viel Text. Sorry.
    Aber ich bin mitlerweile echt verzweifelt.

    Vielen Dank im Voraus für Eure Mühen.

    Liebe Grüße
    Susanne



  • VC++Fee schrieb:

    Meine Tochter studiert seit 2013 und kam so an diverse originale Software-Pakete, die sie für ihr Studium (also mind. die nächsten 3 J.) verwenden kann. Eines davon ist das originale "Visual Studio 2012 Ultimate" - Paket.

    Just FYI: http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop

    Die frei verfügbare Visual Studio Express Edition wird für deine Zwecke völlig ausreichend sein... 😉

    VC++Fee schrieb:

    Mein Problem:
    WindowsForms gefunden, die ersten kleinen Progrämmchen geschrieben, dann wieder gelesen: "Windows-Anwendungen werden mit VC++2012 mit MFC geschrieben" und und und.

    Das Problem sind nicht die Windows Forms (auch wenn die schon einige Jahre am Buckel haben). Das Problem da oben ist C++ bzw. C++/CLI, denn mit C++ kannst du sowieso keine Windows Forms verwenden. Und C++/CLI ist für das Entwickeln von GUI nicht gedacht und völlig unbrauchbar. Genau darum findest du in neueren Versionen von VS nichtmal mehr entsprechende Projektvorlagen, Microsoft selbst hält es für eine dermaßen schlechte Idee...

    Und nein, MFC ist hoffnungslos veraltet... 😉

    Was auch immer du tust, lass die Finger von C++/CLI. C++/CLI ist nicht C++. C++/CLI ist ein dunkles Tal, das selbst die erfahrensten Programmierer nur betreten, wenn absolut kein Weg dran vorbeiführt oder wenn sich mal wieder ein Anfänger dort verlaufen hat und gerettet werden muss...

    VC++Fee schrieb:

    Welche Hilfe benötige ich:
    Wie und mit was fange ich am besten an.
    Auch wenn hier die echten Hardcore-C++-Programmierer die Buttom-und-Textfelder-in-eine-Form-ziehen-Programmierer eher belächeln, möchte ich doch gerne diese leichte und schnelle Form der Programmerstellung geniesen.

    Mein persönlicher Rat: Nimm C#

    Mit C# kannst du sehr einfach Windows Forms oder WPF Anwendungen etc. zusammenklicken. C++ ist imo nicht unbedingt die geeignete Sprache für das, was du zu erreichen suchst. Durch deine C/C++ Vorkenntnisse wirst du dich in C# aber sehr schnell zurechtfinden. Und ich denk, dass du dich dort sehr bald zu hause fühlen wirst... 😉



  • Danke dot, für die rasche Antwort (und auch noch um diese Zeit 🙂 )

    Da ich ja bisher nur mit Consolenprogs zu tun hatte, mein Frage:

    Wie aufwändig ist es mit echtem C++ Programme für Windows zu erstellen (also keine Consolenprogs).

    Und 2.: Werden Windows-Progs mir C# in MFC oder WindowsForm-oberfläche geschrieben (zusammengestezt)?



  • VC++Fee schrieb:

    Wie aufwändig ist es mit echtem C++ Programme für Windows zu erstellen (also keine Consolenprogs).

    Konsolenprogramme sind echte Programme für Windows 😉

    Wenn du Anwendungen mit Fensterchen und Knöpfen etc. meinst: Hängt davon ab, was genau du dafür verwendest. Wie gesagt: Wenn du schnell und einfach GUI zusammenklicken willst, nimm C#.

    VC++Fee schrieb:

    Und 2.: Werden Windows-Progs mir C# in MFC oder WindowsForm-oberfläche geschrieben (zusammengestezt)?

    MFC ist eine völlig veraltete Library für C++. Windows Forms sind Teil des .NET Framework. In C# würde man mit .NET arbeiten, dort gibt es z.B. mit WPF aber auch schon wieder neuere Alternativen.



  • Ok, dann erst mal vielen Dank.

    Da ich das originale VisualStudio2012 Ult. nun mal habe, schau ich mir morgen mal ausgiebig C# an, ob ich damit gut klar komme.

    Melde mich dann wider um zu berichten.

    LG Susanne



  • Ich kann dot nur zustimmen. C# ist genau das richtige für Deine Zwecke 👍

    Wir haben hier auch ein eigenes Unterforum für C#.



  • VC++Fee schrieb:

    Von einer Textdatei in ein Array lesen, Daten sortieren nach z.B. Klick auf Button1. Oder ein kleines Wetter-Tagebuch wo ich diverse Daten eingeben kann, die dann in eine Textdatei geschrieben werden. Natürlich unter Verwendung von Schleifen, Abfragen etc.
    Viel mehr wird es nicht werden (obwohl, man weiß ja nie 😋 ).

    Also willst Du gar nicht in die wunderbare Welt des Programmierens einsteigen.
    Ja, nimm C#.

    Falls Du an C++ denkst, lies vorher den neuen Struppi. Es ist inzwischen eine ganz ganz andere Welt.

    VC++Fee schrieb:

    Aber ist WindowsForms das Richtige bei VisualStudio 2012 Ulti.?

    WindowsForms mit "C++", und allgemein C++/CLI ergibt keinen Sinn.



  • VC++Fee schrieb:

    Mit so einem Werkzeug wie WindowsForms einfache Programme schreiben, die ich auf meinem Win7 laufen lassen kann .
    Dabei muss es nicht gar so sehr in die Tiefe gehen.

    Wenn es unbedingt C++ sein sollte würde ich mich noch etwas mit den Grundlagen beschäftigen und dann ein modernes Grafik Toolkit wie openFrameworks oder Cinder nehmen. Da ist der Einstieg recht einfach, Mann kann viele standard C++ Techniken weiterverwenden und die Programme laufen praktisch auf allen relevanten Betriebssystemen.



  • Dürfte ich, wie ich es häufig tue, vorschlagen nicht Windows Forms zu verwenden, sondern den QTCreator samt QT-Framework?
    Der QtCreator ist ansich schon eine schicke IDE und die QT-Libraries bieten umfangreiche Funktionalitäten für diverse Programmieraufgaben, besonders für die GUI-Programmierung, um die es dir (dem OP) scheinbar geht.

    Vorteile:
    Einstellungen braucht man, sofern man schon den passenden Compiler via Visual Studio o.ä. auf dem System hat, gar nichts und kann direkt loslegen. QtCreator bietet ebenso wie die Windows Forms eine Oberfläche zum "zusammenklicken" von Guis.
    Das Design der Library ist sehr schick und die Dokumentation phänomenal. (sowohl im Creator direkt als auch im Internet auf den Seiten von Nokia).

    Zudem ist das ganze Plattformunabgängig d.h. wenn man nur QT oder Standard C++ Funktionen nutzt, ist der Code direkt cross-kompilierbar.
    QT ist in C++ geschrieben und orientiert sich in vielen Dingen (ich kenne beileibe nicht alles) an der Standardbibliothek von C++.

    Würde nie wieder was anderes nehmen (Windowss Forms und wxWidget waren beides GRAUSAM im Vergleich).



  • Ich werde es auch bald wieder mit QT zu tun kriegen und habe sehr viel Angst hiervor:

    https://en.wikipedia.org/wiki/Qt_(framework) schrieb:

    Qt uses standard C++ but makes extensive use of a special code generator (called the Meta Object Compiler, or moc) together with several macros to enrich the language.

    Ich Bauer will nicht fressen 😞



  • nwp3 schrieb:

    Ich werde es auch bald wieder mit QT zu tun kriegen und habe sehr viel Angst hiervor:

    https://en.wikipedia.org/wiki/Qt_(framework) schrieb:

    Qt uses standard C++ but makes extensive use of a special code generator (called the Meta Object Compiler, or moc) together with several macros to enrich the language.

    Ich Bauer will nicht fressen 😞

    vielleicht verstehe ich das falsch aber das macht doch boost ebenso, nicht?



  • asfdlol schrieb:

    nwp3 schrieb:

    Ich werde es auch bald wieder mit QT zu tun kriegen und habe sehr viel Angst hiervor:

    https://en.wikipedia.org/wiki/Qt_(framework) schrieb:

    Qt uses standard C++ but makes extensive use of a special code generator (called the Meta Object Compiler, or moc) together with several macros to enrich the language.

    Ich Bauer will nicht fressen 😞

    vielleicht verstehe ich das falsch aber das macht doch boost ebenso, nicht?

    Nein, Boost arbeitet zwar auch mit Makros, aber es gibt keinen Präprozessor, der zusätzliche Sourcedateien erzeugt.



  • Ich schätze Qt zwar sehr, muss aber auch sagen, dass sich Qt für jemanden der viel Standard C++ insbesondere auch C++11 schreibt, wie eine andere Sprache anfühlt. Qt hat zum einen Erweiterungen der Sprache, aber nutzt auch für viele Standardfälle eigene Lösungen.



  • manni66 schrieb:

    Nein, Boost arbeitet zwar auch mit Makros, aber es gibt keinen Präprozessor, der zusätzliche Sourcedateien erzeugt.

    Das ist genau der Punkt. Sowohl Boost selber als auch mit Boost geschriebene Programme lassen sich mit jedem standardkonformen Compiler ohne zusätzliche Hilfsmittel übersetzen. Zudem Fügt sich Boost meist recht harmonisch in die STL ein und wirkt damit wie eine Erweiterung.



  • Der Einstiegstext ist zwar lang, aber verständlich. Es geht um den richtigen Einstieg mit welchem Compiler
    und welchem Framework bei Grundkenntnissen in C.

    Viele bisherigen Antworten verrennen sich in Details, die hier gar nicht gefragt sind - und bringen somit keine Hilfe.

    WindowsForms war angesprochen und erscheint mir auch geeignet. Dafür braucht man VisualStudio C#
    und einen guten Einstieg.

    Ich empfehle dafür das Buch von Thomas Theis: http://www.c-plusplus.net/forum/313049



  • Gibts eigentlich ein Buch, dass sich an "erfahrenere" C++ler richtet, die für GUI-Zwecke auf C# wechseln möchten, bei Software, deren GUI auf jeden Fall nicht Cross-Platform sein muss, also beispielsweise Auftragsspezialarbeiten? Also das so ein bisschen von dem ausgeht, was man in aktuell modernem C++ so macht und weshalb und wie man das in C# ganz anders macht?
    Ich hab als außenstehender da nicht den nötigen Einblick, aber würde die Tage mal gerne "effektiv" in die Richtung studieren...



  • dot schrieb:

    Wenn du Anwendungen mit Fensterchen und Knöpfen etc. meinst: Hängt davon ab, was genau du dafür verwendest. Wie gesagt: Wenn du schnell und einfach GUI zusammenklicken willst, nimm C#.

    µ schrieb:

    Ich kann dot nur zustimmen. C# ist genau das richtige für Deine Zwecke 👍
    Wir haben hier auch ein eigenes Unterforum für C#.

    volkard schrieb:

    Also willst Du gar nicht in die wunderbare Welt des Programmierens einsteigen.
    Ja, nimm C#.

    berniebutt schrieb:

    WindowsForms war angesprochen und erscheint mir auch geeignet. Dafür braucht man VisualStudio C# und einen guten Einstieg.

    VC++Fee schrieb:

    Ich schau mir morgen mal ausgiebig C# an, ob ich damit gut klar komme. Melde mich dann wider um zu berichten.
    LG Susanne

    So, aus dem einen angekündigten Tag sind ein paar Tage "rumspielen" geworden.

    Was gibt es zu sagen: "Vielen Dank an dot, µ, berniebutt und volkard und die Anderen" !
    Ihr habt mir in einer nie dagewesenen Eile (quasi über Nacht 😉 ) DEN richtigen Tip gegeben. C# ist es, was ich zum "schnellen Programmieren" (zusammenklicken und noch etweas Code dazu) (nicht abwertend gemeint) benötige.
    Volltreffer. 👍 👍 👍
    Jetzt habe ich schön was zu tun. Passt genau zum jetzigen Wetterbericht.
    Schlechtes Wetter = kalt und nass = viel daheim = viel lernen möglich.
    Fazit: Einarbeiten++ 😃

    Allerdings werde ich die C++ Schiene nicht ganz verlassen.
    Hier arbeite ich mich mal tiefer ein. Nicht aber im "Klickverfahren", sondern schön bodenständig. Ich denke zum reinen C++ programmieren (ohne Visual, ohne "klicken") kann ich das: Visual Studio 2012 Ultimate-Paket gut nutzen, oder?

    TNA schrieb:

    Wenn es unbedingt C++ sein sollte würde ich mich noch etwas mit den Grundlagen beschäftigen und dann ein modernes Grafik Toolkit wie openFrameworks oder Cinder nehmen. Da ist der Einstieg recht einfach, Mann kann viele standard C++ Techniken weiterverwenden und die Programme laufen praktisch auf allen relevanten Betriebssystemen.

    Da komm ich bestimmt mal zu gegebener Zeit darauf zurück.
    Hab dann auch wieder einige Fragen wie z.B. "Erste Schritte" (Welche Oberfläche? reine Consolen-Anwendungen oder ??? ("kein Geklicke")) für folgendes:

    Hätte da nämlich viele Ideen.
    Ein Traum wäre es, wenn ich -nach gründlichem Einarbeiten- z.B. über Schnittstellen (werde ich benötigen, denke ich) z.B. Schrittmotoren ansteuern könnte, oder DMX-Controller (Lichtsteuerung) oder ähnlich einer SPS oder CNC-Maschine einen Roboter oder Motoren ansteuern könnte, oder Initiatoren, Schalter auswerten. Oder eine Heizungsanlagensimulation und und und.

    Hierfür ist ja C++ perfekt.

    Könnte so z.B. für meine Klasse mit 2 Schrittmotoren einen kleinen 2-Achsen-Roboter bauen, der auf eintretende Ereignisse reagiert (z.B. if (Teil zum greifen auf der Werkbank vorhanden) {nehm es} else {hole ein neues Teil aus de Kiste} ) oder if (lichtschrankensignar == true) {führe Notausfunktion aus}.
    Phu, mir gehen gerade die Gäule durch...... 😃

    Alles zu seiner Zeit.

    Jetzt ist erst mal Visual C# dran und wenns mir danach ist C++ (das Reine 😃 ).

    Ganz lieben Dank an Euch für die rasche und sehr kompetente Hilfe.
    Ich hoffe, dass ich in der C#-Abteilung auch auf solch hilfsbereite und kompetente Leute treffe.

    Falls ich Euch mal in Sachen Maschinenbau/Metallbe.- und verarbeitung helfen kann, werde ich das selbstverständlich gerne tun.
    Das Leben ist nicht nur ein Nehmen !

    berniebutt schrieb:

    Ich empfehle dafür das Buch von Thomas Theis: http://www.c-plusplus.net/forum/313049

    Stimmt ! Ist top. Hab in den letzten 2 Tagen die ersten 150 Seiten durchgearbeitet und bin sehr zufrienden.

    Bis bald,
    LG Susanne



  • Feedback nach 2 Wochen (muss ja auch mal sein).

    Wie im letzten Beitrag ja schon geschrieben, bin ich Euch sehr dankbar für die Erste Hilfe.

    C# war der richtige Tip. Da kann ich mit Visual C# schnell und leicht einfache Win-Progs erzeugen.

    Allerdings möchte ich mich (wie im letzten Beitrag ausführlicher beschrieben (bitte nachlesen)) dahingehend einarbeiten, dass ich mal kleine Steuerungen (wie z.B. einen einfachen Plotter oder Klein-Maschinensteuerung so ähnliche Dinge) realisieren kann (dann evt. in C++).

    Wenn mir hier jemand weiterhelfen kann, wie ich vorgehe (welche Gebiete/Bereiche müssen erschlossen/erlernt werden (z.B. Schaltugen, E-Technik etc.)), wäre ich sehr dankbar.

    Liebe Grüße
    Susi



  • Vielleicht wäre das für dich:

    http://de.wikipedia.org/wiki/Raspberry_Pi



  • Ja, das wäre eine gute Lösung, um bei einer Ansteuerung einer Klein-Maschine nicht einen PC anschließen zu müssen.

    Was ich aber meinte ist:

    -Ich programmiere z.B. eine Steuerung für eine Klein-Maschine ähnlich einer SPS-Steuerung.

    Wie geschieht aber die Verbindung zwischen PC und Maschine.
    Z.B. Wenn Kolben ausgefahren soll rote Birne leuchten, ansonsten die Grüne.

    Da muss man doch Sensoren etc. abfragen.

    Noch ein Beispiel:
    Auf der einen Seite steht der PC (oder z.B. der Raspberry) und auf der anderen Seite z.B. ein Schrittmotor und ein Sensor (z.B. Handtaster).
    Wenn nun der Taster betätigt wird, soll mein Prog das erkennen und dem Schrittmotor mitteilen, dass 120 Schritte ausgeführt werden sollen.

    Das Prog könnte ich ja in C++ schreiben, aber wie sieht die Verbindung zur "Außenwelt" aus?

    LG Susi


Anmelden zum Antworten