我有一个返回PAnsiChar类型的方法。我注意到Rtti将它识别为指针。有没有办法将其识别为PAnsiChar?
我需要信息从python扩展中返回字符串,python需要知道它的字符串指针而不仅仅是一个void *。 python的Delphi代码是动态创建的,因此需要检查我的方法返回的类型,以便为python接口构造适当的代码。
答案 0 :(得分:2)
从TRttiType
个实例中执行以下操作:
Handle
的{{1}}属性。PTypeInfo
是Kind
。 tkPointer
TypeData
。 PTypeData
类型RefType
。 PPTypeInfo
的AnsiChar。像这样把它们放在一起:
RefType^.Kind=tkChar
这是一个演示程序:
function IsPAnsiChar(AType: TRttiType): Boolean;
begin
Result :=(AType.Handle.Kind=tkPointer)
and (AType.Handle.TypeData.RefType^.Kind=tkChar);
end;
<强>输出:强>
True True True