2011-12-12 52 views
3

我试图从源代码安装jvcl,但是在单元JvInterpreter的第1267行中出现错误 ;德尔福XE2无法找到ComObj.dcu它去了哪里?

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

所以我删除了从用途ComObj,等着误差进一步向下行:

有关于EOLEError一个错误,这是我补充说,和最好的希望,但OleAuto的一部分。 ...

我得到一个错误,在这条线#1799:

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

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

回答

2

解决的办法是改变uses使用完全合格的名称:

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

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

+4

或者,您可以添加“System.Win”可用单位的范围名称项目的列表中,那么你就必须改变原始代码。 –

2

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