Einstieg in WinAPI
-
Hallo an alle!
Wie viel C++ Vorkentnisse brauche ich eigentlich um in WinAPI einzusteigen. Ich hab mir mal ein paar Anfängertutorials angeguckt und kann mit denen erlich gesagt nicht so viel anfangen. Im Moment bin ich so beim Thema Zeiger, Referenzen, OOP. Brauch ich objektorientierte Programmierung überhaupt für WinAPI und wo bekomm ich die nötigen Windows Kentnisse her?
Danke für Antworten und TipsGrüße Müllfanatiker!
-
Wenn Du mit der Winapi programmieren willst, brauchst Du im Prinzip überhaupt kein C++, denn sie ist voll und ganz auf C ausgelegt. Mit Referenzen und OOP musst Du dich also nicht zwangsweise auskennen, aber Sachen wie Zeiger müssen natürlich richtig sitzen (und wenn Du tatsächlich gerade noch an soetwas dran bist, solltest Du besser noch eine Weile in der Konsole bleiben, Winapi würde Dich nur verwirren).
Ausserdem muss ich noch als Einschränkung sagen, dass ich Dir raten würde, erstmal RICHTIG C++ zu lernen, wenn Du das gerade sowieso machst, auch wenn für die Winapi im Prinzip C-Kenntnisse reichen. Sonst eignest Du dir evtl. einen unschönen C/C++-Mischmasch an, den Du u.U. nur schwer wieder loswirst (ich spreche da aus Erfahrung...).
-
WinAPI is obsolet!
Microsoft ersetzt die WinAPI in den kommenden Windows Versionen. Daher solltest du dich fragen, ob es sich wirklich noch lohnt den Umgang mit dieser umständlichen und umfangreichen API zu lernen.
-
durch was wird denn die WinAPI ersetzt? Warum macht M$ das eigentlich?
Muss man dann die ganzen Systemaufrufe neu lernen?
Und wird dann noch ein Programm unter späteren Win-Versionen laufen, dass auf die WinAPI zugreift?Das würde mich mal fragen.
MFG
-
Wo steht denn das die WinAPI ersetzt wird? Bisher konnte noch niemand eine offizielle Stellungnahme davon hier posten. Genau das gleiche gilt für die MFC, wo auch immer gesagt wird, das sie ersetzt wird. Dabei wird sie von MS offiziell selbst nach WinVista weiter entwickelt.
GEnau das gleiche wie mit C++, das es von C# ersetzt wird. Offiziell sagt aber MS, das nur mit C++ (und somit kein Managed-Code!) zukünftige Windows-Versionen voll ausgenutzt werden können.
Trotz allem lohnt sich das lernen der WinAPI nicht, da es einfach uneffektiv ist, wenn man nicht gerade Treiber prorgammieren will. Lernt lieber MFC, Qt oder wxWidgets!
-
1. Microsoft macht das weil die WinAPI ekelhaft designed ist und auch noch nicht auf der neuen Welle (namentlich: Objektorientierte Programmierung) schwimmt.
2. Ja die ganzen Systemaufrufe werden neu sein.
3. Ja, es wird einen Compatibility-Mode geben.Trotzdem kann es nicht schaden sich hier auszukennen weil es bisher immer die "Basis" von Windows war. Man lernt sehr viel über die inneren Abläufe des Systems und warum etwas wie funktioniert.
@Artchi: Wer sagt, dass C# C++ ersetzt? C# soll Java ersetzen, wie einst dessen komisches J# oder wie die Missgeburt hieß.
das nur mit C++ (und somit kein Managed-Code!)
Warum "und somit kein Managed-Code"?? C++/CLI?
Wo steht denn das die WinAPI ersetzt wird?
Schon Firmen gesehen die Millionen in die Tonne investieren ohne davon Nutzen zu tragen? Nein? Ich auch nicht. Die entwickeln nicht umsonst ein komplett neues GUI-System + Programmierschnittstelle um es dann nicht einzusetzen.
Trotz allem lohnt sich das lernen der WinAPI nicht,
Finde ich nicht - aus den oben genannten Gründen.
da es einfach uneffektiv ist
Meinst du jetzt uneffizient oder uneffektiv?
MfG SideWinder
-
Artchi schrieb:
Trotz allem lohnt sich das lernen der WinAPI nicht, da es einfach uneffektiv ist, wenn man nicht gerade Treiber prorgammieren will. Lernt lieber MFC, Qt oder wxWidgets!
Auch wenn man die MFC, QT, wxWidgets, Borlands VCL oder ähnliches verwendet, wird man bei anspruchsvolleren und systemnäheren Aufgaben nicht um die WinAPI herumkommen, deswegen ist es sehr vorteilhaft, sich mit selbiger einmal näher beschäftigt zu haben.
-
audacia schrieb:
Auch wenn man die MFC, QT, wxWidgets, Borlands VCL oder ähnliches verwendet, wird man bei anspruchsvolleren und systemnäheren Aufgaben nicht um die WinAPI herumkommen, deswegen ist es sehr vorteilhaft, sich mit selbiger einmal näher beschäftigt zu haben.
Bei anspruchsvolleren? Nö
Die WinAPI lohnt sich, wenn man irgend welche Basteleien unter Windows vor hat. Aber bei dem neuen Windows Vista kommt man damit auch nicht weiter, weil die WinAPI dort nur noch ein Kompatibilitätlayer über der neuen Systemapi WinFX ist.
Daher lohnt sich das angucken der WinAPI imho nur, wenn man nicht drum rum kommt. Vor allem als Anfänger leidet der Programmierstil stark unter der WinAPI, da sie zuwider allen guten Programmierrichtlinien entworfen wurde.
-
audacia schrieb:
Artchi schrieb:
Trotz allem lohnt sich das lernen der WinAPI nicht, da es einfach uneffektiv ist, wenn man nicht gerade Treiber prorgammieren will. Lernt lieber MFC, Qt oder wxWidgets!
Auch wenn man die MFC, QT, wxWidgets, Borlands VCL oder ähnliches verwendet, wird man bei anspruchsvolleren und systemnäheren Aufgaben nicht um die WinAPI herumkommen, deswegen ist es sehr vorteilhaft, sich mit selbiger einmal näher beschäftigt zu haben.
Wenn man wirklich mal in diese Situation kommt, kann man sich auch dann noch damit näher auseinandersetzen.
-
SideWinder schrieb:
Trotzdem kann es nicht schaden sich hier auszukennen weil es bisher immer die "Basis" von Windows war. Man lernt sehr viel über die inneren Abläufe des Systems und warum etwas wie funktioniert.
Ich will nicht bestreiten dass es nicht schadet, aber hat es auch einen Nutzen? Wenn ja, welchen? Und wenn nicht, ist es nicht vielleicht doch ein Schaden? Stichwort "Ressourcenverschwendung"?
SideWinder schrieb:
Trotz allem lohnt sich das lernen der WinAPI nicht,
Finde ich nicht - aus den oben genannten Gründen.
Gleiche Frage wie oben - weshalb lohnt sich das lernen des Win-API? Gründe? Beispiele? Hast du dich mit dem Win-API auseinander gesetzt? Ja? Welchen Nutzen hast du daraus gezogen?
audacia schrieb:
Auch wenn man die MFC, QT, wxWidgets, Borlands VCL oder ähnliches verwendet, wird man bei anspruchsvolleren und systemnäheren Aufgaben nicht um die WinAPI herumkommen, deswegen ist es sehr vorteilhaft, sich mit selbiger einmal näher beschäftigt zu haben.
Ja, genau.
kingruedis berechtigten Einwand außer Acht lassend, ein Korollar:
Wenn ich längere Zeit in China lebe werde ich nicht um Chinesisch herum kommen, deswegen ist es sehr vorteilhaft, sich mit Chinesisch einmal näher beschäftigt zu haben.
Selbiges für Quantenphysik, Linguistik & Astrologie herzuleiten bleibt dem geneigten Leser als Übung überlassen...
-
*push*
Wäre evtl. irgendein WinAPI-Guru so freundlich meine Fragen zu beantworten? Vielleicht liege ich ja komplett falsch...
-
finix schrieb:
*push*
Wäre evtl. irgendein WinAPI-Guru so freundlich meine Fragen zu beantworten? Vielleicht liege ich ja komplett falsch...
Hm mal sehen ob ich es dir erklären kann, weshalb die Fragen nicht zu beantworten sind, also nehmen wir mal das Beispiel mit China und Chinesisch. Es lohnt sich nicht einfach so mal Chinesisch zu lernen nur für den Fall, dass man irgendwann einmal in China sein könnte und Chinesisch bräuchte. Wenn man aber bereits Chinesisch gelernt hat, weil man es zum Beispiel in der Schule hatte, dann ist es natürlich praktisch falls man wirklich mal in China ist und wirklich Chinesisch benötigt.
So ungefähr ist das auch mit der winapi, einfach so zu lernen macht keinen Sinn und wird dir nichts bringen.
Wenn man aus Spaß an der Sache die winapi (oder Chinesisch) lernt, dann ist das natürlich was anderes, dann hat man was davon: Spaß
-
Ich will nicht bestreiten dass es nicht schadet, aber hat es auch einen Nutzen? Wenn ja, welchen?
Der nutzen ergibt sich direkt aus der tatsache, dass eben keine layer mehr zwischen dir und windows hängt, was beuteted du wirst gezwungen dich mit den windows-engeweiden zu bschäftigen und die werden auch bei vista noch großteils gleich beiben.
Wen interesiert das API layout, funktionsnahmen, ...? Also mich nicht, ich habe keinen bock alle funktionene auswendig zu lernen, dazu gibts die MSDN.
Es ändert sich also nicht viel zu vista, ich selektiere halt einfach nen anderen funktionsnamen in der MSDN vor dem copy&paste.
Der einzige unterschied sobalb vista kommt zischen leuten die sich mit der WinAPI beschäfigt haben und denen die sagen, mag ich nicht, da alt und keine objekte drinnen, alles bäähh... ist: der WinAPI beschäftiger wei wenigsten so ungefähr was passiert innen drinne passier sobald er CreateProcess aufruft, was der user mode und kernel mode ist, wie der Scheduler funktioniert, was ein kernel object ist, warum TerminateThread böse ist,....hat es auch einen Nutzen?
Wenn du dir diese frage jetzt immer noch stellst ist antwort für klar: für dich keinen.