MFC OnDestroy()断言错误???????

qq381426068 2010-05-29 05:27:47
我希望客户正常退出前能发给服务端下线消息所以写了以下代码:

服务端接收部分判断:
void fuwuduanReceive::OnReceive(int nErrorCode)
{
if(str==_T("woxiale"))
{
CString name_desu;
arIn>>name_desu;
arIn.Close();
int o=m_pR->m_list.GetCount();
int counting_go=0;
for(int u=0;u!=o;++u)
{
CString word_to;
m_pR->m_list.GetText(u,word_to);
if(name_desu==word_to)
counting_go=u;
}

m_pR->m_list.DeleteString(counting_go);
m_pR->m_out+=name_desu;
m_pR->m_out+=_T("已下线!\r\n");
m_pR->UpdateData(FLASE);
}
}

客户端发送部分:
void CkehuduanDlg::OnDestroy()
{
CSocketFile file(&MySocket);
CArchive arOut(&file,CArchive::store);
CString word(_T("woxiale"));
arOut<<word;
arOut<<name;
arOut.Close();//这句和arOut.Flush()加与不加一样结果
CDialog::OnDestroy();
// TODO: 在此处添加消息处理程序代码
}


然后一触发就狂弹出断言错误An attempt was made to access an unnamed file past its end,即过界了,是不是窗口销毁就不能发送的了啊?哎~~~谁来救救我啊!!!!该怎么改啊?????
...全文
168 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq381426068 2010-05-29
  • 打赏
  • 举报
回复
客户端发送部分:
void CkehuduanDlg::OnDestroy()
{
CSocketFile file(&MySocket);
CArchive arOut(&file,CArchive::store);
CString word(_T("woxiale"));
arOut<<word;
arOut<<name;
Sleep(100);//加上这个就可以了,原因是还没发过去确认就断开了,TCP认为是不合法的
CDialog::OnDestroy();
// TODO: 在此处添加消息处理程序代码
}
v2x222 2010-05-29
  • 打赏
  • 举报
回复
双刃剑0------解决你问题的,给我分,哈哈
向立天 2010-05-29
  • 打赏
  • 举报
回复
别再OnDestory里写
在OnClose里试试
qq381426068 2010-05-29
  • 打赏
  • 举报
回复
谁能给邮箱出来,我发代码过去~~急急急!!!
soswaidao 2010-05-29
  • 打赏
  • 举报
回复
代码不够健壮
qq381426068 2010-05-29
  • 打赏
  • 举报
回复
服务端接收部分判断:
void fuwuduanReceive::OnReceive(int nErrorCode)
{
if(str==_T("woxiale"))
{
CString name_desu;
arIn>>name_desu;
arIn.Close();
int o=m_pR->m_list.GetCount();
int counting_go=0;
for(int u=0;u!=o;++u)
{
CString word_to;
m_pR->m_list.GetText(u,word_to);
if(name_desu==word_to)
counting_go=u;
}

m_pR->m_list.DeleteString(counting_go);
m_pR->m_out+=name_desu;
m_pR->m_out+=_T("已下线!\r\n");
m_pR->UpdateData(FLASE);
}
}

客户端发送部分:
void CkehuduanDlg::OnDestroy()
{
CSocketFile file(&MySocket);
CArchive arOut(&file,CArchive::store);
CString word(_T("woxiale"));
arOut<<word;
arOut<<name;

// 不加也是错的

CDialog::OnDestroy();
// TODO: 在此处添加消息处理程序代码
}
fishion 2010-05-29
  • 打赏
  • 举报
回复
关闭了还发送?发送再关闭吧
热更新框架设计系列课程总体介绍:        本系列课程由《热更新框架设计之Xlua基础》、《热更新框架设计之热更流程与热补丁技术》、《热更新框架设计之游戏客户端框架》三套课程组成。 三套课程是一个不可分割有机的整体,笔者带领大家由浅入深逐级深入 ,领悟热更精髓的基础之上,通过高端架构设计设计出“低耦合”、“低侵入”、“高复用”性的游戏(VR/AR)客户端热更框架。《热更新框架设计之客户端热更框架》课程介绍:        本作是热更框架系列课程中的客户端框架设计与实现部分。理解本作需要之前的所有知识点积累,在其基础之上给学员展现当今商业热更框架中,商业级热更框架的基本原理、设计全过程、实现框架产品等全过程。通过本作学习可以让资深开发人员晋升为游戏架构师、主程、技术总监等职位。        为了更好更快的服务广大学员,本课程分为上、中、下三部分,内容如下:        上部:               UI框架与AB框架整合,重构整合为 “热更新UI框架”。        中部:            “热更新UI框架”与热更流程技术重构整合。              纯Lua框架设计理念与实现。        下部:               复合型热更框架设计与实现。               框架产品加入HotFix功能模块,且功能演示与测试完善。《热更新框架设计之客户端热更框架(中部)》课程介绍:        热更客户端中部,主要就两大部分进行讲解:        第一部分:  “热更新UI框架”与热更流程技术重构整合         这部分“热更新流程实现脚本”与之前的UI框架、AB框架进行无缝的重构与整合进行开发。         这里涉及到很多地方的重构与处理:         1: Unity编辑器脚本中的创建校验文件、拷贝资源文件等的重构。         2: 由于单机版本框架所使用的Resources 目录被彻底取消,所以整个框架中,凡是涉及到Resources的编码部分,均要进行深入加工与修改,例如: ConfigManagerByJson.cs、UIManager.cs、SysDefine、Log、LauguageMgr等。        第二部分: “纯lua框架”整体设计与实现:        本部分是中部课程的核心,也是整个热更新框架的核心部分!        我们需要对商业项目中,业务功能面临经常频繁改动的部分,设计一套可复用、灵活、可扩展、高效率执行的lua框架系统。本框架系统,我们整体考虑采用类似MVC的“分层”结构进行整体架构设计,然后配之以Xlua技术,实现C#脚本与同名lua脚本之间的一对一映射关系。 这样可以使得每个3D/2D的预设对象,自动映射(预设)同名的一个lua控制脚本与一个“lua显示”脚本。        这里的“lua控制”脚本负责加载从服务器端传来的AB(AssetBundle)包资源,以及解析与显示AB包中的资源预设等。这些均为玩家所看不到的部分,所以都定义在控制层的lua脚本中。       对于需要显示的3D/2D 预设资源,我们使用“lua显示”脚本,控制显示的方式、内容与行为(包含事件注册)等。而本部分我们采用了xlua的映射技术,也使得“lua显示”脚本具备了Unity的常用生命周期函数,进一步大大简化了lua编写业务的难度,例如常见的:Awake()、Start()、Update()、OnDestroy()等。具体lua的架构设计如下图所示:           温馨提示:         1: 本套课程需要具备一定的框架理解与驾驭能力,为了更好的理解本作,强烈推荐广大学员首先学完必要的前导课程:“UI客户端框架设计”、“AssetBundle 框架设计”、“lua基础与中级篇”、以及本课程热更新框架的前两部(Xlua基础、热更流程与热补丁)。         2: 本课程使用Unity2017版本讲解,但是本课程主要讲解开发思想与具体实现技术,所以对Unity版本不敏感。 学员使用后续的Unity2018/19/2020..... 等版本基本没有影响。一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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