Da ich bis eben im Urlaub war, kann ich leider erst jetzt gratulieren. Was den Code betrifft, fällt es mir schwer, etwas wirklich Neues zu posten. Assembler hatten wir zwar schon, aber noch kein Assembler mit WinAPI ...
Code:
EXTERN ExitProcess
IMPORT ExitProcess kernel32.dll
EXTERN MessageBoxA
IMPORT MessageBoxA user32.dll
segment .code USE32
titel db "Happy Birthday",0
inhalt db "Herzlichen Glueckwunsch!",0
..start
push dword 0x40 + 0x0 ; Info-Icon + MB_OK
push dword titel ; Adresse des Titel-Strings
push dword inhalt ; Adresse des Text-Strings
push dword 0 ; kein Parent-Window (NULL)
call [MessageBoxA] ; rufe DLL Funktion auf (Parameter wurden auf Stack gelegt)
push 0 ; ExitProcess braucht nur einen Parameter: den Rueckgabewert
call [ExitProcess] ; und nun .. on y va!
Das assemblieren könnte mit NASM so aussehen: nasm -fobj birthday.asm. Und mit ALINK kann man dann mittels alink -oPE birthday.obj zur einer ausführbaren Datei linken. Dann dürfte man eine Win32 Anwendung mit schlanken 1,5 kb haben, denn die Datei verzichtet sogar auf ein Datensegment. Und mit solchen ASM WinAPI Anwendung lernt man die WinAPI viel näher kennen. Höchst anregend. Ähm, ja. Was ich sagen wollte: Herzlichen Glückwunsch DFYX. Bleib so wie du bist.

freundliche Glückwünsche, Rolus