关于vc编译环境和系统设置对编译程序的影响问题!高手请进!

wormholes 2002-09-15 09:56:43
代码:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;

BOOL CMytDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;

////////////////////打开数据库////////////
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data

Source="+(_bstr_t)lpszPathName,"","",adModeUnknown);///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为

:Provider=Microsoft.Jet.OLEDB.3.51; }
m_pRecordset.CreateInstance("ADODB.Recordset");
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return FALSE;
}

return TRUE;
}
问题如下:
在win2000下运行正常,但是在win98下m_pRecordset为空,打开数据库失败,提示“指针无效”
我又装了一个完全空白的professional win 2000 ,运行正常
打开了以前编程的备份文件,同一套代码,运行以前编译的程序,非常正常
Rebuild All后编译的程序就很不幸了,依然是m_pRecordset为空,打开数据库失败,提示“指针无效”
我想可能是编译环境的不同而引起的,没有记得变更过系统的什么设置和 VC的什么设置,如果有什么线索,或者哪位兄弟姐妹知道是怎么回事
请告诉我一声,实在是不胜感激了。
...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wormholes 2002-09-16
  • 打赏
  • 举报
回复
问题找到了!!!
msado15.dll
在安装的时候有两个不同的版本,
2000下和98下的版本不同一个400多k,一个300多k
dll文件不同了编译出来的东西也就不同了
wormholes 2002-09-15
  • 打赏
  • 举报
回复
打开了以前编程的备份文件,同一套代码,运行以前编译的程序,非常正常
Rebuild All后编译的程序就很不幸了,依然是m_pRecordset为空,打开数据库失败,提示“指针无效”

上面所说的带开备份文件测试,运行以前编译的程序和rebuild all的程序都是在win98下测试的!,不是Dao的问题阿,help me !
cadinfo 2002-09-15
  • 打赏
  • 举报
回复
请在98下安装Ado组件!

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧