万恶的“类不支持自动化或不支持期望的接口”问题,欢迎探讨!
我的一个应用程序中引用了ADO对象,编译后在本机(简称电脑A)运行正常,但是在其他多台电脑上(统称电脑B)运行时出现“类不支持自动化或不支持期望的接口”错误,我已经在百度、谷歌了一大通,找到的答案无外乎是电脑A与电脑B的数据库版本与环境不同,通过在电脑A或者电脑B上更新MDAC什么的来解决,但我的问题奇怪之处在于:
1、电脑A与电脑B的ADO版本都是2.8,而且msado15.dll的版本都是2.81.3012.0;
2、电脑A与电脑B的系统都是WinXP SP3,都安装了VB6 SP6,在电脑A上编译后,在本机可以运行,到电脑B上运行出错;但是在电脑B上编译后,在电脑B与电脑A上运行都不会出错。
所以我分析,我的问题应该与ADO版本没有什么关系,请朋友们帮我分析一下会是什么原因造成的,非常感谢!!!
[解决办法]
XP是不同版本的GHOST版的吧?
[解决办法]
* MDAC 的版本
* Microsoft Excel 的版本(如果使用了 Excel 的自动化)
......
要看你的程序做了什么。
[解决办法]
这个东西是由于MS万恶的dll注册机制带来的
具体说一下:
VB这个玩意在生成exe后要有一系列dll才能确保正确运行,这就是VB程序必须打包才能运行的原因。这些dll来源不同(有的是MS系统的,也有MS的软件运行环境带的,还有第三方的包括字自己写的一些dll,而且在你使用电脑安装软件、打补丁的时候dll悄悄的升级)这就有问题了,dll冲突,也叫 DLL hell。
具体表现:类不支持自动化或不支持期望的接口等错误。
具体解决方案:更新安装包中相应的dll为最新,或者打包时使用最新的系统运行环境。
------------------------------------
以前经常被这个问题害得去现场,很气愤MS为什么不彻底解决,但是据说这个问题要等到Windows消失。
[解决办法]
很早以前我也遇到过,因为对象的缺省属性没有写,比如rs(FieldName).Value 只写rs(FieldName),我想,应该是注册表问题,系统重装后,问题不再出现