我使用以下技术在运行时获取记录字段的偏移量:
const
这很好用。现在我希望将这些偏移量设为const
cMyVarTyped: Pointer = @TGUID(nil^).D3;
cMyVarUntyped = @TGUID(nil^).D3;
cMyOffsetTyped: INT_PTR = INT_PTR(@TGUID(nil^).D3);
cMyOffsetUntyped = INT_PTR(@TGUID(nil^).D3);
,但无法使其正常工作:
{$WRITEABLECONST ON}
所有这些产生" E2026预期的常量表达"。有什么想法吗?
FWIW:在{$WRITEABLECONST OFF}
/ {{1}}中包含声明并不会更改错误。
答案 0 :(得分:2)
不可能让编译器生成包含成员偏移量的常量表达式。