Da hast Du allerdings recht. Da es sich aber um definierte Befehlslängen handelt, müsste das rauszukriegen sein, wieviele Byte der wahre Einstieg davor liegt. Mal sehen...
Der ASM-Befehl assembliert den nachfolgenden Code bis ENDASM und fügt die Funktion der Liste der importierten Funktionen bei, so wie es auch ImportDLL und ImportFunc machen. Anschließend steht die Funktion dem Programm zur Verfügung.
Orig.: "Und ein erstes Makro "FCALL" erlaubt den direkten Aufruf aller mit ImportFunc, ImportDLL und ASM importierten Funktionen"
wurde ersetzt durch: CALL @funk
und
ASM "MsgBox", 5 ' Ein Parameter Adresse plus 4 Parameter für die Messagebox
CALL ECX
...
EndASM
var handle aMsgBox = faddr("MsgBox")
if aMsgBox
Print call(aMsgBox, funk, %hWnd, "Das ist die Botschaft!", "Titel", 51)
endif
Hatte ich mir mal so notiert diese Schnipsel.....
und der Wert sollte eigentlich der alte EBP sein, der ja innerhalb auf ESP gesetzt wird...