如何实现TGUID到自定义类型的转换(130分)

  • 主题发起人 主题发起人 1__2
  • 开始时间 开始时间
1

1__2

Unregistered / Unconfirmed
GUEST, unregistred user!
在TypeLibraryEditor中定义记录类型,然后在接口的Method的参数中使用,但DElphi将它
转变为TGUID,那么如何实现TGUID到给类型的转换?
以前讨论过该问题,解决的办法是用OleVariant代替,那么TypeLibraryEditor中定义Record
,Union,Module 有什么意义呢?
 
有GUIDToString(const ClassID: TGUID): string;将其转换为字符串,
StringToGUID(const S: string): TGUID将字符串转换为TGUID
 
SnowTree:
仅将其转换到String没有意义,我想的是如何将TGUID类型转化为我自己定义的类型?
 
有个例子,也许对你有帮助:
CoCreateGUID(guid);
for i := Low(guid.D4) + 2 to High(guid.D4)do
begin
result := result + IntToHex(guid.D4, 2);
end;
 
jianl:
我想是我没有说清楚:
在TypeLiberoryEditor中我定义了一个Record类型:RRecord1;
然后在一个Method MwriteLog 中有一个参数 VLogMsgPointer,参数类型就用RRecord1;
但是在Delphi生成的框架代码中却变成了:
procedure TCoLog.MWriteLog(VLogMsgPointer: TGUID);
这样如何使用该Method呢?
 
定义一个新的Record后,不要在参数中直接指定为该类型,而应该为Record指定Alias后仅
使用Alias类型,这样你的问题就解决了。
 
我还是不明白:我试了试,结果是这样的:
procedure Tdiekdie.Method1(_1111: rRecord1;
Param2: Integer);
begin

end;
 
感谢 Langer,jianl,snowtree
 
后退
顶部