您的位置:首页 > 其它

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

2015-09-30 16:39 405 查看
原文链接:http://blog.csdn.net/ringphone/article/details/444182 

作者:ringphone

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两个文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: