0
回答
未经处理的异常 读取位置时发生访问冲突
华为云实践训练营,热门技术免费实践!>>>   

MFC框架 visual studio 2010 专业版

在view 中我调用的wnd中方法,给一个指针赋了值

void CMaSvrView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

	GetProgramDir();

	m_bFirst=TRUE;

	int c;
	for (c=0; c<MAX_USER; c++) {
		m_RecData[c]=NULL;
		m_PreIndex[c]=0;
		m_ReadSize[c]=0;
		m_PreData[c]=(BYTE *)new BYTE[PRE_DATA_BUFF_LEN];
	}
	m_CurFocus=-1;
	m_Owner=-1;

	m_TotalInstCount=0;
	LoadInst();

	m_Menu1.LoadMenu(IDR_MENU1);

	CMainFrame *frm;
	frm=(CMainFrame *)AfxGetMainWnd();
	frm->GetMyView(this);//在这里中断,读取到this的值

	SetTimer(TI_FIRST,1,NULL);
}

BOOL CMainFrame::GetMyView(CMaSvrView *view)
{
	//在头文件中定义 CMaSvrView *m_pView;
	m_pView=view;
//这里调试中断,读不到m_pView的值
	for(int i=0; i<MAX_USER; i++)
	{
		m_SocketManager[i].m_Num=i;
		m_SocketManager[i].Init(this);
		//m_SocketManager[i].SetMessageWindow( &m_ctlMsgList );
		m_SocketManager[i].SetServerState( true );	// run as server
	}
	PickNextAvailable();

	//StartServer();

	return(TRUE);
}

但是跟踪调试的时候m_pView 没有被赋值

void CMainFrame::DataReceived(int n)
{
//在这里程序崩溃
m_pView->DataReceived(n);
}

大人们帮我看看这个怎么调试,哪里出了问题呢。

崩溃的错误是

xxx.exe 中的 0x0041406a 处有未经处理的异常: 0xC0000005: 读取位置 0x00000110 时发生访问冲突

MFC
举报
kevin liu
发帖于6年前 0回/11K+阅
顶部