Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Pointer in Property schreiben

  Alt 21. Aug 2018, 08:52
eventuell liegt das an deinem (Item - 1) * 4 ? Dieser Parameter ist ja nur ein Index kann also fortlaufend sein (z.B.: 0,1,2,...) wenn dann dadurch die Größe deines ExtraByte-Feldes (z.B.: SizeOf(LONG_PTR)*x) überschritten wird könnte es zu diesem Effekt kommen.
Nun dann müsste es auch unter 32Bit krachen oder nicht?
Das tut es aber seit mehr als 6 Jahren nicht es werden immer die korrekten Pointer zurück geliefert.

bsp.
Item := FORM_TopRight = 4
bei
SetWindowLongPtr(WinHandle, (Item - 1) * 4, V);
ist das Item = 12

Wenn ich die property zurück lese
dann ist item
ImgTR := Pointer(GetProperty(pHandle, FORM_TopRight));

FORM_TopRight := 4 = (Item - 1) * 4 = 12
Es ist also in jedem fall der gleiche Index.
Aber die werte die abgespeichert wurden stimmen nicht unter 64Bit.

GetProperty liest die werte so zurück wie si von SetProperty übergeben wurden.

gruss

Geändert von EWeiss (21. Aug 2018 um 09:05 Uhr)
  Mit Zitat antworten Zitat