Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Message überschreiben

  Alt 30. Nov 2020, 18: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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