我需要使用他的实例和变量的偏移量访问一个类的严格私有类 var值。
到目前为止试过这个,检查这个示例类
type
TFoo=class
strict private class var Foo: Integer;
public
constructor Create;
end;
constructor TFoo.Create;
begin
inherited;
Foo:=666;
end;
//this function works only if I declare the foo var as
//strict private var Foo: Integer;
function GetFooValue(const AClass: TFoo): Integer;
begin
Result := PInteger(PByte(AClass) + 4)^
end;
如您所见,函数 GetFooValue 仅在 foo 变量未像类 var 那样声明时才起作用。
问题是我必须如何修改 GetFooValue
才能获得Foo
声明时的值strict private class var Foo: Integer;