ADO连接数据库,编译到客户机运行时出现CreateInstance报错0x80004002,经查是由于ADO版本不一致引起的。
解决方法将原来stdafx.h中的
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
更换为
#import "c:\Program Files\Common Files\System\ado\msado28.tlb" no_namespace rename("EOF", "adoEOF")
即可
详见微软文章
https://support.microsoft.com/zh-cn/kb/2517589
https://support.microsoft.com/zh-cn/kb/2640696
但是如果调用CreateParameter的话,还是会报0xC0000005错误,这是由于msado28.tlb引用的是64位版本,要改成32位版本的引用即可。
#import "c:\Program Files (x86)\Common Files\System\ado\msado28.tlb" no_namespace rename("EOF", "adoEOF")