1

想象一下这个可以在脚本中调用的过程:

// Foo is not implemented in the Script but via Delphi
procedure Foo(ClassType: TClass); 

脚本如下所示:

type 
  TMyClass = class
  end;

Foo(TMyClass);

当调用 Foo 时,我的 Delphi 应用程序看到 ClassType 的 Int64-Value。

e.g. Foo(661259635); 

您可以在 DWS 源代码中看到 aTClass被显式转换为 an Int64(参见 dwsCompiler.pas,procedure TObjectClassTypeMethod.Execute -> Info.ResultAsInteger := Int64(info.ValueAsClassSymbol[SYS_SELF]);)。

现在我可以在哪个结构中搜索该数字以找到相应的 TdwsClass?

注意:实际上 TMyClass 并没有在脚本中实现,而是通过 Delphi App 公开创建的......我不知道这是否会有所不同。

4

1 回答 1

1

您当前必须手动将 Int64 转换回 TClassSymbol,执行转换以将引用存储在 Variant(不支持 TClass)中。

获得 TClassSymbol 后,您可以查找符号表,或导航到成员。

目前没有用于类符号的 IInfo 助手。

于 2011-08-19T13:45:40.963 回答