本文主要是介绍ado 0x80004002 0xC0000005,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ADO连接数据库,编译到客户机运行时出现CreateInstance报错0x80004002、CreateParameter报0xC0000005错误的解决方法:
原因是利用高版本的maado15.dll编译的程序,可客户机器上的msado15.dll版本较低。如果在win7上编译的而客户机器是xp,则用如下描述的解决方案。如果开发机器和客户机都是win7,则让客户安装下win7 sp1补丁后尝试重启软件。
解决方案如下:
1、先下载下面的文件32位WIN7系统: Msado60_Backcompat_i386.tlb
64位WIN7系统(INTEL平台): Msado60_Backcompat_i386.tlb 和 Msado60_Backcompat_x64.tlb
64位WIN7系统(AMD平台): Msado60_Backcompat_i386.tlb 和 Msado60_Backcompat_ia64.tlb
2、拿64位系统示例
注册Msado60_Backcompat_i386.tlb
(1)、将Msado60_Backcompat_x64.tlb复制到C:\Program Files\Common Files\System\ado\目录下;将Msado60_Backcompat_i386.tlb拷贝到C:\Program Files (x86)\Common Files\System\ado\目录下;
(2)、再将C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe复制到类似(1)中的两个ado目录下(3)、运行CMD,--{这一步可以省略,不注册包含绝对路径也可以}
分别输入:
pushd C:\Program Files (x86)\Common Files\System\ado\回车
regtlibv12.exe msado60_Backcompat_i386.tlb回车
注意:
32位系统需要注册Msado60_Backcompat_i386.tlb;
64位WIN7系统(INTEL平台)需要注册:
Msado60_Backcompat_i386.tlb和Msado60_Backcompat_x64.tlb这2个文件;
64位WIN7系统(AMD平台)需要注册:
Msado60_Backcompat_i386.tlb和Msado60_Backcompat_ia64.tlb这2个文件;
3、替换程序代码
如果是VC++
将:
#ifdef WIN64
#import "c:\Program Files\Common Files\System\ado\Msado15.dll" no_namespace rename("EOF","adoEOF")
#else
#import "c:\Program Files (x86)\Common Files\System\ado\Msado15.dll" no_namespace rename("EOF","adoEOF")
#endif
替换为:
#ifdef WIN64
#import "c:\Program Files\Common Files\System\ado\msado60_Backcompat_x64.tlb" no_namespace rename("EOF", "adoEOF")
//#import "C:\Program Files\Common Files\System\ado\msado60.tlb" no_namespace rename("EOF", "adoEOF")
//#import "c:\Program Files\Common Files\System\ado\msado28.tlb" no_namespace rename("EOF", "adoEOF")
#else
#import "c:\Program Files (x86)\Common Files\System\ado\msado60_Backcompat_i386.tlb" no_namespace rename("EOF","adoEOF")
#endif
4、重新生成解决方案即可
这篇关于ado 0x80004002 0xC0000005的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!