看流星社区

 找回密码
 注册账号
查看: 1874|回复: 2

vc++新手问题!对vs2010和vc6.0区别懂得进

[复制链接]

该用户从未签到

发表于 2014-7-21 08:19:07 | 显示全部楼层 |阅读模式
今天在学习孙鑫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

该用户从未签到

发表于 2014-7-21 08:22:46 | 显示全部楼层
代码本身没什么问题 代码重新生成下 或者把DEBUG文件夹删掉重新生成试试看 这个跟VS VC6.0没什么关系       
GetMenu()->GetSubMenu(0)->CheckMenuItem(1,MF_BYPOSITION|MF_CHECKED); //选中菜单
GetMenu()->GetSubMenu(0)->SetDefaultItem(1,MF_BYPOSITION);     //默认菜单

该用户从未签到

发表于 2014-7-21 08:23:53 | 显示全部楼层
你可以查看堆栈(视图窗口中有堆栈窗口) 来看看代码停留在哪个函数里面比如是停留在 GetMenu() 中 还是 GetSubMenu(0) 中.
根据经验你这个可能是 GetMenu()->GetSubMenu(0) 返回的数据是 NULL ,也就是没有子菜单,但是你没有检查 就去EnableMenuItem 了
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-18 07:32

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表