【问题标题】:Delphi XE2 cannot find ComObj.dcu where did it go?Delphi XE2 找不到 ComObj.dcu 它去哪儿了?
【发布时间】:2012-01-18 13:34:10
【问题描述】:

我正在尝试从源代码安装 jvcl,但出现错误 单元 JvInterpreter 的第 1267 行;

uses
  TypInfo,
  {$IFDEF JvInterpreter_OLEAUTO}
  OleConst, ActiveX, ComObj,  

所以我从使用中删除了ComObj 并等待错误进一步下降:

关于EOLEError 有一个错误,这是 OleAuto 的一部分

我在 #1799 行出现错误:

DispatchInvoke(IDispatch(Dispatch), CallDesc, PDispIDList(@DispIDs[0]), ParamTypes, Result);

所以问题是:ComObj 发生了什么?在 XE2 中,DispatchInvoke 需要什么单位?

【问题讨论】:

    标签: delphi com delphi-xe2


    【解决方案1】:

    解决方案是将uses 更改为使用完全限定名称:

    uses
      TypInfo,
      {$IFDEF JvInterpreter_OLEAUTO}
      OleConst, ActiveX, 
      {$IFDEF VER230} system.win.ComObj, {$ELSE} ComObj, {$ENDIF}  
    

    现在它编译没有错误。
    见:What is the compiler version for Delphi 2010?
    获取编译器定义列表。

    【讨论】:

    • 或者,您可以将“System.Win”添加到项目的可用单元范围名称列表中,然后您根本不必更改原始代码。
    【解决方案2】:

    只需添加 system.win 即使用 system.win.comobj 代替 comobj

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 2011-03-03
      • 2014-03-15
      • 2015-07-17
      • 2012-10-30
      • 2013-05-23
      相关资源
      最近更新 更多