gpt4 book ai didi

delphi - 如何从TGUID获取接口(interface)类型信息?

转载 作者:行者123 更新时间:2023-12-02 00:00:33 25 4
gpt4 key购买 nike

如何从 GUID 获取类型信息?

procedure MyProcedure(const InterfaceId: TGuid);
var
MyTypeInfo: PTypeInfo;
begin
MyTypeInfo := TypeInfo(InterfaceId); //E2133 TYPEINFO standard function expects a type identifier
...
end;

最佳答案

您必须搜索 EXE 中的所有 RTTI。对于 Delphi 2010 及更高版本:

unit RTTI.Utilities;

interface

uses System.TypInfo;

function InterfaceTypeInfoOfGUID(const AGUID : TGUID) : PTypeInfo;

implementation

uses System.RTTI;

function InterfaceTypeInfoOfGUID(const AGUID : TGUID) : PTypeInfo;

var
Context : TRttiContext;
ItemType : TRttiType;

begin
for ItemType in Context.GetTypes do
begin
if ItemType is TRTTIInterfaceType then
begin
if TRTTIInterfaceType(ItemType).GUID = AGUID then
exit(TRTTIInterfaceType(ItemType).Handle);
end
end;
Result := nil;
end;

end.

关于delphi - 如何从TGUID获取接口(interface)类型信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42350661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com