程序崩溃了

Luo_Bryant 2013-03-29 01:07:52
自定义CTermSocket 类继承于 CAsyncSocket,我想在CTermSocket 类的OnConnect函数中调用CTermView(继承于CEditView)的成员函数。


于是在CTermSocket 头文件中定义了CTermView *pView;

可是当我在CTermSocket 类的OnConnect函数中这样使用的时候,程序就崩溃了:

void CTermSocket::OnConnect(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
pView = new CTermView;
ASSERT(pView);
pView->OnConnect(nErrorCode);
CAsyncSocket::OnConnect(nErrorCode);
}

这是怎么回事呀???
...全文
261 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimette 2013-03-30
  • 打赏
  • 举报
回复
引用 13 楼 dahaiI0 的回复:
你只new了个对象又没有CreawteWindow,句柄当然为空了,这里new是错误的,我指的是逻辑上的处理是错误的,你要获取的是框架的视图类指针,一个以存在的指针,而不是再去创建。
+
dahaiI0 2013-03-29
  • 打赏
  • 举报
回复
你只new了个对象又没有CreawteWindow,句柄当然为空了,这里new是错误的,我指的是逻辑上的处理是错误的,你要获取的是框架的视图类指针,一个以存在的指针,而不是再去创建。
Luo_Bryant 2013-03-29
  • 打赏
  • 举报
回复
引用 6 楼 lsq19871207 的回复:
你得先定位在哪儿崩掉了啊
已知道程序在哪里崩溃,but...
Luo_Bryant 2013-03-29
  • 打赏
  • 举报
回复
引用 1 楼 sha_jinhao 的回复:
ASSERT(pView); pView 为空!
我调试了,pView不是空的,但句柄是空的,调用pView->OnConnect(nErrorCode);这里有用到句柄,所以程序崩溃了。但是句柄为什么会是空的呢???望指教!!!
Luo_Bryant 2013-03-29
  • 打赏
  • 举报
回复
引用 9 楼 dahaiI0 的回复:
pView确实不是空,但句柄是空的,调用pView->OnConnect(nErrorCode);这里肯定有用到句柄,所以崩了。 最主要的是pView = new CTermView;这个没看懂你想干什么,重新构造一个视图对象,这个对象跟你当前的视图对象(框架应该是单文档吧)是2个不同的对象
是单文档的, CTermView继承CEditView呀!我想在CTermSocket 类的OnConnect函数中调用CTermView的成员函数呀,所以就先要在CTermSocket 类的OnConnect函数中初始化CTermView的指针pView呀。。。
dahaiI0 2013-03-29
  • 打赏
  • 举报
回复
pView确实不是空,但句柄是空的,调用pView->OnConnect(nErrorCode);这里肯定有用到句柄,所以崩了。 最主要的是pView = new CTermView;这个没看懂你想干什么,重新构造一个视图对象,这个对象跟你当前的视图对象(框架应该是单文档吧)是2个不同的对象
Luo_Bryant 2013-03-29
  • 打赏
  • 举报
回复
引用 4 楼 sha_jinhao 的回复:
不知道了 你在哪里出错的 你回复我可以看得见!
ASSERT(pView);我调试到这里的时候,pView的情况是 0x00386968{CTermView hWnd = 0x00000000} 按理来说pView指向的对象不应该为空的呀!这是怎么回事??怎么解决呀???
Luo_Bryant 2013-03-29
  • 打赏
  • 举报
回复
引用 4 楼 sha_jinhao 的回复:
不知道了 你在哪里出错的 你回复我可以看得见!
先上课去,晚上再看哈
信阳毛尖 2013-03-29
  • 打赏
  • 举报
回复
你得先定位在哪儿崩掉了啊
我看你有戏 2013-03-29
  • 打赏
  • 举报
回复
jimette 2013-03-29
  • 打赏
  • 举报
回复
不知道了 你在哪里出错的 你回复我可以看得见!
Luo_Bryant 2013-03-29
  • 打赏
  • 举报
回复
引用 1 楼 sha_jinhao 的回复:
ASSERT(pView); pView 为空!
我调试了,pView不为空。。。
Luo_Bryant 2013-03-29
  • 打赏
  • 举报
回复
在CTermSocket 类中怎样才能调用到CTermView的函数呀?!
jimette 2013-03-29
  • 打赏
  • 举报
回复
ASSERT(pView); pView 为空!

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧