注册 登录
编程论坛 VB6论坛

[求助]程序提示“Activex”部件不能创建对象

redelf 发布于 2006-07-20 10:39, 12709 次点击
用setupfactroy打包
程序打包后安装到没有VB的机器上运行时提示“运行错误,'429',ActiveX部件不能创建对象”
我是在程序里调用了两个matlab的com组件mydll1.dll和mydll2.dll
打包时已经在setup factory里勾选了“注册com组件”、“注册类型库”
我想可能还是没有注册成功,请问如何才能解决这个问题
如果要注册的话,应该这么做
6 回复
#2
yeshirow2006-07-20 12:00

ActiveX 部件不能创建对象或返回对该对象的引用(错误 429)

创建对象要求该对象的类已在系统注册表中注册,而且任何相关的动态链接库 (DLL)必须能使用。此错误有以下的原因和解决方法:

类没有注册。例如,系统注册表中没有类的说明,或虽有类说明,但找不到文件,或指定的文件类型错误。
如果可能的话,试着启动对象的应用程序。如果注册信息过期或错误,应用程序应该检查注册表并更正信息。如果启动应用程序没有解决问题,请重新执行应用程序的安装程序。

对象需要的 DLL 不能使用,可能因为找不到,或是已损坏。
确保所有相关的 DLL 都可使用。例如,Data Access Object (DAO) 需要支持多平台的 DLL。如果这是造成错误的原因,则要为此对象重新执行安装程序。

对象在机器上使用,但它是授权的 Automation 对象,而且在具体的例子授权中不能确认可用。
一些对象在部件找到授权键后,才能被具体的例子说明,并且在当前的机器上的实例说明中,确认对象已被注册。当通过正确安装的类型库或对象库对一个对象进行引用时,就能自动提供正确的键。

如果 CreateObject 或 GetObject 的调用结果,是用例子说明,那么,对象必须找到键。在这种情况,它会搜寻系统注册表或查找它在安装时建立的指定文件,例如,扩展名为 .lic 的文件。如果此键找不到,则对象不能被说明。如果用户建立对象应用程序,删除必须文件,或改变系统注册表,则对象不能找到此键。如果此键找不到,对象也不能用例子说明。实例说明可在开发系统中工作,但不能在用户系统中。它对用户重装登记的对象是必须的。

使用 GetObject 函数获得用 Visual Basic 所创建类的引用。
GetObject 不能获得用 Visual Basic 所创建类的引用。

对该对象的访问显式地被拒绝。
例如,试图访问当前正在使用的数据对象,且此对象已被锁定以防止死锁情形发生。如果是这样的情形,可以在其他时间去访问对象。

详细信息,可选取有问题的项目,并按下 F1 (在Windows中)或HELP(在Macintosh中)键。

#3
redelf2006-07-20 13:15

还是没有解决
尝试用命令运行regsvr32 mydll1.dll,提示“Load library失败,找不到指定的模块”

#4
mafuwan2008-07-17 22:03
我现在和你一样也遇到了同样的问题,也以为是没有注册。当然也注册不了。但是回到VB环境再引用一次。也不用保存,原来编好的EXE就可以调用DLL了。VB像SB一样。叫SB得了
#5
simpson2008-07-17 22:34
    没办法    不要窝火了   想想他也帮你赚了银子啊

[[it] 本帖最后由 simpson 于 2008-7-17 22:35 编辑 [/it]]
#6
olderdream2009-09-28 13:16
自己也碰到这个问题-------------,期待解决!!
#7
xingming0222015-02-06 13:29
解决不了,哪个高手给指点下,我也遇到同样的问题了。
1