C++ wie gehts weiter ?



  • Hallo zusammen,
    das ist jetzt mein erster Beitrag im Forum und ich hoffe noch einiges zu lernen 😉
    Also erstmal zu meinem bisherigen Wissenstand.
    Ich habe das Buch "c++" von Dirk Louis, Markt und Technik durchgelesen und jetzt frage ich mich wie ich weiter machen soll.
    Bisher arbeite ich nur in der Dos-Konsole. Natürlich würde ich gerne Window-Anwendungen und später auch mal Spiele schreiben können, aber das ist wohl noch ein langer, steiniger Weg.
    Mein Problem ist das ich nicht weiss wie ich mich jetzt weiterbilden soll.
    Habt ihr Tuturials oder Bücher zu empfehlen die an meinen Wissensstand einigermaßen anknüpfen können ?
    Oder vielleicht einfach Tipps für Window-Programmierung?
    wäre sehr nett
    cu
    diddy



  • Ich würd mich zwar zuerst mit der STL (die STL gehört zum Standard, wird also bei deinem Compiler dabei sein, der link ist nur ne recht brauchbare STL-Referenz) und boost rumschlagen, wenn ich du wäre, aber wenn du gleich Grafikprogrammierung machen willst - fang erstmal mit GUIs an, also Fenster, buttons usw. Dafür solltest du dir zunächst ein sinnvolles toolkit suchen - mein Favorit ist gtkmm, ein weiteres brauchbares cross-platform-toolkit ist wxWidgets. Mach auf keinen Fall den Fehler, dich mit den Microsoft-APIs wie MFC oder WinAPI rumzuschlagen, die sind wirklich beschissen. Wenn du den Kram geblickt hast, schau dich mal nach sinnvollen OpenGL-Tutorials um, und schau dir mal die SDL an.



  • 0xdeadbeef schrieb:

    und boost rumschlagen, wenn ich du wäre

    Besser nicht. boost ist ganz schön heavy, und gerade für Einsteiger zu "erschlagend". Besser man macht sich erstmal mit der STL vertraut, und wenn man für ein konkretes Problem nichts Passendes parat hat, kann man immer noch in boost nachschaun.

    0xdeadbeef schrieb:

    Mach auf keinen Fall den Fehler, dich mit den Microsoft-APIs wie MFC oder WinAPI rumzuschlagen, die sind wirklich beschissen.

    Naja, darüber lässt sich sicherlich streiten. Bei MFC würd ich dir ja noch Recht geben, aber WinAPI ist schliesslich kein C++. MFC würde ich jedenfalls auch nicht empfehlen, WinAPI kann aber durchaus einen Blick wert sein. Gerade für einfache Spiele Frameworks ist es ganz passabel.

    Für portable GUI Programmierung würde ich eine freie Lib empfehlen, 2 wurden ja schon genannt. Soll es Windows spezifisch sein, dann ist sicherlich C++/CLI empfehlenswert.



  • > Oder vielleicht einfach Tipps für Window-Programmierung?

    Für ein Spiel reicht ein normales Fenster völlig aus - da reichen dir die Tutorials von www.win-api.de

    für mehr würde ich dir den Petzold empfehlen (den ich zwar nicht gelesen habe und auch nicht besitze, aber er soll das Standardwerk sein wenn es um WinAPI geht)

    vielleicht hilft dir aber auch das WinAPI SDK weiter

    im C++ Kompendium stehen ja auch die Grundlagen wie man ein Fenster auf den Bildschirm bringt



  • Gerade, wenn man C++ lernen will, sollte man sich möglichst wenig mit C-APIs rumschlagen, oder? Mal ganz ab davon, dass das WinAPI im Vergleich zu anderen C-GUI-Libs wie GTK auch...naja. Vielleicht Geschmackssache, aber meiner Erfahrung nach ist das WinAPI ziemlich dreckig. Ich meine - ich bin ja schon nicht besonders glücklich darüber, ihm nen Link auf die SDL gegeben zu haben, aber da gibts meines Wissens bisher keine sinnvolle C++-Alternative zu - dagegen gibt es jede Menge sinnvolle C++-Alternativen zum WinAPI.

    Was boost angeht - mal abgesehen von solchen Brechern wie boost.spirit ist boost, wenn man die STL geblickt hat, eigentlich ziemlich simpel zu benutzen. OK, man sollte Operatorenüberladung und templates verstehen, aber dann ist boost wirklich schick.



  • Wenn du Windowsprogrammierung machen willst wäre ein Blick auf .Net vielleicht auch interessant.



  • 0xdeadbeef schrieb:

    Gerade, wenn man C++ lernen will, sollte man sich möglichst wenig mit C-APIs rumschlagen, oder?

    Ich hab das mit WinAPI ja auch nicht unbedingt aufs C++ Lernen bezogen, sondern vielmehr auf

    diddy schrieb:

    Natürlich würde ich gerne Window-Anwendungen und später auch mal Spiele schreiben können

    Klar ist WinAPI kein C++ Traum, dafür hat es einfach einen zu alten Ursprung, basierend auf C. Trotzdem kann es durchaus Spass machen, damit zu arbeiten. Und wenn du die benötigte Funktionalität noch schön C++ like abstrahierst, ist der Lernfaktor umso grösser.

    Ixtana schrieb:

    Wenn du Windowsprogrammierung machen willst wäre ein Blick auf .Net vielleicht auch interessant.

    Wurde zwar schon genannt, aber vielleicht hält doppelt ja besser. 🙂



  • groovemaster schrieb:

    ...

    Ixtana schrieb:

    Wenn du Windowsprogrammierung machen willst wäre ein Blick auf .Net vielleicht auch interessant.

    Wurde zwar schon genannt...

    wo denn? 😕



  • Damit war wohl C++/CLI gemeint.



  • achso, ich hielt es immer für den nachfolger vom 'managed c++' (wußte nicht das mit beidem das selbe gemeint ist) :p



  • enno-tyrant schrieb:

    achso, ich hielt es immer für den nachfolger vom 'managed c++'

    Trotzdem bleibt es .NET.



  • Ich hab mir jetzt mal die Tuts von WinAPI angeschaut. Ich fühle mich leicht überfordert, da ich wirklich noch nicht viel kann und das irgenwie fast gar nichts mit dem gemein hat, was ich schon kenne. Muss man API nutzen oder kann man das auch mit c++ normal machen ?
    Aber ok, ich hab mal den Quelltext von dem Tut [02] in den Compiler kopiert und kompiliert. Dort wurde auch der Header <windows.h> eingefügt.

    #include <windows.h>
    

    dann kommt das hier bei raus:

    WindowTest.cpp(2) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
    

    Ich glaube es liegt daran, dass ich diese Bibliothek <windows.h> nicht habe, wo kann ich die den runterladen ?
    Aber wirklich wichtig ist mir die Frage, ob ich sowie was anderes lernen sollte.
    Erklärt doch mal nen paar Sachen zu .net und C#.
    Von .net hab ich schon viel gehört und gesehen und es würde mich auf jeden Fall interessieren.
    Was brauch ich denn dafür?
    naja vielen Dank auf jeden Fall.
    Jungs ihr habt es drauf 🙂



  • diddy schrieb:

    Muss man API nutzen oder kann man das auch mit c++ normal machen ?

    WinAPI? Nein, das musst du natürlich nicht nutzen. Wenn's was in C++ sein soll, dann gibts andere Möglichkeiten.

    diddy schrieb:

    Ich glaube es liegt daran, dass ich diese Bibliothek <windows.h> nicht habe, wo kann ich die den runterladen ?

    <windows.h> ist keine Bibliothek, sondern ganz einfach eine Header Datei. Wo bekommst du die nun her? Das hängt von deinem Compiler ab. Wenn du zB Visual C++ benutzt, dann benötigst du das Platform SDK (gibts bei MS). Wenn du Dev-C++ hast, dann solltest du mal bei http://www.mingw.org/ vorbeischaun.

    diddy schrieb:

    Aber wirklich wichtig ist mir die Frage, ob ich sowie was anderes lernen sollte.
    Erklärt doch mal nen paar Sachen zu .net und C#.

    C# hat mit C++ nichts zu tun (auch wenn einem einiges bekannt vorkommen wird), sondern ist eine eigene Programmiersprache. Sozusagen MS's Antwort auf Java, speziell entwickelt für .NET. Wenn du mehr Infos dazu brauchst, dann schau mal hier im "C# und .NET" Forum vorbei.

    Aber wie gesagt, du kannst auch .NET mit C++ programmieren. MS stellt 'ne kostenlose Beta von VC++ 2005 schon seit einiger Zeit zur Verfügung (einfach mal hier im Forum danach suchen). Damit kann man schon einiges bzgl. C++/CLI machen. Für den Einstieg jedenfalls sehr nett.



  • Ixtana schrieb:

    Wenn du Windowsprogrammierung machen willst wäre ein Blick auf .Net vielleicht auch interessant.

    Gibt es wirklich leute, die Microsoft Forms, GDI+ usw. benutzen? Also ich weiß ja nicht aber die einzige einigermaßen sinnvolle API von Microsoft ist DirectX.

    sry musste sein 😉



  • BloodLord schrieb:

    Ixtana schrieb:

    Wenn du Windowsprogrammierung machen willst wäre ein Blick auf .Net vielleicht auch interessant.

    Gibt es wirklich leute, die Microsoft Forms, GDI+ usw. benutzen?

    Ja!



  • BloodLord schrieb:

    Ixtana schrieb:

    Wenn du Windowsprogrammierung machen willst wäre ein Blick auf .Net vielleicht auch interessant.

    Gibt es wirklich leute, die Microsoft Forms, GDI+ usw. benutzen? Also ich weiß ja nicht aber die einzige einigermaßen sinnvolle API von Microsoft ist DirectX.

    sry musste sein 😉

    was ist denn daran so schlimm es zu benutzen? (deine Aussage kommt so negativ rüber) Was benutzt du denn?



  • Wenn du erfolgreich mit WinAPI arbeiten willst, was sicher aus historischer und fundamentaler Sicht kein Fehler ist, dann besorge dir den kompletten Dev-C++:

    http://www.bloodshed.net/dev/devcpp.html
    http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe

    Als Tutorials für WinAPI empfehle ich:

    http://www.win-api.de/tutorials.php?SessID=e6bafdf26a916d0f24dc0b850ae4299e&SessID=e6bafdf26a916d0f24dc0b850ae4299e
    http://www.winapi.net/
    http://www.winprog.org/tutorial/
    http://www.henkessoft.de/api1.htm
    http://www.henkessoft.de/WinAPI_7_GDI.htm

    Der Dev-C++ hat auch standardmäßig ein Grundgerüst für ein WinAPI-Programm dabei.



  • Ich halte es aus lerntechnischer Sicht für einen Fehler, weil das WinAPI so ziemlich nichts mit C++ zu tun hat. Es ist nicht mal besonders sauberer C-Code.

    Abgesehen davon versteifst du dich damit auf Windows - wenn du später jemals für ein anderes System entwickeln willst, bringen dir WinAPI-Kenntnisse so ziemlich garnichts.



  • wenn du interesse an .Net hast kannste mich ja mal im icq anschreiben (Nummer 120575904). Ich stand auch vor kurzem vor deinem Problem und hab mich für .Net entschieden. Vielleicht können wir uns ergänzen oder so 🙂



  • hmm komisch ich meinte ich hätte schon mal geantwortet, muss wohl das Fenster zugemacht haben ...´:)
    Inhalt war
    Dankeschön an groovemaster
    Hätte einer Tuts zum Programmieren von Programmen mit eigener Oberfläche
    (nennt man doch Windwowprogrammierung oder?)
    mit C++ und nicht mit WinAPI, da mir das noch zu schwer ist.
    Und ein Punkt war noch ob einer Informationen zu .net hat, aber das muss ich nicht fragen, da schreib ich Ixtana mal an 😉


Anmelden zum Antworten