当向表单中添加新组件时出现"类未注册"错误消息

4
使用运行Delphi 2010的Windows XP。
我已经得到了一个名为CsdEft.ocx的第三方软件包(用于与EFTPOS终端进行接口交互)。
想要安装,我做了以下步骤:
1. 选择“导入组件” 2. 选择“导入ActiveX控件” 3. 选择“添加”,然后选择CsdEft.ocx。所选OCX会显示出来。点击下一步。 4. 弹出对话框: 类名:TCscEFT 调色板页面:ActiveX 单元目录名称:C:\Delphi\Components 搜索路径:$(BDS)\lib;$(BDSUSERDIR)................... 生成组件包装器-已检查 5. 点击下一步。 6. 选择“安装到新包中” 7. 输入EFTPOS作为包名称。 8. 点击完成。 9. 对话框显示: 包C:\Documents and Settings.............\EFTPOS1.bpl已安装。以下组件已注册:TCsdEft。
好的。所有看起来都很正常。
我可以在组件面板中的ActiveX页面中看到该组件。
但是,当我尝试选择该组件并将其拖放到表单上时,会出现“类未注册”错误。
希望有人能够给我指出哪里出了问题。

作为注册COM服务器的替代方案,您可以使用无需注册的COM。 - David Heffernan
1个回答

15

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接