vc 在A对话框上点击按钮弹出B对话框,然后获取B对话框控件指针为空
A对话框中实例化B对话框,并调用B对话框成员函数SetCOMPort();voidCDialogOnDialogDlg::OnButtonSetting(){//TODO...
A对话框中实例化B对话框,并调用B对话框成员函数SetCOMPort();
void CDialogOnDialogDlg::OnButtonSetting()
{
// TODO: Add your control notification handler code here
CCOMSetting dlgCOMSetting;
int nResponse = dlgCOMSetting.DoModal();
if(IDOK == nResponse)
{
dlgCOMSetting.SetCOMPort();
}
else if(IDCANCEL == nResponse)
{
return;
}
}
B对话框成员函数定义如下:
UINT CCOMSetting::SetCOMPort()
{
CComboBox *pComboBox = NULL;
pComboBox = (CComboBox *)GetDlgItem(IDC_COMBO_COMPORT);
pComboBox->GetCount();
return 1;
}
问题如下:
B对话框能成功显示,但执行完pComboBox = (CComboBox *)GetDlgItem(IDC_COMBO_COMPORT);后,pComboBox为空,导致下一语句pComboBox->GetCount();执行内存访问越界。 展开
void CDialogOnDialogDlg::OnButtonSetting()
{
// TODO: Add your control notification handler code here
CCOMSetting dlgCOMSetting;
int nResponse = dlgCOMSetting.DoModal();
if(IDOK == nResponse)
{
dlgCOMSetting.SetCOMPort();
}
else if(IDCANCEL == nResponse)
{
return;
}
}
B对话框成员函数定义如下:
UINT CCOMSetting::SetCOMPort()
{
CComboBox *pComboBox = NULL;
pComboBox = (CComboBox *)GetDlgItem(IDC_COMBO_COMPORT);
pComboBox->GetCount();
return 1;
}
问题如下:
B对话框能成功显示,但执行完pComboBox = (CComboBox *)GetDlgItem(IDC_COMBO_COMPORT);后,pComboBox为空,导致下一语句pComboBox->GetCount();执行内存访问越界。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询