0

エラーが発生します:

[DCC エラー] Test.pas(10): E2291 インターフェイス メソッド ICoTest64.MyFunc の実装がありません

以下は、TLB ファイルの抜粋です。

// *********************************************************************//
// Interface: ICoTest64
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {76CF78FE-22A3-4C0B-B1A9-97634A453AE3}
// *********************************************************************//
  ICoTest64 = interface(IDispatch)
    ['{76CF78FE-22A3-4C0B-B1A9-97634A453AE3}']
    function MyFunc(const Range: System.OleVariant): System.OleVariant; safecall;
  end;

そして、ここに実装があります

unit Test;

interface

uses
  SysUtils, ComObj, ComServ, ActiveX, Variants, Office2000, Excel2000, 
  adxAddIn, Test64_TLB,
  System.Classes, adxHostAppEvents, Dialogs, StdVcl;

type
  TCoTest64 = class(TadxAddin, ICoTest64)
  protected
    function MyFunc(var Range: System.OleVariant): System.OleVariant; safecall;
  end;

implementation

function TCoTest64.MyFunc(var Range: System.OleVariant): System.OleVariant;
begin
  Result:= 10;
end;

end.

私の知る限りimplementation = interface

Delphi XE2を使用しています

どうしたの?

4

1 に答える 1

6

の関数パラメーター リストがMyFunc一致しません。インターフェイス内の宣言はパラメーターICoTest64を使用しconstます。ただし、クラスの実装ではパラメーターTCoReporting64を使用しvarます。

インターフェイス宣言が正しいと仮定すると、次のようにコードを変更する必要があります。

type
  TCoReporting64 = class(TadxAddin, ICoTest64)
  protected
    function MyFunc(const Range: System.OleVariant): System.OleVariant; safecall;
  end;
于 2013-08-28T16:18:45.290 に答える