提示Unhandled exception in *.exe:0xc0000005 Access Voilation

haosijia19861986 2008-06-20 11:48:34
程序是这样的
void jsk::OnSelchangeCombo1() //点击组合框的一栏弹出对话框
{ int index;
index=((CComboBox *)GetDlgItem(IDC_COMBO1))->GetCurSel();
((CComboBox *)GetDlgItem(IDC_COMBO1))->GetLBText(index,m_str);
GetName(m_str); ////////////////////////////这句出错,提示Unhandled exception in *.exe:0xc0000005 Access Voilation

qq.DoModal();
UpdateData(FALSE);
}
void jsk::GetName(CString lpHost)
{ _RecordsetPtr ptr;
CMy11App * p=(CMy11App *)AfxGetApp();
if(lpHost == NULL)
return ;
else
{p->strSql = "select * from TABLE4 where 主人='"+lpHost+"'";
p->open(ptr);
int i=0;
while(!ptr->rsEOF)
{
n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("姓名");
GetName(n[i]);
qq.m[i]=n[i];
i++;
ptr->MoveNext();
}
}

}
看网上说好像是因为无效句柄,常常是由于指针问题引起的,但俺不会改了,不懂
...全文
474 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ronald1991 2011-04-21
  • 打赏
  • 举报
回复
我也是这问题啊
CounterHack 2008-06-21
  • 打赏
  • 举报
回复
按F11,运行到GetName里面,看看哪行出错.
缘来是梦 2008-06-21
  • 打赏
  • 举报
回复
还没有解决的话,我也学习学习吧!!
000afei@163.com 前面是3个零!
abomber2 2008-06-20
  • 打赏
  • 举报
回复
p->open(ptr);函数原型是怎样?

ptr是传出参数的话 要指针或者引用,看你的程序应该是引用,假如不是引用的话那错误就是
while(!ptr->rsEOF) 引起的,因为ptr是无效的
cwc270 2008-06-20
  • 打赏
  • 举报
回复
检查一下你这个p->open(ptr);操作成功了吗?
或者记录比较多的时候,n[i],qq.m[i]会不会溢出?
  • 打赏
  • 举报
回复
很明显,你访问了无效指针。
使用前先判断一下是否有效。
soliddream66 2008-06-20
  • 打赏
  • 举报
回复
运行项目,缺少链接库的话
#ifdef _DEBUG
#pragma comment (lib, "comsuppwd.lib")
#else
#pragma comment (lib, "comsuppw.lib")
#endif

另外我建议把Open函数改成如下试试
void CTryDlg::GetName(CString str)
{
_RecordsetPtr ptr;
CTryApp * p=(CTryApp *)AfxGetApp();
if(!str.IsEmpty())
{
try
{
p->strSql = "select * from TABLE4 where 一级故障名称="+str;
p->open(ptr);
int i=0;

while(!ptr->rsEOF)
{
n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("规则名称");
GetName(n[i]);
qq.m[i]=n[i];
i++;
ptr->MoveNext();
}

}
catch(_com_error e)
{
AfxMessageBox(e.Description());

}
}
return;

}
haosijia19861986 2008-06-20
  • 打赏
  • 举报
回复
没人帮忙了吗,还没解决呢,555
haosijia19861986 2008-06-20
  • 打赏
  • 举报
回复
检查了,都对,就是运行到GetName(m_str);出错
lijianli9 2008-06-20
  • 打赏
  • 举报
回复
index=((CComboBox *)GetDlgItem(IDC_COMBO1))->GetCurSel(); 返回值你检查了吗?
haosijia19861986 2008-06-20
  • 打赏
  • 举报
回复
还有没有大侠愿意帮忙,留下邮箱,急呀
haosijia19861986 2008-06-20
  • 打赏
  • 举报
回复
奇怪,我编译连接都通过了呀
soliddream66 2008-06-20
  • 打赏
  • 举报
回复
我编译出现如下错误
1>try.obj : error LNK2019: unresolved external symbol "wchar_t * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPA_WPBD@Z) referenced in function "public: __thiscall _bstr_t::Data_t::Data_t(char const *)" (??0Data_t@_bstr_t@@QAE@PBD@Z)
1>tryDlg.obj : error LNK2001: unresolved external symbol "wchar_t * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPA_WPBD@Z)
1>tryDlg.obj : error LNK2019: unresolved external symbol "char * __stdcall _com_util::ConvertBSTRToString(wchar_t *)" (?ConvertBSTRToString@_com_util@@YGPADPA_W@Z) referenced in function "public: char const * __thiscall _bstr_t::Data_t::GetString(void)const " (?GetString@Data_t@_bstr_t@@QBEPBDXZ)

好像是缺了外部链接库吧
haosijia19861986 2008-06-20
  • 打赏
  • 举报
回复
楼上2位,已经发到邮箱里了,谢谢帮忙
guangyou 2008-06-20
  • 打赏
  • 举报
回复
bingcheng-888@163.com
有时间共同研究一下
soliddream66 2008-06-20
  • 打赏
  • 举报
回复
soliddream@163.com
偶看看
haosijia19861986 2008-06-20
  • 打赏
  • 举报
回复
哪位大侠把邮箱留下好吗
zgl7903 2008-06-20
  • 打赏
  • 举报
回复
把Debug,Release删除了打包上传
haosijia19861986 2008-06-20
  • 打赏
  • 举报
回复
还是没找到错误呀,哪位大侠有空,我把工程发过去,实在找不到了,这对俺这种刚学的人也太难了吧
luohongming 2008-06-20
  • 打赏
  • 举报
回复
if(lpHost == NULL)
return ;
这句会不会有问题???
加载更多回复(4)

16,472

社区成员

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

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

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