Win32-Programmierung

Inhaltsverzeichnis


Download als zip-Datei
Win32-Programmierung
Vorwort
Kurzer geschichtlicher Überblick
Einführung
Ein Basisprogramm
Namenskonventionen und Ungarische Notation
Ermittlung der Windows-Version
Kommandozeilenparameter
Menüs
Menüs als externe Ressource
Menüs zur Laufzeit erzeugen
Menüs zur Laufzeit indirekt erzeugen
Zugriff auf das Systemmenü
Kontextmenüs
Arbeit mit Menüs
Shortcuts
Bitmaps vor Menüpunkten
Alles in einem Programm
Fensterklassen
Beispiel
Erklärungen
EDIT
BUTTON
STATIC
SCROLLBAR
LISTBOX
COMBOBOX
Zusammenfassung
Dialoge
Einführung
Beispiel
Dialoge ohne Hauptfenster
Windows-Standarddialoge
Funktionsreferenz

Vorwort

Dieses Tutorial behandelt die Assemblerprogrammierung unter 32-Bit-Windows-Systemen. Hardwarebasis bleibt die x86er-Familie (Windows NT gibt es auch für die Alpha). Es handelt sich nicht um ein Einsteigertutorial in die Assemblerprogrammierung. Das notwendige Wissen können sie z. B. im Grundlagentutorial unter http://andremueller.gmxhome.de/toc.html erwerben oder durch eines der in den Links genannten Bücher.

Wenn Sie den TASM besitzen, dann wissen Sie, dass im Lieferumfang gerade eine Handvoll Beispielprogramme mit lächerlich wenigen Hintergrundinformationen enthalten sind. Ich kann zwar nicht sagen ob in der offiziellen MASM-Auslieferung mehr Beispiele und Dokumentation enthalten sind, aber es gibt im Internet eine umfangreiche Zusammenstellung von Dateien und Tutorials, die sich der Entwicklung von Assemblerprogrammen (Stand alone und zur Einbindung in Hochsprachenprogramme) widmen. Diese Suite können Sie unter anderem unter der URL http://www.movsd.com downloaden. Darin enthalten ist ebenfalls der MASM. Das ganze Ensemble ist kostenlos und lizenzrechtlich grundsätzlich so gestaltet, dass Sie damit erzeugte Programme ohne Einschränkungen weitergeben können. Lesen sie bitte trotzdem, insbesondere bei kommerzieller Nutzung (von Teilen) des Pakets, die jeweils gültigen Lizenzbedingungen.

Deshalb habe ich mich entschlossen, im Laufe dieses Tutorials den MASM zu behandeln. Im MASM-Modus von TASM sind die vorgestellten Programme leider nicht kompilierbar.
Bei den einschneidendsten Unterschieden zwischen TASM und MASM werde ich einige Erläuterungen geben. Aber da sich diese Unterschiede vorrangig um Direktiven drehen die nur der MASM bereitstellt wird das Verständnis der Quelltexte für den TASM-Programmierer kein Problem darstellen.

Entwickelt werden die Programme unter Windows 2000 SP 4 Professional. Als mögliche Testsysteme stehen mir darüber hinaus nur Windows Me, Windows NT 4 SP 6a und Windows XP SP 2 Professional zur Verfügung, die allerdings recht selten Anwendung finden.

Konkret bedeutet das, dass die Funktionsfähigkeit der Programme nicht garantiert werden kann. Infolge dessen sind die Programme und Verfahren mit keiner wie auch immer gearteten Garantie versehen. Aus diesem Grunde übernehme ich keinerlei Verantwortung für Schäden, die aus der Anwendung des dargestellten Materials entstehen.

Ich empfehle den Download des Windows Platform SDK. Es handelt sich zwar um einen ziemlich großen Brocken (450-500 MB), gleichzeitig ist es aber die aktuellste und vermutlich vollständigste Referenz zum Windows-API. Das Platform-SDK können sie auf den Microsoft-Internetseiten finden. Da der Support für die älteren Versionen von Windows nach und nach eingestellt wird, werden auch die entsprechenden Referenzen nicht ewig weitergeführt. Die aktuelle Version des Platform-SDK ist für Windows 2000 bis 2003 gültig.

Programmierung unter Windows auf dem Level von Assembler und C in Verbindung mit GUI-Programmierung eignet sich in meinen Augen nur schlecht zum Erlernen einer neuen Programmiersprache. Die Hauptursache liegt darin, dass Quellcode auf dieser Ebene einen gewissen (großen) Überbau beinhaltet, der für die Erzeugung von Ausgaben auf dem Bildschirm benötigt wird, aber mit der Programmiersprache nichts zu tun hat. Insofern wird in diesem Tutorial einfach vorausgesetzt, dass sie mit der Programmiersprache Assembler zumindest grundlegend vertraut sind.