Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#4

AW: Message überschreiben

  Alt 30. Nov 2020, 19:09
sizeof(int) ist aber nicht sizeof(LPARAM)
Ich bin mir fast sicher, dass Letzeres in Win64 eine andere Größe hat.

Zitat:
CopyMemory(@lP, @x, 20);
Bist du sicher, dass du die Adressen der Variablen zum Kopieren nutzen willst?
Ich hätte ja eher vermutet, dass du die Adressen haben willst, die in den Variablen stehen und nicht die Variablen selber, also ohne @.

Außerdem kommt es mir bissl komisch vor, was du da machst.
-> 20 Byte in sich selbst kopieren (auch noch mit den falschen Adressen der Variablen, was einen geilen Bufferoverflow ergibt)

Spontan würde ich Marshal.WriteInt32(k_Msg.LParam + 4 * sizeof(int), ms32_RowHeight);
als PInteger(LParam + 4 * SizeOf(Integer))^ := ms32_RowHeight; übersetzen.
-> 4 Byte von Variable/Konstante in den Record/Buffer kopieren
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Nov 2020 um 19:18 Uhr)
  Mit Zitat antworten Zitat