200分问一个问题。如何查知一个结构体各成员的值。
想实现象codesite那样的功能,程序运行期间将基本数据类型,对象公开的属性的值等发送出来,实现应用程序级别的调试,辅助实施人员,现场查找问题。
现在基本数据类型,对象公开的属性的值等已经基本实现,但是象结构体这样类型的值,如何知道呢??
[解决办法]
RTTI(Runtime time information)相关的资料,
看看 < <Inside VCL> > , < <delphi 6 开发人员指南> > .
[解决办法]
学习,帮顶
[解决办法]
关注一下,不懂
[解决办法]
深奥!连主问题都看不懂
[解决办法]
关注
[解决办法]
顶
[解决办法]
顶一下
[解决办法]
//Delphi 的RTTI机制浅探
//http://blog.dream4dev.com/article.asp?id=37
RTTI 信息的结构定义在 TypInfo.pas 中:
TTypeInfo = record // TTypeInfo 是 RTTI 信息的结构
Kind: TTypeKind; // RTTI 信息的数据类型
Name: ShortString; // 数据类型的名称
{TypeData: TTypeData} // RTTI 的内容
end;
TTypeInfo 就是 RTTI 信息的结构。TObject.ClassInfo 返回指向存放 class TTypeInfo 信息的指针。Kind 是枚举类型,它表示 RTTI 结构中所包含数据类型。Name 是数据类型的名称。注意,最后一个字段 TypeData 被注释掉了,这说明该处的结构内容根据不同的数据类型有所不同。
TTypeKind 枚举定义了可以使用 RTTI 信息的数据类型,它几乎包含了所有的 Delphi 数据类型,其中包括 tkClass。
TTypeKind = (tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat,
tkString, tkSet, tkClass, tkMethod, tkWChar, tkLString, tkWString,
tkVariant, tkArray, tkRecord, tkInterface, tkInt64, tkDynArray);
//tkRecord 支持机构体,