本机运行正常的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两个文件。
作者: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两个文件。
相关文章推荐
- Nginx限制带宽配置示例
- hdu 5477 A Sweet Journey(水)
- HDU 5194 DZY Loves Balls
- Android常用权限说明
- Android 矢量图(VectorDrawable)及动画(AnimatedVectorDrawable)
- RecyclerView CardView使用解析
- SharedPreferences.Editor 的commit方法与apply方法的区别
- c++笔记01---c++ 简介,g++ 编译器,名字空间,结构,联合,枚举
- 整理BOM时写的关于拆分单元格的VB代码
- 转载:R语言Data Frame数据框常用操作
- 黑马程序员-day07-继承
- 啊啊侧
- TCP/IP总结
- mysql更新或者添加
- 一种排序 Java实现
- flume学习(十一):如何使用Spooling Directory Source
- CVPR 2015深度学习回顾:ConvNet、Caffe、Torch及其他
- ifstream和ofstream操作xml配置文件,修改文件内容
- UICollectionViewController 版本新特性
- 计算时间段相隔日期