得到错误"班级未注册"

时间:2015-08-12 07:21:27

标签: delphi dll

我正在尝试在delphi中创建一个Active X DLL。 我添加了一个TLB文件,其接口带有CoClass声明,我已在另一个单元中实现了该接口。

DLL已成功构建并注册。

但是,当我尝试使用DLL来创建和调用另一个项目中的方法时,它显示错误为未注册的类

我正在尝试获取有关相同但无法得到答案的一些信息。

这是DLL的接口实现代码:

unit uinfComTestProject;

interface
uses
  ComTestProject_TLB;

Type
  TComTestProject = class(TInterfacedObject,ITestComCall)
  public
      procedure CreateAndShowMyData();safecall;
  end;
implementation

{ TComTestProject }
uses
    ufTestProjectForm;
procedure TComTestProject.CreateAndShowMyData;
var
 frm: TForm1;
begin
  frm  := TForm1.Create(nil);
  try
    frm.ShowModal();
  finally
    frm.Free;
  end;  
//
end;

end.

TLB文件定义的快照: TLB Definition having interface declartion

创建接口实例的方法。

procedure TForm1.Button1Click(Sender: TObject);
var
  LCOm: ITestComCall;
begin
  LCOm := CoTComTestProject.Create();// getting error at this point
  try
    LCOm.CreateAndShowMyData;
  finally
     LCOm := nil;
  end;    
end;

任何人都可以帮助我吗? 如果在同一个方面犯了任何错误,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:1)

错误只是意味着您正在注册的COM类尚未在COM注册表中注册。虽然您可能已成功注册DLL,但其自注册未注册COM类。

要理解你的DLL没有注册课程的原因,需要知道你的注册码,但遗憾的是,问题中没有。