2011-12-12 79 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