【问题标题】:IntfCast in Delphi 6Delphi 6 中的 IntfCast
【发布时间】:2011-03-30 12:33:26
【问题描述】:

我有一个项目,其中大量源代码不可用。其中一个函数存在 IntfCast 异常,我一直在使用 CPU 调试器逐步执行应用程序,并确定了包含强制转换操作的函数和所涉及的类之一,但我无法识别另一个类。我正在尝试复制错误,但我正在尝试的强制转换操作没有调用 IntfCast。如何让演员调用 IntfCast?

谢谢。

【问题讨论】:

  • 这是一个更神秘的变体:stackoverflow.com/questions/5419901/… ?
  • 相关。这实际上更接近问题的根源。我已经确定了实际发生错误的函数。问题是,我没有源代码,所以我试图在我正在编写的代码中重新创建错误,所以我知道要查找什么逐步执行 CPU 指令。

标签: delphi casting delphi-6


【解决方案1】:

IntfCast 在您尝试将对象或接口强制转换为其他接口时调用。这是一些内部调用IntfCast的示例代码:

type ISomeInterface = interface
[guid-goes-here, use ctr+g to obtain unique guid]
  procedure DoSomething;
end;

var X: TComponent;
    i: IUnknown;
begin
  (X as ISomeInterface).DoSomething;
  (i as ISomeInterface).DoSomething;
end;

【讨论】:

    【解决方案2】:

    IntfCast动态转换中被调用。

    阅读此http://hi.baidu.com/007ware/blog/item/de69ed3ce554890abba16726.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多