今天在学习孙鑫vc++,出现了莫名奇怪的问题,
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
/////////////////
GetMenu()->GetSubMenu(0)->EnableMenuItem(0,MF_BYPOSITION|MF_CHECKED);
return 0;
}
这段代码是给一个窗口的第一个子菜单下的第一个菜单项标记√。可是我调试时出现了这个问题:菜单.exe 中的 0x5115a12c (mfc100ud.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x00000004 时发生访问冲突。这把我弄懵了,望大神们替我解决啊!万分感激!
忘了,我用的是vs2010,孙鑫用的是vc6.0
我看了堆栈,第一行是“mfc100ud.dll!CMenu::GetSubMenu(int nPos) 行 958 + 0xc 字节”,并且黄箭头指在afxwin1.inl文件的_“AFXWIN_INLINE CMenu* CMenu::GetSubMenu(int nPos) const
{ ASSERT(::IsMenu(m_hMenu)); return CMenu::FromHandle(::GetSubMenu(m_hMenu, nPos)); }”
刚学vc,真是弄不明白这些,请大虾在详细点告诉我,我该怎么改代码,才能不出错。