Einzelnen Beitrag anzeigen

r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Toolbar-Auslesen klappt nicht auf einem 64bit-Win7?

  Alt 22. Okt 2012, 16:17
Thx erstmal fürs Antworten.


Die TBBUTTONINFO64-Struktur habe ich aus der CommCtrl-Unit, von der dortigen TBBUTTONINFO-Struktur hergeleitet. Und dort steht auch: "lParam: DWORD;"

Das mit dem {$ALIGN 8} hat leider nicht geklappt. Ich glaube auch nicht so richtig dran, dass der Record unpacked sein kann, wenn der beim 32bit-Win schon packed gewesen ist. Es sei denn, beim 64bit-Win wären diese Strukturen jetzt alle unpacked?


Wenn ich übrigens mit SizeOf() die Summe der Längen aller Felder in der Struktur VOR dem pszText-Zeiger ermittle, dann komme ich gemäß:

type
TBBUTTONINFO64 = packed record
cbSize: UINT; = 4Bytes
dwMask: DWORD; = 4Bytes
idCommand: Integer; = 4Bytes
iImage: Integer; = 4Bytes
fsState: Byte; = 1Bytes
fsStyle: Byte; = 1Bytes
cx: Word; = 2Bytes
lParam: DWORD; = 4Bytes
// pszText: PAnsiChar;
_align: longint; // Zeiger müssen in 64-Bit-Windows an 8-Byte-Alignment beginnen
pszText: Int64; // Zeiger haben in 64-Bit-Windows 8 Byte
cchText: Integer;

auf eine gesamte Datenlänge vor dem Ptr von genau 24 Bytes. Also habe ich in einem weiteren Versuch auch mal dieses künstliche "_align: longint" ganz weggelassen. Allerdings auch leider ohne Erfolg.


?
  Mit Zitat antworten Zitat