BOOL CToolManagementApp::InitADO()
{
CoInitialize(NULL);
HRESULT hrpC, hrpR;
hrpC = m_pConnection.CreateInstance(__uuidof(Connection));
hrpR = m_pRst.CreateInstance(__uuidof(Recordset));
if (SUCCEEDED(hrpC) && SUCCEEDED(hrpR))
return TRUE;
return FALSE;
}
1、如上代码在WIN7 VS2013开发生成exe,在WIN7系统上return TRUE;,但把exe COPY到XP系统上就return FALSE;
2、相关代码在在XP VC6上也生成没有问题
http://bbs.csdn.net/topics/390639155?page=1 这个参照过修改过了没用
6 个解决方案
#1
大神们帮忙分析分析啊
#2
WIN7的ADO版本比XP的高,在高版本生成的程序在低版本不兼容,需要反过来,在XP编译,在WIN7和XP都可以运行。
#3
关键是在XP下装不了VS2013
#4
试试下载一个低版本的msado15.dll(比如这个 http://pan.baidu.com/s/1mhMGpCW),放在项目文件中,然后用相对路径import
#import "msado15.dll" no_namespace rename("EOF","adoEOF")
在win7中编译,然后再试试拷到XP里,应该就行了。
#import "msado15.dll" no_namespace rename("EOF","adoEOF")
在win7中编译,然后再试试拷到XP里,应该就行了。
#5
在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
#6
感谢各位
拷贝XP系统底下的msado15.dll和msadox.dll到工程ADO目录下重新编译后OK
拷贝XP系统底下的msado15.dll和msadox.dll到工程ADO目录下重新编译后OK
#import "./ADO/msadox.dll"
#import "./ADO/msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
#1
大神们帮忙分析分析啊
#2
WIN7的ADO版本比XP的高,在高版本生成的程序在低版本不兼容,需要反过来,在XP编译,在WIN7和XP都可以运行。
#3
关键是在XP下装不了VS2013
#4
试试下载一个低版本的msado15.dll(比如这个 http://pan.baidu.com/s/1mhMGpCW),放在项目文件中,然后用相对路径import
#import "msado15.dll" no_namespace rename("EOF","adoEOF")
在win7中编译,然后再试试拷到XP里,应该就行了。
#import "msado15.dll" no_namespace rename("EOF","adoEOF")
在win7中编译,然后再试试拷到XP里,应该就行了。
#5
在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
#6
感谢各位
拷贝XP系统底下的msado15.dll和msadox.dll到工程ADO目录下重新编译后OK
拷贝XP系统底下的msado15.dll和msadox.dll到工程ADO目录下重新编译后OK
#import "./ADO/msadox.dll"
#import "./ADO/msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")