在Win7上编译的ADO程序不能在XP运行的原因

在Win7上编译的ADO程序不能在XP运行的原因

在我这里有一个产品是2008年开发的,当时是在XP上开发,也是在XP上编译,这样在XP和WIN7上运行都没有问题。由于需要增加
一些功能,需要再开发一下。目前都是在Win7上开发了,这样也得把以前的代码放到Win7上编译,这样开发出来的程序在Win7上
运行很正常,无论功能或者速度,都没有问题。但客户那里是运行XP的电脑,需要放到XP上运行。这样问题就来了,在Win7上编
译出来程序在XP运行,就会访问不了ADO,主要在连接ADO时出错,抛出一个异常,并没有异常的详细描述,就不知道是什么原因
出错。为了这个问题,找了一段时间,从程序代码到编译选项都作了全面的检查,还是百思不得其解,只能再百度、GOOGLE了。
总算找到主要原因,原来是由于XP运行的ADO是比较低的版本,而WIN7上发布的ADO是高版本,这样在WIN7上编译的程序,就导入
了高版本的判断,导致在XP上使用ADO就抛出异常,并退出程序的运行。找到了问题,就容易解决了,把XP电脑上的ADO的DLL拷贝
到WIN7的电脑,然后修改代码从XP的DLL导入,然后再重新编译就可以解决了。


WIN7 ADO的文件: msado15.dll,版本:6.1
XP ADO的文件: msado15.dll,版本:2.81