GlobalAlloc(memBlockSize) , ab Adresse mit Daten befüllen

OP #7388535
Lesenswert?

Hallo, guten Tag.

hSArray = GlobalAlloc(memBlockSize) ptrSarray = GlobalLock( hSArray )

Ich möchte bitte ab Adresse von memBlockSize mit ASM Daten dort reinbringen. Es ist eine DLL.

Wie geht das bitte mit ASM?

Danke.


Function GlobalAlloc( dwBytes ) CallDLL #kernel, "GlobalAlloc", _GMEM_MOVEABLE As long, dwBytes As ulong, GlobalAlloc As long End Function

Function GlobalLock( hMem ) CallDLL #kernel, "GlobalLock", hMem As long, GlobalLock As long End Function

Function GlobalFree( hMem ) CallDLL #kernel, "GlobalFree", hMem As ulong, GlobalFree As long End Function

#7388596
Lesenswert?

Peter B. schrieb:

Es geht um die Adresse vom Speicher.

Ja? Und? Wenn Du verstehen würdest, was die beiden Funktionen GlobalAlloc und GlobalLock machen, dann müsstest Du diese Frage nicht stellen.

Du kannst ja mal in die /Dokumentation/ reinsehen:

https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalalloc

und

https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-locallock

Wie jemand, der das nicht von selbst auf die Reihe bekommt, dann irgendwas "mit ASM dort reinbringen" will, ist mir wirklich vollkommen schleierhaft.

#7389023
Lesenswert?

funkheld schrieb:

Warum die Gegenfrage? Wenn du eine Toilette suchst bei mir dann Frage ich auch nicht : dünne Soße oder harte Sachen auf meine Toilette.

Selbst wenn ich dabei ne knatternde Kettensäge in der Hand habe?

Was du fragst klingt so abstrus, da kann man nur Antworten "ergibt keinen Sinn". Und nicht alle haben Lust dazu, dir die Salamischeiben einzeln aus der Nase zu ziehen, insb wenn sie den Eindruck haben, dass du das Problem/die Antworten eh nicht verstehen würdest.

Die Funktion, um eine DLL in den Speicher zu bekommen, heißt LoadLibrary. Wenn du die nachprogrammieren willst, schau in den Quellcode von Wine.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren