将新组件拖放到窗体上时"Class Not Registered"错误消息



使用Windows XP运行Delphi 2010

我得到了一个叫做CsdEft的第三方包。ocx(用于连接EFTPOS终端)

为了安装,我做了以下操作:

  • 选择"Import Component"
  • 选择"导入ActiveX控件"
  • 选择"添加",然后选择CsdEft.ocx。显示选中的OCX。单击Next。

    显示对话框:

    类名:TCscEFT

    托盘页:ActiveX

    单元目录名称:C:DelphiComponents

    搜索路径:$(BDS)lib;$(BDSUSERDIR)...................

    生成组件包装器-选中

  • 单击Next。
  • 选择"Install into New Package"
  • 输入EFTPOS作为包名
  • 单击Finish。

    对话框显示:

    C:Documents and Settings

    包 ............. EFTPOS1。已安装BPL。以下组件已注册:TCsdEft.

OK。一切都很好。

我可以在组件托盘的ActiveX页面中看到组件。

但是当我尝试选择组件并将其放在表单上时,我得到"类未注册"错误。

听起来OCX本身没有使用命令行regsvr32.exe工具在Windows上注册。您直接导入了OCX文件,因此IDE基于OCX的嵌入式TypeLibrary创建了一个组件包装器,但是包装器将尝试通过CoCreateInstance()实例化ActiveX对象,因此如果CoCreateInstance()无法找到OCX,您将获得"类未注册"错误。

相关内容

最新更新