本机运行正常的ADO程序在别的机器上无法运行的问题

CSDN论坛上经常看到在本机编译运行正常的使用了ADO的程序放到别的机器上就不能运行了,我原来也碰到过这样的问题,后来发现是ADO引擎版本的问题,安装了VC的机器一般其数据库引擎版本都比较高,到低版本的系统就出问题了,解决方法就是把MDAC连同你的程序一起安装到目标机器,但是有没有更好的解决方法呢?答案是有的,就是改动一下你的源代码,一般调用ADO的程序代码里都会有这样一句:

#import "c:/Program Files/Common Files/System/ADO/msado15.dll" no_namespace rename("EOF","EndOfFile")

版本兼容性的问题就是出在这里,因为这是跟import的DLL版本相关的,我们只要把这个DLL换成低版本的就能解决兼容性问题。我没试过直接从其他机器COPY并覆盖这个DLL,我是新装了一台机器,WIN2000系统,装完不升级,任何补丁都不打,然后装VC,自定义安装,不选数据库引擎,装完后编译一下程序,在源代码目录就会生成msado15.tlh和msado15.tli两个文件,修改一下源代码,把
#import "c:/Program Files/Common Files/System/ADO/msado15.dll" no_namespace rename("EOF","EndOfFile")
替换成:
#pragma warning(disable:4146)
#include "msado15.tlh"
#pragma warning(default:4146)

这样就跟DLL的版本无关了,以后写另外的ADO程序,也只要include这个msado15.tlh文件就行了,不需要import。因此要注意备份msado15.tlh和msado15.tli两个文件。
这两个文件大家要是嫌自己生成麻烦的话,可以在这里下载

你可能感兴趣的:(c,数据库,dll,import,include,引擎)