====== Vega.Backend.WinCall — Aufrufschicht zur Win32-API ====== lyxc kann ''extern fn'' auf win64 nur bis **vier** Argumente (#1674 — ausdrücklich gemeldet, statt still falsch zu rechnen). Ein Fenster braucht zwölf, ''StretchDIBits'' elf, ''SetWindowPos'' sieben. Ohne diese Schicht ließe sich kein einziges Fenster öffnen; der Ausweg ist ein Trampolin, das die Argumente selbst legt. Quelldatei: ''Vega/Backend/WinCall.lyx'' → [[lyx_-_programmiersprache:vega:units|Alle Units]] · [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega|Vega VCL]] ---- ===== Typaliase ===== ^ Name ^ Ist ^ Zweck ^ | ''TWinTramp'' | ''fn(ziel: int64, args: int64, x: int64): int64'' | Das Trampolin, das den Aufruf mit beliebig vielen Argumenten ausführt | | ''TWndProc'' | ''fn(hwnd: int64, msg: int64, wp: int64, lp: int64): int64'' | Typ der Fensterprozedur | ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Bedeutung ^ | ''WIN_MAX_ARGS'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''12'' | Höchstzahl der Argumente eines Aufrufs | ===== Freie Funktionen ===== ^ Signatur ^ Zweck ^ | ''WinCallInit(): bool'' | Trampolin einrichten | | ''WinCallReady(): bool'' | Ist es einsatzbereit | | ''WinArg(i: int64, v: int64): void'' | Nächstes Argument anhängen | | ''WinArgsClear(): void'' | Argumentliste leeren | | ''WinCall(ziel: int64): int64'' | Aufruf mit den gesammelten Argumenten | | ''WinCall1(ziel: int64, a: int64): int64'' | Aufruf mit einem Argument | | ''WinCall2(ziel: int64, a: int64, b: int64): int64'' | Aufruf mit zwei Argumenten | | ''WinCall4(ziel: int64, a: int64, b: int64, c: int64, d: int64): int64'' | Aufruf mit vier Argumenten | | ''WinModule(name: pchar): int64'' | Handle einer DLL besorgen | | ''WinProc(modul: int64, name: pchar): int64'' | Adresse einer Funktion darin | | ''WinAlloc(groesse: int64): int64'' | Speicher vom Betriebssystem | | ''WinError(): int64'' | Letzter Fehlercode | | ''WinMakeCallback(ziel: TWndProc): int64'' | Eigene Funktion als Rückruf für Windows verfügbar machen | ---- ===== Zu beachten ===== * Diese Unit ruft man in Anwendungen nie unmittelbar — sie ist der Unterbau von [[lyx_-_programmiersprache:vega:units:backend_win32|Vega.Backend.Win32]]. * Fällt die Vier-Argument-Grenze in lyxc, kann diese Schicht schrumpfen; bis dahin ist sie die Bedingung dafür, dass Vega unter Windows überhaupt läuft. ---- ===== Abhängigkeiten ===== **Importiert:** [[lyx_-_programmiersprache:vega:units:types|Vega.Types]] · Standardbibliothek: ''std.io'' **Wird importiert von:** [[lyx_-_programmiersprache:vega:units:backend_win32|Vega.Backend.Win32]] Letzte Aktualisierung: 2026-08-20 — Klassen, Aufzählungen, Konstanten und freie Funktionen maschinell aus ''Vega/Backend/WinCall.lyx'' erhoben.