相关疑难解决方法(0)

仅为某些类启用Delphi XE RTTI

我正在尝试仅为我的类的子集启用RTTI.

原因是对于那些我想要RTTI的类,我也想在公共方法上使用RTTI,但如果在项目范围内启用它,那么所有类的所有公共方法都会进入最终的可执行文件.这基本上关闭了智能链接,因为编译器认为每个公共方法都可以在运行时调用,因此最终编译几乎所有东西,厨房沉入可执行文件......

我尝试了几件事:

  • 在项目级别关闭RTTI,{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}然后为相关单元重新启用它会导致在$ RTTI指令的编译时(编译器中某处的AV)崩溃.
  • 在项目级别关闭RTTI然后启用逐类编译,但在运行时,在尝试访问暴露类的RTII时,会在"Rtti.pas"中导致不合格的AV深度
  • 通过嵌入在".inc"中的$ RTTI指令控制RTTI所有单元在编译时使用随机AV结果(总是在$ RTTI指令的行,但不总是在同一单元中).

还有其他想法吗?

delphi rtti

9
推荐指数
1
解决办法
1147
查看次数

标签 统计

delphi ×1

rtti ×1