.NET und Win API



  • Heyho!
    Ich bin (relativ neu) in C++. Ich habe mich grundlegend mit der ANSI C++-Syntax und der .NET-Syntax, Klassen, Vererbung usw. ausseinander gesetzt. Ich lerne gerade die verschiedensten Klassen von .NET kennen und stoße langsam auf Fragen, die mir Google oder das FAQ nicht richtig beantworten konnten:

    1. Wie soll man denn seine Projekte nun umsetzten? In .NET oder der Win API?
    2. Vergleiche ich hier Äpfel mit Birnen?
    3. Wo sind (in der Anwendung, nicht in der Syntax) die Unterschiede?
    4. Was benötigt man für was?
    5. Was sollte ich lernen?

    Ich fühle mich als kleiner Web-Programmierer in der C++-Welt etwas erschlagen. Ich weiß nicht, wo ich genau hinwill in C++, am besten mal überall schnuppern. Ist WinAPI und/oder .NET dafür zwingend notwendig, wenn es um Windows-Programmierung geht?



  • Ersteinmal ist (imo) C++ und .NET nicht wirklich geeignet. Da benutzt du dann lieber gleich C#. Ist auf die Dauer sicher angenehmer.

    1. Wenn du effektiv arbeiten willst, dann eher .NET. Aber auch .NET arbeitet schlussendlich mit den Mitteln, die die WinAPI bietet.

    2. Ja. 😉

    3. Grob gesagt wird .Net eher in Bereichen, die weniger Zeitkritisch sind eingesetzt.

    4. ? , ähmm. Compiler, Doku, IDE oder was meinst du?

    5. Das kommt auf dich drauf an und was du machen willst. 😉

    Also ich würde dir einfach einmal empfehlen C++ und WinAPI anzuschauen, ev. ein wenig damit zu machen und dann das halt mit C# und .NET zu vergleichen und dann kannst du dich entscheiden, was du lieber magst und dann da dich weiterbilden.


  • Administrator

    Hallo,

    Bevor ich zu deinen Fragen komme, vielleicht einen Punkt 0:
    .Net hat NICHTS mit C++ zu tun! .Net findet man entweder in C++/CLI oder C#, welches beides eigene Sprachen sind. C++ hat mit diesen also nicht wirklich was zu tun.
    Daher kommt vielleicht die Frage: Was programmierst du nun wirklich?

    Nun aber zu deinen Fragen:

    1. Wie soll man denn seine Projekte nun umsetzten? In .NET oder der Win API?

    In C++ gibt es kein .Net, daher wäre nur die WinAPI möglich von den beiden. Man könnte aber auch ein anderes Framework nehmen, welches auf Windows die WinAPI kapselt und somit eine C++ Schnittstelle bietet. Davon gibt es einige, da schaust du am besten mal in den FAQ des GUI-Forums vorbei.

    2. Vergleiche ich hier Äpfel mit Birnen?

    Schon irgendwie, zumindest aus der Sicht von C++. .Net ist ein Framework/API der Sprache C#, während WinAPI eine C Schnittstelle ist, für die Programmierung unter Windows.

    3. Wo sind (in der Anwendung, nicht in der Syntax) die Unterschiede?
    4. Was benötigt man für was?

    Für .Net braucht man C# oder C++/CLI und für die WinAPI C oder C++.

    5. Was sollte ich lernen?

    Kommt drauf an was du willst 😉

    Ist WinAPI und/oder .NET dafür zwingend notwendig, wenn es um Windows-Programmierung geht?

    Um .Net kommst du nicht herum, in C#.
    Um die WinAPI kommst du nicht herum in der Windowsprogrammierung mit C++, allerdings kannst du sie in gekapselter Form anwenden. Also du verwendest eine externe Bibliothek, welche die WinAPI für dich kapselt und in einer hoffentlich angenehmeren Schnittstelle zur Verfügung stellt.

    Grüssli



  • Ahh, ich verstehe. Dann werde ich jetzt mal eher mit C++/CLI unter .NET aufhören und mir 'nen C++-Kompendium mit WINApi kaufen.
    Letze Frage: Sollte man DirectDraw und die anderes Directs besser auf CLI-Basis also .NET oder eher unter den WINApi programmieren? Oder ermöglicht DirectDraw nur eins von beidem?


  • Administrator

    DirectDraw ist soweit ich weiss sowieso veraltet. Inzwischen soll alles über Direct3D laufen. Und wenn man DirectX verwendet, dann würde ich eher zu C++ raten, als zu C# oder C++/CLI. Einfach nur wegen der Performance.

    Falls du C++ und die WinAPI lernen möchtest, so empfehle ich dir, dies in zwei Schritten zu machen. Lern zuerst C++ und lern danach WinAPI. Für C++ werden hauptsächlich die folgenden Bücher empfohlen:

    • C++ Primer
    • Thinking in C++ 1&2 (auch als gratis PDFs verfügbar)

    Für die WinAPI würde ich mal in der FAQ vom WinAPI Forum schauen oder allenfalls dort fragen gehen, was für ein Buch sie empfehlen.

    Grüssli



  • Reicht ANSI C++ als Grundlage für die WinAPI? Hab von Grundlagen über Klassen/Vererbung/Templates alles gelernt. Oder muss ich da noch was erweitern? Ich werd mal fragen 🙂


  • Administrator

    Ad aCTa schrieb:

    Reicht ANSI C++ als Grundlage für die WinAPI?

    Hast du auch wirklich ANSI C++ gelernt? Es gibt viele, welche das behaupten, dass sie dies den Lesern vermitteln, aber oft stimmt es überhaupt nicht.

    Aber mit C++ Wissen und noch etwas C Wissen, sollte es kein Problem sein, die WinAPI zu erlernen, sofern man ein anständiges Buch zur WinAPI hat 😉

    Grüssli



  • Dravere schrieb:

    Aber mit C++ Wissen und noch etwas C Wissen, sollte es kein Problem sein, die WinAPI zu erlernen, sofern man ein anständiges Buch zur WinAPI hat 😉

    Grüssli

    Oder die Doku liest. 😉 - Die ist ja relativ gut.



  • Also in meinem Buch stand ANSI C++, also #include <iostream>, int main() usw. Ich dachte doch, dass es das ist, oder nicht?


  • Administrator

    drakon schrieb:

    Oder die Doku liest. 😉 - Die ist ja relativ gut.

    Ja aa ... aa ... nicht wirklich 🙂
    Ich würde trotzdem zu einem Buch empfehlen. Die MSDN ist mehr ein Nachschlageort, als eine Möglichkeit die WinAPI zu lernen. Ich würde sie sicher neben dem Buch empfehlen, aber ein gutes Buch wird dies wohl selber machen 😉

    @Ad aCTa,
    Sag lieber, welches Buch, dann kann man sich eher eine Meinung bilden. Es geht nicht nur um int main <-> void main oder iostream.h <-> iostream, das sind mehr einfache neues Buch <-> altes Buch, es geht teilweise auch um das WIE. Zum Beispiel auch massiver Einsatz der Standardbibliothek, nicht nur Templateprogrammierung, sondern am besten gleich auch eine Einführung in die Templatemetaprogrammierung, usw. 🙂

    Grüssli



  • Sofern dir der Titel was sagt:

    "Einstieg in Visual C++ 2008"
    von André Willms. Teil 1: ANSI C++, Teil 2: C++/CLI



  • Ich würde trotzdem zu einem Buch empfehlen. Die MSDN ist mehr ein Nachschlageort, als eine Möglichkeit die WinAPI zu lernen.

    Naja. Es ist ja nicht nur die Referenz drin, sondern auch HowTo's, Guides, Beispiele usw. Wenn ich etwas auf der WinAPI wissen will, dann bin ich mit der Doku gut bedient. Da steht ja alles drin. Oder was findest du an der nicht gut?

    btw:
    Templatemetaprogrammierung in einem "normalen" C++-Buch. Du träumst wohl. 😉


  • Administrator

    @Ad aCTa,
    Ich schaue mir dazu Büchervorschauen an und lese das Inhaltsverzeichnis. Und schaue auch von welchem Verlag. Ehm, nur zur Richtigstellung, wir reden hier über dieses Buch?
    Einstieg in Visual C++ 2008 | ISBN: 3836211939

    Also das ist, SCHEISSE.
    Ich meine schon nur, Templates in 8 Seiten ... ACHT SEITEN! VERDAMMT NOCHMAL, A C H T Seiten ... rofl 😃
    Die Standardbibliothek kommt kaum vor! Dabei ist das ein zentraler Bestandteil von C++.
    Du hat vielleicht die absoluten untersten Grundlagen von C++ gelernt, aber ganz sicher nicht vollständiges ANSI C++.

    Das Buch behandelt C++ in ca. 190 Seiten. Bjarne Stroustrup schafft es nicht einmal C++ in 1000 Seiten komplett zu vermitteln.
    Der C++ Primer hat auch >1000 Seiten.

    C++ ist mehr als nur C mit Klassen!

    @drakon,
    Naja, aber immerhin eine Erwähnung, könnte man erwarten. Aber die findet ganz sicher nicht in 8 Seiten statt ... *kopfschüttel*

    Edit: Hab mich so aufgeregt, dass ich ganz vergessen habe, auf die erstere deiner Fragen zu antworten, drakon.
    Die WinAPI hat zwar HowTos usw., aber ein strukturierter Lernprozess über ein Buch, halte ich immer noch für besser. Da muss man sich das Zeug auch nicht erst zusammensuchen gehen. Teilweise weiss man als Einsteiger gar nicht, wonach man suchen sollte.
    Die MSDN ist gut, sogar sehr gut, aber nicht dazu gedacht, dass man mit ihr die WinAPI lernt, sondern dass man die Funktionsweisen nachschlagen kann. Das sind schliesslich zwei unterschiedliche Dinge.

    Grüssli

    PS: Templates in 8 Seiten! Ich glaube ich spinne, als wären Templates ein Abfallprodukt ...


Log in to reply