使用 RTTI 获取/设置子属性
根据下面的代码片段,使用 GetPropValue(MyComponent,'MySubComponent.Prop1') 会引发 EPropertyError 异常。 如何使用 GetPropValue / SetPropValue …
使用 RTTI 访问严格的私有字段
考虑这个简单的代码 {$APPTYPE CONSOLE} uses Rtti, SysUtils; type {$M+} TFoo = class strict private class var Field1 : Integer; field2 : Integ…
从 GetPropValue 获取接口
我想从对象实例动态获取属性值。 我能够获取类属性、序数类型和字符串。 GetPropValue 的 delphi 源代码不支持 tkInterface。有没有办法使用属性信息…
如何使用 Cygwin 打开 RTTI?
当我的Android NDK C++本机代码编译时,出现以下错误: 错误:-fno-rtti 不允许使用“dynamic_cast” 有人告诉我打开 RTTI,但我不知道该怎么做。我需…
使用 RTTI 调用通用列表的方法
我不知道该怎么做: 拥有这个对象: TMyObject = class; TMyList = class(TList) public function Execute(aParam1, aParam2:string):boolean; end; T…
从函数返回后丢失 RTTI 信息
给定一个类和子类: class Event {...} class Note : public Event {...} 注释被克隆并存储在函数 f() 内的指针中。类型信息保留在指针中,可以通过dy…
如何最好地在 DWScript 中公开类实例
我正在使用出色的 Pascal DWScript 构建内置脚本功能。我还使用以下方法将我自己的 Delphi 端类定义 (TDemo) 添加到 DWScript: dwsUnit.ExposeRTTI( …
type_info 指针可以用来区分 C++ 中的类型吗?
我有一组多态 C++ 类,它们都由同一模块(Windows DLL)实例化。现在有两个指向此类的指针并调用了 typeid: SomeCommonBase* first = ...; //valid p…
使用 RTTI 确定 C++ 中的继承图?
如果有的话,C++ 结构有哪些用于在运行时列出类的祖先? 基本上,我有一个类,它存储指向任何对象的指针,包括可能的原始类型(有点像 boost::any ,…
相同的 type_info 地址意味着相同的类型吗?
我正在对用于识别对象类型的代码进行微优化。我假设我可以使用以下内容来检查在同一模块中实例化的两个对象是否具有相同的类型: SomeCommonBase& fir…
typeid 运算符返回的对象的生命周期是多少?
如果我调用 typeid 并检索返回的 type_info 的地址: const type_info* info = &( typeid( Something ) ); typeid 返回的对象的生命周期是多少以及指…
C++将基指针转换为接口指针
这是我的设置的一些伪代码: class IMyClass { ... }; // pure virtual class class CMyBaseClass { .... }; class CMyClass : public CMyBaseClass, …
如何在 Visual Studio 2008 中关闭 RTTI
我不确定其他版本,但是,在 VS 2008 中,即使禁用了 RTTI,我也可以通过在类型上调用 typeid(T).name() 来查询信息。它适用于所有类型,包括内部类型…
如何解决 Delphi XE 中大型 Enum 类型的 RTTI 大小问题?
当我尝试在 Delphi XE 中编译具有 5000 多个值的 Enum 类型的单元时,出现此错误 [DCC 错误] uCities.pas(5834): E2575 RTTI for 'TCity' is太大;使…