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来实现数据库操作时,经调试发现,在执行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
拷贝到“研发机”的项目工程目录下,重新编译即可。
相关文章推荐
- CreateInstance(__uuidof(Connection)) 不支持此接口解决方法
- CreateInstance(__uuidof(Connection)) 不支持此接口解决方法
- CreateInstance(__uuidof(Connection)) 不支持此接口解决方法
- 【转】NDK编译可执行文件在Android L中运行显示error: only position independent executables (PIE) are supported.失败问题解决办法。
- vc6.0 执行应用程序正常初始化(0xc0150002)失败 解决办法
- NDK编译可执行文件在Android L中运行显示error: only position independent executables (PIE) are supported.失败问题解决办法。
- sql server代理中作业执行SSIS包失败的解决办法
- AFNetworking 提示"The resource could not be loaded because the App Transport Security policy requires the use of a secure connection" 解决办法
- SQL Server2005作业执行失败的解决办法
- SQL Server2005/2008 作业执行失败的解决办法
- 执行root.sh时ohasd启动失败解决办法
- svn执行clean up失败后提示 cleanup failed–previous operation has not finished; run cleanup .....解决办法
- CreateInstance(_T("ADODB.Connection"))和CreateInstance(__uuidof(Connection))的区别
- 解决克隆 centos虚拟机后修改克隆后的机器的ip、mac、uuid失败的问题 参考 解决办法
- NDK编译可执行文件在Android L中运行显示error: only position independent executables (PIE) are supported.失败问题解决办法。
- Data source rejected establishment of connection, message from server: "Too many connections"解决办法
- webpack执行命令失败之解决办法
- AFNetworking 提示"The resource could not be loaded because the App Transport Security policy requires the use of a secure connection" 解决办法
- Linux-/etc/rc.local 或 service 中使用 sudo -u xxx cmd 执行失败(sorry, you must have a tty to run sudo)解决办法
- ORA-01843: 无效的月份,执行sql语句更改为美国语言后仍然失败的解决办法