下面是我写得一个delphi下使用接口的测试.开始一切正常,为了资源释放问题,我在 TMyTest 中增加了 _Release 方法,用以替掉原来的(因为它在引用为0时会释放对象),这样我可以在程序中显示的调用 .free释放. 但就是这个增加动作,导致无法编译。提示那信息如下:    [Error] interfaceunit1.pas(20): Unsatisfied forward or external declaration: 'TMyTest._Release'
[Fatal Error] interfacetest.dpr(5): Could not compile used unit 'interfaceunit1.pas'这位可以帮忙分析一下。thanks.unit interfaceunit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
   IGetName = interface
    function GetClassName :string;
 end;  TMyTest = class(TInterfacedobject,IGetName)
   private
      classname :string;
   protected
   public
      function GetClassName :string ; virtual;
      function _Release : Integer; stdcall;
   end;  TForm1 = class(TForm,IGetName)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
      function GetClassName :string ; virtual;
  end;var
  Form1: TForm1;implementation{$R *.dfm}function TMyTest.GetClassName :string ;
begin
 Result :='TMyTest2';
end;
function TMyTest_Release:integer;
begin
  Result := -1;
end;function TForm1.GetClassName :string ;
begin
 Result :='Foxxxxxrm2sfsdf';
end;procedure TForm1.Button2Click(Sender: TObject);
var
  i : IGetName;
  j :TMyTest;
begin
      j :=TMyTest.Create;
      i := j;
      Label1.Caption :=i.GetClassName;      i :=nil ;
//      j.Free;
end;procedure TForm1.Button1Click(Sender: TObject);
var
  i : IGetName;
begin
      i := self;
      Label1.Caption :=i.GetClassName;
end;end.