MyException - 我的异常网
当前位置:我的异常网» VC/MFC » MFC上Dlg类中调用OnAccept错误中断

MFC上Dlg类中调用OnAccept错误中断

www.MyException.Cn  网友分享于:2013-02-20  浏览:27次
MFC下Dlg类中调用OnAccept异常中断
MFC下Dlg类中调用OnAccept异常中断,我编写啦CSocket的派生类Cmysocket!
在Cmysocket 添加Dlg类的对象m_client
// Cmysocket.cpp : 实现文件
#include "stdafx.h"
#include "winsocktest.h"
#include "Cmysocket.h"
#include "winsocktestDlg.h"


Cmysocket::Cmysocket()
{
m_client=NULL;


}

Cmysocket::~Cmysocket()
{
 if(m_client!=NULL)
    {
        delete m_client;
        m_client=NULL;        
    }

}

// Cmysocket 成员函数

void Cmysocket::OnAccept(int nErrorCode)
{
m_client->onAccept();
CAsyncSocket::OnAccept(nErrorCode);
}




在Dlg类中添加啦CSocket类的对象m_recv
在Cmysocket中重载啦void Cmysocket::OnAccept(int nErrorCode)
void Cmysocket::OnAccept(int nErrorCode)
{
m_client->onAccept();//调用Dlg类中的onAccept(){m_Server->Accept(*m_Recv);},编译器提异常中断
CAsyncSocket::OnAccept(nErrorCode);
}

//winsocktestDlg.cpp : 实现文件
void CwinsocktestDlg::onAccept(void)
{
m_Recv=new Cmysocket;
        m_Server->Accept(*m_Recv);


}


我的思路是:首先只要有Cmysocket::onAccept事件产生,就调用Dlg类的对象m_Server,然后调用m_Server->Accept(*m_Recv)和m_Recv建立连接,但是 当我运行到m_Server->Accept(*m_Recv)就会出现异常中断(
winsockServer.exe 中的 0x00418a46 处最可能的异常: 0xC0000005: 写入位置 0x00000138 时发生访问冲突
winsockServer.exe 中的 0x00418a46 处有未经处理的异常: 0xC0000005: 写入位置 0x00000138 时发生访问冲突),准确的说初始化的m_Recv=new Cmysocket;就中断啦!

------解决方案--------------------
这上面并没有说明m_client被初始化了(分配了内存地址)  你的m_client是个空指针当然报错
------解决方案--------------------
引用:
我一用


C/C++ code
?



1

m_client->m_Server怎么就报上面的错误! 是我没有初始化指针吗?我在类开头就用啦



C/C++ code
?



12345678910111213141516

Cmysocket::Cmysocket() {     m_client=NULL; //    m_Server=ne……

m_client指针为NULL ???

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有