Die WinAPI Plattform

Tutorials

Tutorial Nummer 00

(00.) Einführung/Vorwort

Die folgenden Tutorials behandeln die grundlegenden Prinzipien und Techniken, wie man mit Hilfe der Windows API (Application Programming Interface) Windows Programme erstellt. Dies ist sicher nicht der einzige Weg, aber meiner Meinung der Erste. Denn ohne die Kenntnisse über die Funktionsweisen und Hintergründe von Windows kommt man auch mit einer objektorientieren Bibliothek (wie der MFC - Microsoft Foundation Classes) irgendwann an einem Punkt, an dem man entweder aus Geschwindigkeitsgründen oder einer besonderen Aufgabenstellung, die die objektorientierte Bibliothek nicht vorsieht, wieder auf die Windows API zurückgreifen muss. Außerdem sollte ein guter Programmierer genau wissen, was und wie seine Bibliotheken arbeiten, damit er sich im Notfall auf eine andere Lösung stützen kann. Jedoch sollte man sich mit guten Windows API Kenntnissen auf jeden Fall eine dieser Bibliotheken anschauen, denn sie haben auch Vorteile. Zum Beispiel ist die Entwicklungszeit häufig wesentlich geringer.

Warum jemand in die Windows Programmierung einsteigen soll, brauche ich wohl keinem mehr zu erklären. Niemand möchte einem Anwender noch eine Dos Umgebung zumuten. Jedoch sollte man die Programmiersprache C bzw. C++ gut beherrschen. Denn die Windows API eignet sich schlecht bis garnicht für ein Studium dieser Sprache. Die Sprachmittel und den Syntax der Programmiersprache kann man viel besser an einem textorientierten System lernen, wie etwa die Windows Dos-Box. Nach sehr langem diskutieren, habe ich mich entschieden, die Beispiel Programme der Tutorials in "plain C" zu schreiben. Dies sollte für den C++-Programmierer aber kein Problem darstellen. Jedoch sollte ein C++-Programmierer in den Übungen auch die Vorteile seiner Sprache ausnutzen.

Die Übungen am Ende jedes Tutorials solltest du nach besten Wissen versuchen zu lösen. Wenn du aber auch nach längerer Zeit nicht auf die Lösung kommst, kannst du in dem Beispielcode nachschauen. Jedoch werden die meisten Probleme nicht Probleme mit der Windows API sein, sondern fehlende Kenntnisse der Programmiersprache oder des Algorithmus'. In diesem Fall solltest du dein Wissen der Programmiersprache und der Sprachmittel in einer Text basierenden Umgebung verbessern.

Zum Compilieren der Beispiele brauchst du einen C Compiler, der gleichzeitig auch Windows 32 Programme compilieren kann. Diese gibt es auch kostenlos im Internet 'runterzuladen, wenn du dir nicht den Microsoft Visual C++ 6 Compiler kaufen willst (von dem ich anfangs abraten würde, weil es erstens bald die Version 7 erscheint und zweitens sehr viel Geld kostet und zum Austesten die meisten anderen Compiler völlig ausreichen). Es gibt natürlich noch andere gute und kommerzielle Windows Compiler (z.B. von Borland), jedoch würde ein Vergleich an dieser Stelle ein wenig zu weit führen.

Bis auf die oben genannten Punkte brauchst du keine Vorkenntnisse. Natürlich solltest du das Betriebssystem Windows kennen, damit meine ich nicht, dass man die Registry auswendig kennen muss, sondern, dass man weiß, wie die Schnittstelle zwischen Benutzer und System aussieht. Ach ja, ich habe es vorher schonmal erwähnt, dass die Tutorials für Windows mit 32 Bit (die Win32 API) geschrieben sind, also erst ab Windows 95 und NT genutzt werden kann. Zwischen der Windows NT/2000 und Windows 9x/ME Version der Windows API gibt es geringe Unterschiede, ich behandle jedoch nur die gemeinsame Schnittmenge.

Da ich die Windows API Referenz nicht weiter fortführen möchte, aber ein Programmierer nicht ohne diese Daten auskommt, habe ich mich entschlossen, bei den jeweiligen Funktionen oder Strukturen auf die entsprechende Seite im MSDN (Microsoft Developer Network, leider in Englisch) zu verlinken. Wenn du die Online-Kosten sparen möchtest und das MSDN auch Offline zur Verfügung hast, findest du die Seite unter dem angegebenen Suchbegriff.

Zum Schluss möchte ich noch anmerken, dass mir natürlich jede Art von Lob sehr willkommen ist. Jedoch bringt mir zur Verbesserung der Tutorials konstruktive Kritik mehr. So ist es sehr ärgerlich, wenn jeder, der das Tutorial liest, den gleichen Fehler finden und beseitigen muss, anstatt, dass mir der Erste den Fehler meldet und ich ihn dann beheben kann. Auch wenn ich den Code normalerweise teste und mir große Mühe gebe, keine Fehler entstehen zu lassen, kann ich natürlich nicht für die Fehlerfreiheit der Tutorials und der Beispielcodes garantieren.

webmaster@win-api.de