問題が発生しています。私は IPベースのコールボイスIP上で使用されるプロジェクト "MicroSIP"を持っています。私はVS 2010にそれを実行しており、私は必要に応じてそれをカスタマイズするために が必要です。このために、メインダイアログ(Dialer) を編集し、他のコントロール(CEditの編集コントロール など)を追加し、「変数を追加」ウィザードのメンバー変数を追加すると、 「DoDataExchangeを更新できません方法"。 プログラムに新たに配置された "Edit Control"の参照を取得すると、NULLポインタまたは未定義参照があります。DoDataExchangeメソッドを更新できません:Visual Studio 2008またはVS 2010に変換されたVS2000オプション
IDC_EDIT_Address
がid
で、MAcAddressEditctrl
がCWnd
オブジェクトですそれはDDX_Control(pDX, IDC_EDIT_Address, MacAddressEditCtrl);
の内側になりましクラッシュします。
void AFXAPI DDX_Control(CDataExchange* pDX, int nIDC, CWnd& rControl)
{
if ((rControl.m_hWnd == NULL) && (rControl.GetControlUnknown() == NULL)) // not subclassed yet
{
ASSERT(!pDX->m_bSaveAndValidate);
pDX->PrepareCtrl(nIDC); //it crashes here...
HWND hWndCtrl;
pDX->m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
if ((hWndCtrl != NULL) && !rControl.SubclassWindow(hWndCtrl))
{
ASSERT(FALSE); // possibly trying to subclass twice?
AfxThrowNotSupportedException();
}
#ifndef _AFX_NO_OCC_SUPPORT
else
{
if (hWndCtrl == NULL)
{
if (pDX->m_pDlgWnd->GetOleControlSite(nIDC) != NULL)
{
rControl.AttachControlSite(pDX->m_pDlgWnd, nIDC);
}
}
else
{
// If the control has reparented itself (e.g., invisible control),
// make sure that the CWnd gets properly wired to its control site.
if (pDX->m_pDlgWnd->m_hWnd != ::GetParent(rControl.m_hWnd))
rControl.AttachControlSite(pDX->m_pDlgWnd);
}
}
#endif //!_AFX_NO_OCC_SUPPORT
}
}