MFC断点问题。
我的项目里需要根据下拉列表的数字设置EDIT控件的可用数,当我选择2-8时软件运行没问题,当我选择久,运行出现断点。下面是我的代码
void CXxh::OnCbnSelchangeCombo1()
{
// TODO: 在此添加控件通知处理程序代码
int n_jzds = m_xxhjzds.GetCurSel() + 2;
for (int i = 0; i < n_jzds; i++)
{
GetDlgItem(IDC_EDIT_CGQZ1 + i)->EnableWindow(FALSE);
}
GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT3)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
}
这种一般for循环里GetDlgItem的参数越界了,返回是NULL,所以他调用EnableWindow的偏移量地址很小。
引用 皆我百晓生 小程序回复内容作答:
根据你提供的代码,可能的错误原因如下:
除了代码错误外,还可能是由于其他原因导致断点出现,例如内存错误、访问无效指针等。可以在断点触发时查看调试器提供的详细错误信息,以便更好地定位问题的根源。另外,你可以尝试在代码中添加一些调试输出语句,通过打印调试信息来进一步排查问题。
最后,如果问题仍然存在,建议你提供更多的细节信息,例如具体的断点位置、断点触发时的调试器信息等,以便更好地帮助你解决问题。
n_jzds里+2越界了吧?去掉试试
【相关推荐】