找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 10227|回复: 10

MFC里ACE_NEW_RETURN或new ACE_WIN32_Proactor总是异常?

  [复制链接]
发表于 2011-6-22 10:33:41 | 显示全部楼层 |阅读模式
本帖最后由 tengmo535 于 2011-7-2 09:12 编辑

VS2008 MFC 动态共享DLL链接库
ACE_WIN32_Proactor* pWin32Proactor = new ACE_WIN32_Proactor(4);
//这样会出现:0x1002e142 (ACE.dll) 处未处理的异常: 0xC0000005

ACE_WIN32_Proactor *proactor_impl = 0;
ACE_NEW_RETURN (proactor_impl,  ACE_WIN32_Proactor,  -1);
ACE_NEW_RETURN (this->proactor_,  ACE_Proactor (proactor_impl, 1 ), -1);
//这样也是同样异常。

这个问题以前有人提过,他说是MFC动态链接库与标准windows库的冲突;
具体怎么解决他没说。
还有谁遇到过?
(config。h中
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_MFC 1
#include "ace/config-win32.h")

另外,ACE_Proactor::instance(4)的参数4是什么作用?底层没看出来他用在什么地方
发表于 2011-6-24 22:21:22 | 显示全部楼层
有源代码应该能将问题定位的更准确,你看看到底是那句话异常了?
发表于 2011-7-22 14:56:49 | 显示全部楼层
请问你的  new ACE_WIN32_Proactor总是异常 问题解决了嘛
我也遇到了这样的问题,不知道怎么办,网上也没有相关解决方法。
发表于 2011-7-22 16:40:22 | 显示全部楼层
4是IOCP的线程数。
发表于 2011-8-2 21:44:18 | 显示全部楼层
我也碰到了这个问题  在MFC下  
跟了下  原因为 ACE_Handle_Set类进入构造函数以后  给ACE_HANDLE max_handle_成员变量赋值时      max_handle_变量的地址不可写              在内存中发现  这段内存析构了。。。   
求解 。。
发表于 2011-8-14 13:03:09 | 显示全部楼层
我用WTL也有这样的问题,求解中。。。
发表于 2011-8-14 13:03:46 | 显示全部楼层
我用WTL也有这样的问题,求解中。。。
发表于 2011-9-30 19:51:28 | 显示全部楼层
今天也遇到这个问题了,最后解决了,总结和编译顺序有关系,尤其带预编译头的,尤其照顾好 #include "StdAfx.h" 出现的位置,
发表于 2012-5-1 15:56:21 | 显示全部楼层
oncreate 发表于 2011-9-30 19:51
今天也遇到这个问题了,最后解决了,总结和编译顺序有关系,尤其带预编译头的,尤其照顾好 #include "StdAfx.h" ...

能否详细说明一下呢? 谢谢.
发表于 2012-5-2 20:22:56 | 显示全部楼层
我想这个问题可能我找到了。
是因为FD_SETSIZE宏的问题。
请在
stdafx.h的最开始的地方定义一下;
#define FD_SETSIZE 1024
注意:要与ACE_wrappers\ace\config-win32-common.h中定义的或者你自己定义的保持一致。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-2 11:17 , Processed in 0.020791 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表