本文主要是介绍vs2013右键菜单 0xC0000005: 读取位置 0x00000004 时发生访问冲突,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
孙鑫vc++6.0教程第六课1小时32分左右有个创建右键菜单的教程,照教程录入后会报错,如下
0x10164A91 (mfc120ud.dll) (Menu.exe 中)处的第一机会异常: 0xC0000005: 读取位置 0x00000004 时发生访问冲突。
0x10164A91 (mfc120ud.dll) (Menu.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000004 时发生访问冲突。
百度了一下之后,没找到解决方法,自己猜测试了一下,原来是子菜单没有。
原来的代码:
menu.LoadMenu(IDR_MENU1);CMenu *pPopup;pPopup=menu.GetSubMenu(0);ClientToScreen(&point);pPopup->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
这样会报错
然后改了一下代码:
menu.LoadMenu(IDR_MAINFRAME);CMenu *pPopup;pPopup=menu.GetSubMenu(0);ClientToScreen(&point);pPopup->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
发现是自己创建的菜单中没有子项
所以添加子项就可以了
注意弹出菜单的 属性设置:顶层菜单是没有ID的(COMMAND),只有索引(POSITION)
这样就可以了
花了一个多小时,就搞定这么小的知识点。
分享给后来者吧
这篇关于vs2013右键菜单 0xC0000005: 读取位置 0x00000004 时发生访问冲突的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!