现在的位置: 首页 > 综合 > 正文

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

2013年10月14日 ⁄ 综合 ⁄ 共 837字 ⁄ 字号 评论关闭

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

 

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

 

版本兼容性的问题就是出在这里,因为这是跟importDLL版本相关的,我们只要把这个DLL换成低版本的就能解决兼容性问题。我没试过直接从其他机器COPY并覆盖这个DLL,我是新装了一台机器,WIN2000系统,装完不升级,任何补丁都不打,然后装VC,自定义安装,不选数据库引擎,装完后编译一下程序,在源代码目录就会生成msado15.tlhmsado15.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.tlhmsado15.tli两个文件。

这两个文件大家要是嫌自己生成麻烦的话,可以在这里下载

 

 

该文章转载自网络大本营:http://www.xrss.cn/Info/11059.Html

 

抱歉!评论已关闭.