这段代码DEBUG阶段正常,但在生成RELEASE后运行却出错,为什么?
tjuwx 2004-01-06 10:30:51 我有一段根据文件动态生成弹出菜单的代码,在DEBUG阶段正常,但在生成RELEASE
版本后却在这段出错,报告<该内存不能为“read”>,为什么?
void CHexEditBase::OnContextMenu(CWnd*, CPoint cPoint)
{
BYTE milist[1500];
memset(milist, 0, 1500);
// Fill up the MENUITEMTEMPLATEHEADER structure.
MENUITEMTEMPLATEHEADER* mheader = (MENUITEMTEMPLATEHEADER*) milist;
mheader->versionNumber = 0;
mheader->offset = 0;
int bytes_used = sizeof(MENUITEMTEMPLATEHEADER);
// Add the following menu items to menu bar:
bytes_used += AddMenuItem(milist + bytes_used, L"POPUP", 0, TRUE, TRUE);
SearchAndFormatToMenu(m_nCurrentAddress,milist + bytes_used);
// Load resource from a menu template in memory.
CMenu cMenu;
ASSERT(cMenu.LoadMenuIndirect(milist));
CMenu *p = cMenu.GetSubMenu(0);
//POPUP menu
p->TrackPopupMenu(TPM_LEFTALIGN, cPoint.x, cPoint.y, this);
}
且去掉p->TrackPopupMenu(TPM_LEFTALIGN, cPoint.x, cPoint.y, this);后就不报错。