毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

如何CreateObject的原理及其会读取哪些注册表信息

更新时间:2015-12-5:  来源:毕业论文

不能用的装有一个专业的VB软件,此VB软件大量的使用了类库和"LibraryName.ClassName"形式的调用方式(主要是用来支持中间件),而这些DLL都放在了此软件指定的目录中并且由某个配置文件控制路径。
这个电脑上的系统自带DLL都可以用CreateObject创建成功,自己写的DLL不能用CreateObject创建。

1 请问如何CreateObject的原理及其会读取哪些注册表信息?
2 请问这种情况下应该如何处理才能修复无法CreateObject的问题?
既然你已经注册成功了该DLL,那为什么不直接引用该DLL?而还要使用CreateObject?
那就没有办法了,绕不开CreateObject,建议你把该DLL放到别的目录试一试。比如System32下 刚才又测试了下,发现没有安装那个专业软件的win7x64也无法CreateObject自己编写的VBDLL中的类的对象。
多半是对象名称错误了。查查你注册的对象名和GUID。
对象名称没有错误。。。真的。
我启动VB运行DLL工程,脚本就可以成功执行CreateObject了。
但是关闭VB后,注册DLL,再运行脚本CreateObject就失败。
首先你要保证你的DLL内的类是“公共”的,类属性视图里有。

另外,CreateObject用到的文件是需要注册的,regsvr32 文件完整路径+文件名.文件扩展名。你还要保证该DLL文件依赖的文件都在环境中存在且能使用。
1、你先把注册表里你这个文件对应的注册信息都清理掉;
2、重新编译DLL,第一次,以不兼容模式编译;
3、第二次,修改编译模式为二进制兼容模式编译,以后都用二进制兼容模式编译;
4、运行RegSvr32将新编译的文件注册;
5、脚本调用,如果还不行,请参考10L。

搞定了,原来是Windows7限制了wscript.exe的执行行为(好像和UAC有关系,不过即使关掉UAC提醒也没用)。
说一下解决方法:
到C:\Windows\SysWOW64目录下,找到wscript.exe,
创建一个备份,命名为wscript2.exe,
然后将vbs文件的打开方式替换为wscript2.exe,
这样就可以使用CreateObject创建和使用自己用VB6写的DLL啦。。yeah~

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。