Windowsprogrammierung

Die Windows-API stellt die Schnittstelle zwischen  Anwendung und System da. Schon für die ersten  Windowsversionen galt sie als Basis der Windowsprogrammierung. Sie ermöglicht dem Programmierer durch Funktionsaufrufe eine Kommunikation zwischen System und Anwendung herzustellen. Damit jede Windowsversion abwärtskompatibel ist, wurde die API bisher lediglich in ihrer Funktionalität erweitert. Die ursprüngliche Funktionalität ist aber weiterhin enthalten. Methoden der API, welche seit Windows 3.x existieren sind auch noch unter Windows 98 präsent. Dies hat unter anderem den Vorteil, dass sich Quelltexte alter Anwendungen in neuen Anwendungen unverändert übernehmen lassen, und alte Anwendungen weiterhin unter neuen Systemen laufen. Allerdings wurde die Windows-API in reinem C geschrieben, was somit Nutzung der Vorteile der objektorientierten Programmierung prinzipiell unmöglich macht.

Allerdings existiert u.a. die MFC (Microsoft Foundation Classes), eine Bibliothek welche die gesamte Funktionalität i der Windows-API in Form einer  Klassenhirarchie kapselt und somit objektorientiert erscheinen lässt. Außerdem ist auf diese Weise schnell ein Programm mit einer gewissen Basisfunktionalität erstellt. Bei einer Windowsanwendung sind viele Programmierzeilen Standard. Diese Programmierschritte sind in einer MFC-Anwendung in entsprechenden Klassen bereits enthalten und müssen vom Programmierer nicht selbstständig durchgeführt werden. Allerdings hat eine MFC-Anwendung auch erhebliche Nachteile.  Ein entscheidener, aus meiner Sicht, ist die oft ungewollte Komplexität einer Anwendung, welche sich oft auch nachher in der Größe der programmierten Anwendung niederschlägt. Bei der Verwendung wird meist eine zu große Funktionalität implementiert welche gar nicht von Nöten ist und nur das Programm "aufbläht". Man verliert somit auch leicht die Übersicht über den Programmverlauf, da die Funktionalität oft nicht mehr nachvollziehbar ist. (Für mich ist das Verständnis des genauen Programmablaufs besonders wichtig um diesen im einzelnen nachvollziehen zu können. Aus meiner Sicht ist dies bei einem MFC-Programm nicht gegeben)

Eine weitere Alternative stellt die ATL (Active Template Library) dar. Mit ihrer Hilfe lassen sich Windowsprogramme ebenfalls einfach erstellen. Wie bei der MFC lassen sich hier die API-Aufrufe vornehmlich objektorientiert durchführen. Bei der ATL handlet es sich im Gegensatz zu der MFC-Bibliothek allerdings nicht um eine große Klassenhirarchie, sondern um eine Ansammlung von Templateklassen, die innerhalb des Programms u.U. durch Mehrrfachverebung miteinander verknüpft werden. Vorteilhaft wirkt sich dies unter anderem in der Dateigröße aus. Sie unterscheidet sich meist kaum von der einer einfachen Windowsanwendung.  (Ich ziehe die Programmierung mit Hilfe der ATL jeder weitern vor, insbesondere, weil die ATL viele weitere Vorteile hinsichtlich ihrer möglichen Anwendungsgebiete (COM-Programmierung, etc.) besitzt. Um allerdings ATL verstehen zu können, werde ich zunächst Grundlagen der Windowsprogrammierung mit Hilfe der ursprünglichen Windows-API schaffen und dann die Programme in ATL exportieren und somit die gekapselte Funktionalität offenlegen. Der MFC schenke ich hier im weiteren keine Beachtung mehr.

Einfache Windowsprogrammierung