+ -
当前位置:首页 → 问答吧 → 调用一个ActiveX Dll不放到系统目录对象就无法创建?

调用一个ActiveX Dll不放到系统目录对象就无法创建?

时间:2011-11-23

来源:互联网

我有一个文件"QMDispatch.dll"(是其它软件的一个插件)已经注册到系统,和工程文件放在同一个目录下,对象浏览器里也引用了此DLL,但是……
VB code

Dim obj As Object
Set obj = CreateObject("QMDispatch.QMFunction")  '此时会出现错误:ActiveX 部件不能创建对象或返回对该对象的引用(错误 429)


而把"QMDispatch.dll"复制到windows或system32目录下注册,则对象创建成功,不会出错。

为什么放到别的目录就不行?一定要放到系统目录?

我用同样的方法调用另外一个DLL文件,无论放到哪里都能成功,难道是这个"QMDispatch.dll"有问题吗?

顺便问一下CreateObject这个函数是使用什么路径下的文件来创建对象?他的参数只能写文件名和类名不能写路径呀!!

作者: supertankHZT   发布时间: 2011-11-23

这个,,,不好说。你添加引用没有?
要添加DLL的引用。

作者: Veron_04   发布时间: 2011-11-23

DLL中的组件如果使用了别的组件,并且写死了是当前目录下的组件,那就只能在当前目录下满足这些要求.

查明一下都有什么依赖组件,一起打包试试.

作者: myjian   发布时间: 2011-11-23

引用 1 楼 veron_04 的回复:
这个,,,不好说。你添加引用没有?
要添加DLL的引用。

引用了呀,看第一行我已经说明了

作者: supertankHZT   发布时间: 2011-11-23

热门下载

更多