Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
29. Dez 2009
@Elvis: Integer oder Cardinal ist hier egal, da nach der Subtraktion eh keine Werte über 2 GB groß sein werden.
(Addition und Subtraktion wird bei Integer und Cardinal gleich behandelt)
Zumindestens habe ich noch keinen Record gesehn, welcher über 2 GB groß ist. :roll:
Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
29. Dez 2009
#define offsetof(struct_type, member) \
(size_t) &(((struct_type *)0)->member)
This would presumably it look something like this in Delphi.
function OffsetOf(StructType: Type; Member: string): Integer;
type P = ^StructType;
begin
//Result := Integer(@P(nil)^.) - Integer(@P(nil)^);
//Result := Integer(@P(nil)^.) - Integer(P(nil));
//Result := Integer(@P(nil)^.)...
Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
29. Dez 2009
var x: record
a: word;
b: longword;
end;
offset := Integer(@x.b) - Integer(@x);
// or
offset := Integer(@x.b) - Integer(@x.a);
found in http://www.delphipraxis.net/internal_redirect.php?t=169095&highlight=align* :angel2: