Parametergabe von Extern an eine Funktion in einer dll
-
Hallo, ich befasse mich mit X86 Assembler und bin Einsteiger in diese Materie.
Mein Ziel: Eine .dll zu schreiben, die Funktionen enthält, die
ich von anderen Sprachen aufrufen kann.
Im Internet habe ich ein Beispiel für den NAGOA Assembler gefunden.
Dies funktioniert auch:%include "nagoa.inc" ;Deklarationen unserer Funktionen GLOBAL DllMain ;DllEntripoint (ist in Nagoa immer DllMain) GLOBAL MMTest ;DllEntripoint export MMTest DllMain: %define hInstDLL ebp+8 ;Handle des Dll-Modules %define fdwReason ebp+12 ;Grund, um die funktion aufzurufen, es handelt sich um ein Flag %define lpvReserved ebp+16 ;reserviert enter 0,0 cmp dword [fdwReason], DLL_PROCESS_DETACH je @Detach cmp dword [fdwReason], DLL_THREAD_DETACH je @Detach @Exit: mov eax,TRUE leave ret 12 @Detach: jmp @Exit ;<---Ende des Dll-Entrypoint ;Hier wird gesagt, dass wir mit 32-Bit arbeiten und, dass jetzt die Code-Section beginnt. [section CODE USE32 class=CODE] ;<---Anfang des Dll-Entrypoint MMTest: mov eax,8 ret ;<---Ende des Dll-Entrypoint
Mir sind noch nicht alle Dinge klar, aber meine Funktion MMTest
funktioniert.
Ich weiß, das der Wert in eax als Rückgabeparameter übergeben wird.
Dazu meine Frage:
Wie wird dies mit Parametern gehandelt, die ich beim Aufruf der Funktion
mitgeben will ?
Gibt es dafür ein Beispiel für MASM oder NAGOA?
Kann mir jemand weiterhelfen ?
-
Wie wird dies mit Parametern gehandelt, die ich beim Aufruf der Funktion mitgeben will ?