您的位置:首页 > 产品设计 > UI/UE

CreateInstance(__uuidof(Connection))执行失败的解决办法

2017-12-07 12:02 525 查看
遇到的实际问题:

在MFC中,使用ADO来实现数据库操作时,经调试发现,在执行if(pConnection.CreateInstance(__uuidof(Connection))
!= S_OK)时成功,即:

pConnection.CreateInstance(__uuidof(Connection))失败。

 

出错的环境:

研发机:win10

客户机:win7和xp

 

原因:

在头文件“stdafx.h”下,有一行

#import "C:Program Files/Common Files/System/ado/msado15.dll" rename("EOF","rsEOF")

即:使用“研发机(win10)”对应目录下的“msado15.dll”版本来编译程序,这才导致了“客户机(win7和xp)”不兼容的情况。

 

脑补时刻:通常,软件都是向下兼容的。

因此,关于当前msado15.dll的兼容问题,应当是这样的

①使用win10的msado15.dll来编译程序在win7和xp上当然会有问题。

②如果使用win7的msado15.dll来编译,在xp在运行仍会有问题,在win10上运行正常。

③如果使用xp的msado15.dll来编译,在win10和win7上运行都正常。

 

解决办法:降低到客户机可以兼容的msado15.dll版本

①打开“stdafx.h”,找到相应位置,并如图修改:



注释掉

#import "C:Program Files/Common Files/System/ado/msado15.dll" rename("EOF","rsEOF")

改成

#import "msado15.dll" rename("EOF","rsEOF")

②到“最低版本的客户机(本文是xp)”下,将

C:Program Files/Common Files/System/ado/msado15.dll

拷贝到“研发机”的项目工程目录下,重新编译即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc ado msado15.dll
相关文章推荐