转自:http://wangjipei1986.blog.163.com/blog/static/14885365201341010409720/
以前在XP下写程序连接ACCESS数据库一直没发现什么问题,后来使用windows7后,发现在windows7环境下编译出来的连接数据库的程序放到XP下会出现连接失败的现象。曾试过多种解决办法,比如更换编译器版本、重写连接数据库类库,均不能解决,当时解决方法只能用笨方法,就是再虚拟机中再虚拟出一个XP,专门用来编译。谷歌也找不出相关资料,只能自己动手解决。在回头看代码的时候,发现“import C:\Program Files\Common Files\System\ado\msado15.dll”加载ado驱动的这条语句,会不会是windows7下的msado15.dll与windows xp下的不符呢,尝试把xp下的msado15.dll复制过来,修改一下import路径,重新编译后,问题解决,XP下完美运行。现在想想原因,应该是windows 7下的驱动版本比较高,XP下不识别,而xp下编译的在windows7下会兼容(向下兼容)。
把xp系统下的msado15.dll、msjro.dll文件复制到win7下,放到工程文件夹下,然后修改代码中import的引用路径。这样就可以编译运行了。
#import "msado15.dll" rename("EOF", "adoEOF")
#import "msjro.dll" no_namespace rename("ReplicaTypeEnum", "_ReplicaTypeEnum")