1
5
如果您控制着所有的类,那么这是一个糟糕的设计选择。然而,您似乎正在尝试访问一些VCL内部。如果您确定没有干净的方法获得所需的信息,那么您所做的是正确的。 您基本上是用 相同布局 与原来的字段一样,然后在不进行类型检查的情况下进行强制转换:由于要访问的字段在两个类中的偏移量相同,因此最终将访问所需的内存。 第二个示例之所以有效,是因为用户字段对齐正确。如果您想访问A的私有字段,最好使用填充量最小的访问器,以达到所需的偏移量,这样您需要维护的字段就更少了。您应该记录要访问哪些字段以供将来参考,以及原始类定义,以便能够发现布局随时间的变化。 请记住,当原始类更改自己的布局时,这种肮脏的伎俩将不再像预期的那样有效。根据类的重构方式,您的代码可能只是读取了不正确的值,或者由于访问冲突而崩溃。 起初,OP要求访问普通类中的一个私有字段。接口并没有处理这个问题,因为它们是按照@rudy所描述的方式布置的,很明显,访问这些字段会变得很困难。 |
2
2
|
Some1Else · 函数在Delphi中重新创建TForm 2 年前 |
Agmcz · Delphi安卓库。so未安装(AAB) 2 年前 |
nader · 如何使用delphi在web上提交表单 6 年前 |
kwadratens · Delphi中的卡方分布函数代码 6 年前 |
user9672569 · 如何在完整的位图图像中绘制阴影效果? 6 年前 |
mmmm · MSBuild(用于Delphi)Make-like功能 6 年前 |