佚名通过本文主要向大家介绍了vc6兼容性问题,vc6兼容问题,vc6存在兼容性问题,vc6无法正常启动,vc6无法打开文件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: VC6 无法调用ActiveX DLL的问题。
描述:
现在我不管是用类向导创建TypeLib类来调用 DLL 还是直接从IDispatch来创建或者是用智能指针,都无法再VC6中调用ActiveX DLL了。
请注意,此问题并不是由于没有Coinitialize初始化线程和没有注册DLL导致的。 DLL我都手动注册过。
目前已知的信息是添加TypeLib类调用时 CreateDispatch 的返回值为 FALSE,也就是创建失败了。
但是我反汇编能力有限,不知道具体是什么地方出错了。
我在VS2010中的各种方法调用,都是正常的。
我现在初步怀疑是操作系统有问题(WinXP SP3)。
因为我一直以来都在用同一个版本的VC6,没有安装过任何插件。VC6出问题的几率应该很低。
解决方案1:
谢谢分享
不过估计没必要试了
6.0太老了
现在都VS11了 解决方案2:
描述:
本帖最后由 Gnorth 于 2012-03-09 23:13:14 编辑
因为最近几个月没用到VC6,昨天突然要用到了,发现调用不了ActiveX DLL,于是重装系统,重装VC6。还是调用不了。在VS2010和VBS中测试是正常的,COM组件都是我自己写的,有的是从CcmdTarget继承来的,有的是ALT简单对象的COM组件。现在我不管是用类向导创建TypeLib类来调用 DLL 还是直接从IDispatch来创建或者是用智能指针,都无法再VC6中调用ActiveX DLL了。
请注意,此问题并不是由于没有Coinitialize初始化线程和没有注册DLL导致的。 DLL我都手动注册过。
目前已知的信息是添加TypeLib类调用时 CreateDispatch 的返回值为 FALSE,也就是创建失败了。
但是我反汇编能力有限,不知道具体是什么地方出错了。
我在VS2010中的各种方法调用,都是正常的。
我现在初步怀疑是操作系统有问题(WinXP SP3)。
因为我一直以来都在用同一个版本的VC6,没有安装过任何插件。VC6出问题的几率应该很低。
解决方案1:
谢谢分享
不过估计没必要试了
6.0太老了
现在都VS11了 解决方案2:
获取错误返回值,GetLastError