Grund-wissen/anforderungen für WinAPI
-
Crossbow schrieb:
Dann heisst das also das die WinAPI garnicht auf der OOP basiert sondern einfach auf der nackten C?
Zumindest der größte Teil.
Crossbow schrieb:
Dann würde das ja auch heissen das es da keine Klassen gibt was zum kotzen ist?
Klassen gibt es nur bei COM.
Crossbow schrieb:
Gibt es auch noch ein paar weitere Tutorials für denn Einstieg in die WinAPI. Denn das von win-api.de ist mir für denn Anfang noch etwas zu komplex.
Wenn das Komplex ist frage ich mich was einfach sein soll... vermutlich Consolen-Anwendungen. Da musst Du googlen...
Crossbow schrieb:
I can't english
Dann wird es aber höchste Zeit, dass Du mal mehr lernst
ohne Englisch bist Du beim Programmieren verloren...
-
Lass Dich nicht entmutigen.

Die WinAPI ist nicht so schwer, wie man sich das vielleicht vorstellt. Das Problem ist viel eher, dass sie sehr komplex ist. Im Prinzip rufst Du ja nur Funktionen auf.

Das Problem an der WinAPI ist, dass es eine Bibliothek ist, die über die Jahre gewachsen ist. Entstanden ist sie, als C++ noch nicht das war, was es heute ist, folglich sind ein paar Dinge aus heutiger Sicht evtl. nicht so schön gelöst, damals ging es aber halt nicht anders. Ich glaube die 'relativ' neue GDI+ ist in C++ geschrieben, wo dann auch namespaces etc. verwendet werden, bin mir aber nicht sicher. Ansonsten ist die WinAPI durchaus OO programmiert worden, nur halt in C. Würde man heute in C++ eine Klasse Window anlegen und diese dann ableiten, so hat man bei der WinAPI den Ansatz, dass alle Funktionen, die sich auf Fenster beziehen Parameter besitzen, die ein Handle auf ein Fenster erwarten.
Ein kleines Beispiel:
Heute würde man es so machen:class Window { public: show(); hide(); };In der WinAPI sieht das halt so aus:
ShowWindow(Handle, SW_SHOW); ShowWindow(Handle, SW_HIDE);Daher kann man sich aber auch relativ leicht einen Wrapper schreiben, z.B.
class Window { public: Window() { // code um ein Fenster zu erzeugen } show() { ShowWindow(m_Handle, SW_SHOW); } hide() { ShowWindow(m_Handle, SW_HIDE); } private: HWND m_Handle; }; // Verwendung: Window win; win.show();Naja, ist zwar wesentlich umfangreicher, aber die Idee sollte (hoffentlich) klar geworden sein.
Kämpf Dich durch die Tutorials, es lohnt sich, auch wenn es am Anfang sehr viel ist. Wenn Du ein wenig Geld übrig hast, dann kann ich Dir nur den Petzold empfehlen, den gibt es bei Amazon bereits für 29,90.
Ach ja, und freunde Dich ein wenig mit der MSDN an, die wirst Du auf jeden Fall brauchen.

-
CROSS_BOW -> habe mich gerade nicht geloggt (;
Hi
Mal ne konkrete Frage, wozu ist denn C++ überhaupt da?
Wenn wir die WinAPI C verwendet wird...
Bessergesagt, wozu gibt es überhaupt C++ Compiler bzw. Entwicklungsumgebungen ohne Builder für Windows Fenster so wie bei MFC oder CBB?
Das ist ja der absolute Witz, denn es gibt keine Anwendungen mehr die auf DOS basieren und komerziell angewendet werden.
Was bringen denn somit all diese C++ Tutorials und Bücher wie C++ für Dummies die sich mit der Konsolen Programmierung auseinander setzten?
Das ist ein fertiger Witz.
Gibt es auch WinAPI Bücher die keinerlei Vorkenntnisse in C voraussetzten?
Höchstens ein Grundwissen in der C++ DOS Programmierung.
Also wirklich für absolute Anfänger?MfG Sämi
-
Das wirst du wohl selten finden. Ich kenn zumindest keins.
Cross_Bow schrieb:
Wenn wir die WinAPI C verwendet wird...
Bessergesagt, wozu gibt es überhaupt C++ Compiler bzw. Entwicklungsumgebungen ohne Builder für Windows Fenster so wie bei MFC oder CBB?
Das ist ja der absolute Witz, denn es gibt keine Anwendungen mehr die auf DOS basieren und komerziell angewendet werden.
Was bringen denn somit all diese C++ Tutorials und Bücher wie C++ für Dummies die sich mit der Konsolen Programmierung auseinander setzten?
Das ist ein fertiger Witz.Um mit der WinAPI programmieren zu können, braucht man gewisse Grundkentnisse über C++. Zum Beispiel sehe ich öfters, dass einige statt dieser Methode:
Zahl += 3; Zahl2 -= 5;Diese ewig lange Variante nehmen:
Zahl = Zahl + 3; Zahl2 = Zahl2 - 5;Um sowas zu vermeiden sind gewisse Grundkentnisse nötig.
Mfg Ominion
-
Also wie schon gesagt, das visual studio brauchst net kaufen, wenn du auf mfc verzichten kannst. Meiner ansicht nach ist mfc eh ein sterbender ast.
Nimmt das visual studio express umsonst, das macht alles was man braucht. Man nimmt halt die .NET framework anstatt der MFC.
Fuer windows forms is das programmieren mit .NET einfacher als mit MFC.Die winapi ist immer gut zu kennen, weil auch in .NET benutzt ich sie noch teilweise, wenn .net es mal nicht so macht oder auch um ogl darunter zum laufen zu bringen.
Fuer deine Anwendung wurde ich aber schlicht .NET hernehmen und mit der vc express version, bekommst dafuer alles was du brauchst umsonst, (fuer ein jahr). Dann sollte der das produckt laut plan ca 30-50 euro kosten, was es auch wert ist, denn entgegen der studentenversionen kann man diese auch kommerziell nutzten.
-
Flow_cplus schrieb:
Man nimmt halt die .NET framework anstatt der MFC.
Fuer windows forms is das programmieren mit .NET einfacher als mit MFC.Es ist noch viel einfacher, wenn Du C# verwendest.
Und das .NET-Framework hat nun überhaupt nichts mit der WinAPI zu tun.
-
Jochen Kalmbach schrieb:
Und das .NET-Framework hat nun überhaupt nichts mit der WinAPI zu tun.
behauptet ja auch niemand.
-
Hmmm, habe mich jetzt eigentlich hald mal für Visual C++ entschieden.
Jedoch begreife ich das immer noch nicht so ganz mit dem MFC, Freamworker, .NET, etc.
Wo liegen nun da die unterschiede, und vorallem, was gehört zu was?
Mein beschriebens Programm war nur ein Beispiel!
Das war nicht unbedingt ein Ziel das ich verwirklichen will.
Es wäre zwar ganz nett, aber 1.5 Jahre in so ein Furz zu investieren...
Ich selbst wäre vieleicht auch noch froh für ein Compiler bzw. ne Entwicklungsumgebung oder so, die zwar etwas einfacher als die WinAPI zu bedienen ist so wie eben Visual C++ zum Beispiel oder Visual Studio .NET, die als gute Grundlage für die WinAPI dient.
Fragt sich jetzt einfach wo genau das nun eher der Fall ist, bei vc++ oder bei vsn, oder bei garkeinem?
Und in ner Woch oder zwei gehe ich sowieso bei jemandem aushelfen und verdiene dabei etwas Geld womit ich mir dann schon bald Visual C++ .NET kaufen könnte wenn sich so eine Investition auch wirklich lohnen würde?MfG Sämi
P.s: Nehmt es mit bitte nicht über wenn ich am Anfang noch etwas schwer von begriff bin bzw. Hirnlose Fragenstelle so wie zu Beispiel hier.
Und besonders immer das selbe Frage nur etwas anders formuliert so das ich denn Unterschied nicht mehr finde
^^
-
Cross_BOW schrieb:
Wo liegen nun da die unterschiede, und vorallem, was gehört zu was?
In Windows gibt es Grundsätzlich zwei Welten zu Unterscheiden:
1. Unmanaged (native) (Alte-Welt)
2. Managed (.NET-Framework) (Neue-Welt)Der Punkt 2 gibt es erst seit 2002.
MFC/WinAPI ist noch Punkt 1 (wobei die MFC auch Richtung .NET geht; aber nur wenn man es aktiviert).
Windows-Forms ist .NET und setzt die .NET-Runtime auf dem Zielrechner voraus.Cross_BOW schrieb:
Ich selbst wäre vieleicht auch noch froh für ein Compiler bzw. ne Entwicklungsumgebung oder so, die zwar etwas einfacher als die WinAPI zu bedienen ist so wie eben Visual C++ zum Beispiel oder Visual Studio .NET, die als gute Grundlage für die WinAPI dient.
Als Entwicklungsumgebund Rate ich Dir zu VC2005 Express mit dem aktuellen PSDK:
http://blog.kalmbachnet.de/?postid=58
http://www.c-plusplus.net/forum/viewtopic-var-t-is-130812.htmlCross_BOW schrieb:
Fragt sich jetzt einfach wo genau das nun eher der Fall ist, bei vc++ oder bei vsn, oder bei garkeinem?
Was der Fall? WinAPI. Die WinAPI hat nichts mit einem Compiler oder einer IDE zu tun.
[/quote]Und in ner Woch oder zwei gehe ich sowieso bei jemandem aushelfen und verdiene dabei etwas Geld womit ich mir dann schon bald Visual C++ .NET kaufen könnte wenn sich so eine Investition auch wirklich lohnen würde?[/quote]Besorg Dir zuerst mal die Express-Version, die ist kostenlos und für WinAPI genau das richtige.
-
Andernseits stellt sich zwar trotzdem nochmal's die Frag ob WinAPI Grundkenntnisse bzw. C Kenntnisse für die 3D Spieleprogrammierung wirklich erforderlich sind?
Was meint ihr zu dem Buch von David Scherfgen: 3D Spiele Programmierung?
Reichen da auch solide Grundkenntnisse in der DOS Programmierung?MfG Sämi
-
Boah alter diese Frage kommt nun echt jeden 3.Tag. Und es ist immer die gleiche Antwort. Ja es ging jedem irgendwann mal so als er angefangen hat. Lies dieses Buch dann ist dir danach auch alles klar : http://www.amazon.de/exec/obidos/ASIN/3860631888/qid%3D1143284024/sr%3D8-1/ref%3Dpd_ka_1/302-2410603-1318445
Wenn du zum lesen zu faul bist dann lass lieber die Finger von Winapi. Ist doch alles klar. und dafür brauch man eigentlich nicht jeden 3.Tag einen 10 seitigen Thread!
-
CROSS_BOW schrieb:
Andernseits stellt sich zwar trotzdem nochmal's die Frag ob WinAPI Grundkenntnisse bzw. C Kenntnisse für die 3D Spieleprogrammierung wirklich erforderlich sind?
Was meint ihr zu dem Buch von David Scherfgen: 3D Spiele Programmierung?
Reichen da auch solide Grundkenntnisse in der DOS Programmierung?MfG Sämi
Nimm den visual c++ express version IDE/compiler mit der beschreiben PSDK und moeglicherweise noch der Directx sdk. Spiel mal damit, kauf KEIN buch sondern schau mal ein paar tutorials an in winapi, .NET, dx, ogl etc.... nur so die ersten schritte jeweils.
Wenn du mal ein bischen Gefuehl fuer die Sachen hast, dann entscheide was du lernen willst und kauf dann eventuell ein buch, wenns noetig ist.
-
völliger quatsch wiedermal. ohne petzold kommst du in der windows welt überhaupt nirgends hin. wenn du natürlich irgendein kleiner frickler sein willst dann kauf dir kein buch und folge dem rat von flow cplus
-
Eigenartig: Erst beschwerst Du Dich, daß es Kompiler ohne WinAPI gibt, weil das ja angeblich keinen Sinn macht in Windows-Zeiten, dann fragst Du, ob für 3D-Programmierung DOS-Kenntnisse ausreichen.
Nimm halt mal an, daß es Betriebssysteme gibt, die noch auf Kommandozielen-Ebene arbeiten, zz. B. Linux. Dafür braucht man einfach stinknormales C/C++. Und die meisten Freeware-Kompiler laufen auf beiden Systemen.
flower schrieb:
völliger quatsch wiedermal. ohne petzold kommst du in der windows welt überhaupt nirgends hin. wenn du natürlich irgendein kleiner frickler sein willst dann kauf dir kein buch und folge dem rat von flow cplus
Das klingt eher wie Werbung, ist aber noch viel mehr Quatsch. Die Tutorials, die ich genannt habe, bieten eine sehr gute Grundlage. Ich habe den Petzold gekauft, schaue aber höchstens mal für genauere Recherchen hinein.
-
Gibt es auch noch ein paar weitere Tutorials für denn Einstieg in die WinAPI.
Außer den genannten Tuts findest Du einen einfachen deutschsprachigen Einstieg hier:
http://www.henkessoft.de/C++/WinAPI/WinAPI Kapitel 1 bis 6/api1.htm
http://www.henkessoft.de/C++/WinAPI/WinAPI_GDI/WinAPI_7_GDI.htmEigene Klassen kann man ebenfalls mit WinAPI nutzen, also C++/WinAPI, warum nicht?
Für die Spiele-Programmierung benötigt man nur die Grundfunktionen (Gerüst, Nachrichten-Handling) von WinAPI, da die Grafikdarstellung mit DirectX bzw. OpenGL realisiert wird.
-
Hi
Vielen Dank für eure Antworten und die Nerven^^
Das gestürm ist wohl deswegen da mein Ziel noch etwas verschwommen ist.
Das kommt dadurch das ich mir was vornehme wie zum Beispiel eben die WinAPI und sich anschliessend herausstellt das ich dazu, zu doof bin.
Dann denke ich an was eifacheres wie VC++, dann kommt ihr mit guten WinAPI Tut's die mir hilfreich sind, dann denke ich Juhu es geht, dann raffe ich es aber wieder nicht, und so immer hin und her.
Ich versuchs jetzt dann mal mit den neu aufgelisteden Link's (-;MfG Sämi
-
Nicht entmutigen lassen, wer suchet der findet!

Mir ging das auch so, aber je mehr man sich damit beschäftigt, um so mehr kommt man rein. Die API lernt man nicht über Nacht. Die Tutorials auf Win-API.de und Henkessoft.de bzw. pronix.linuxdelta.de sind hervorragend, aber es wird unumgänglich sein, daß Du sie Schritt für Schritt durchkaust. Schließlich ist das fast so viel Lernstoff wie eine neue Programmsprache.

Was einfacheres als MS-VC++ findest Du nicht, weil alle anderen C++Kompiler (Borland-C-Builder, Bloodshed-DEV-C++) genau so schwierig sind. Liegt an der Sprache...

-
Dann denke ich an was eifacheres wie VC++
VC++ ist nicht einfacher als WinAPI, sondern kapselt diese nur in Klassen.
-
Crossbow: Du verstehst nix, weil die meisten Tutorials eben Mist sind. Unzureichende Erklärungen oder schlichtweg falsche Angaben erleichtern einem das Verständnis eben nicht. Ich verstehe dein Problem aber auch nicht. Wenn dich das Thema echt interessieren würde, würdest du dir eben ein Buch für 30 € kaufen und dann wäre das Thema erledigt. Wer nicht wirklich lernen will, der soll sich nicht beschweren, wenn er auch nichts versteht...
-
hi,
es geht aber auch ohne buch und ich denke ohne buch ist es einfach besser. ein buch endet irgendwann einmal, und dann kommst du an den punkt wo du doch das internetz nutzen musst, also infos suchen etc. wenn man das von anfang an lernt denke ich ist es besser. ich jedenfalls habe mir noch kein winapi-buch gekauft und komme auch sehr gut damit zurecht.
gruss
msp