在delphi中调用正常,全部代码如下:library Project1;uses
  ComServ,
  Project1_TLB in 'Project1_TLB.pas',
  Unit1 in 'Unit1.pas' {Sample: CoClass};exports
  DllGetClassObject,
  DllCanUnloadNow,
  DllRegisterServer,
  DllUnregisterServer;{$R *.TLB}{$R *.RES}begin
end.
unit Unit1;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
  Windows, ActiveX, Classes, ComObj, Project1_TLB, StdVcl;type
  TSample = class(TTypedComObject, ISample)
  protected
    function GetRoomInfo(const RoomNo, Account: WideString): WideString;
      stdcall;
    {Declare ISample methods here}
  end;implementationuses ComServ, SysUtils;function TSample.GetRoomInfo(const RoomNo,
  Account: WideString): WideString;
begin
Result :=RoomNo+' '+Account;//
end;initialization
  TTypedComObjectFactory.Create(ComServer, TSample, Class_Sample,
    ciMultiInstance, tmApartment);
end.===================================================================
unit Unit2009;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation
uses ComObj,Project1_TLB;//這里的引用需要注意.{$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);varCOMSvr : ISample;beginCOMSvr := CreateComObject(CLASS_Sample) as ISample;//也可以使用Guid 实例化//COMSvr:=CreateComObject(StringToGuid('{330B6DA3-F7F6-49DD-B552-68769A916D66}')) as ISample;if COMSvr <> nil thenbegin    try      ShowMessage(COMSvr.GetRoomInfo(Edit1.Text,Edit2.Text));    finally      COMSvr := nil;    end;end;
end;end.