在结束整个应用程序时,会偶尔出现某内存地址中断错误~~~我跟踪了一下,该地址为程序中调用ACE_Reactor::instance()->run_reactor_event_loop()的地方,反汇编程序如下:ACE_Reactor::instance()->run_reactor_event_loop();
004158C9 mov esi,esp
004158CB call dword ptr [__imp_ACE_Reactor::instance (440768h)]
004158D1 cmp esi,esp
004158D3 call @ILT+3310(__RTC_CheckEsp) (412CF3h)
004158D8 mov dword ptr [ebp-3D4h],eax
004158DE mov esi,esp
004158E0 push 0
004158E2 mov eax,dword ptr [ebp-3D4h]
004158E8 mov edx,dword ptr [eax]
004158EA mov ecx,dword ptr [ebp-3D4h]
004158F0 call dword ptr [edx+4] 004158F3 cmp esi,esp //此处出错004158F5 call @ILT+3310(__RTC_CheckEsp) (412CF3h)
应用程序结束调用的代码为:
ACE_Reactor::instance()->end_reactor_event_loop();
peer().close();
ACE_Reactor::instance()->remove_handler(ACE_Event_Handler:ONT_CALL);
ACE_Reactor::instance()->close();
ACE_Thread::cancel(t_id);不知是不是对ACE使用方法不正确? 还是...请教大家了~~~ ^_^
004158C9 mov esi,esp
004158CB call dword ptr [__imp_ACE_Reactor::instance (440768h)]
004158D1 cmp esi,esp
004158D3 call @ILT+3310(__RTC_CheckEsp) (412CF3h)
004158D8 mov dword ptr [ebp-3D4h],eax
004158DE mov esi,esp
004158E0 push 0
004158E2 mov eax,dword ptr [ebp-3D4h]
004158E8 mov edx,dword ptr [eax]
004158EA mov ecx,dword ptr [ebp-3D4h]
004158F0 call dword ptr [edx+4] 004158F3 cmp esi,esp //此处出错004158F5 call @ILT+3310(__RTC_CheckEsp) (412CF3h)
应用程序结束调用的代码为:
ACE_Reactor::instance()->end_reactor_event_loop();
peer().close();
ACE_Reactor::instance()->remove_handler(ACE_Event_Handler:ONT_CALL);
ACE_Reactor::instance()->close();
ACE_Thread::cancel(t_id);不知是不是对ACE使用方法不正确? 还是...请教大家了~~~ ^_^
解决方案 »
- VS2010中MFC Menu的默认子菜单的问题
- win7下用vs2010开发时的一个错误error C2039:“GetThisEventMap”: 不是“CCmdTargetPlus”的成员
- 快过年了,年前散分……
- vc6.0远程下连接Oracle
- 如何模拟鼠标点击网页上的链接?
- 截屏的超级难题,确实是没分了,大家请多见谅!
- 求教:保存CTreeCtrl的HTREEITEM的问题!
- 用过WinPcap库编程的朋友进来看一下,在线等
- FindFirstFile()的问题
- Visual Studio "14" 预览版发布 C++ 11/14特征
- HTTP协议的解析问题
- 生成随机数范围问题----不难也不简单(个人意见)
确认你的Reactor中注册的handler是否有效