找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3674|回复: 1

VS2003中ACE_Asynch_Acceptor打开失败

[复制链接]
发表于 2010-6-22 11:13:13 | 显示全部楼层 |阅读模式
在默认的VS2003环境下,以下代码会运行失败;因为在VS2003属性->属性配置->C/C++->语言->启动运行时类型信息(这里默认为否);
将该项值设为是,即可; 而在VS2005中, 默认为是。
  1. #include "ace/OS_main.h"
  2. #include "ace/Service_Config.h"
  3. #include "ace/Proactor.h"
  4. #include "ace/Asynch_IO.h"
  5. #include "ace/Asynch_IO_Impl.h"
  6. #include "ace/Asynch_Acceptor.h"
  7. #include "ace/INET_Addr.h"
  8. #include "ace/SOCK_Connector.h"
  9. #include "ace/SOCK_Acceptor.h"
  10. #include "ace/WIN32_Proactor.h"
  11. class Receiver : public ACE_Service_Handler
  12. {
  13. };
  14. int
  15. ACE_TMAIN (int argc, ACE_TCHAR *argv[])
  16. {
  17.         ACE::init();
  18.         ACE_Asynch_Acceptor<Receiver> acceptor;
  19.         ACE_WIN32_Proactor* pWin32Proactor = new ACE_WIN32_Proactor(4);
  20.         ACE_Proactor* p = new ACE_Proactor(pWin32Proactor,1,0);
  21.         int ret  =acceptor.open(ACE_INET_Addr (7114), 0, 1, ACE_DEFAULT_ASYNCH_BACKLOG, 1, p);//会在这里出错.
  22.         delete p;
  23.         p = NULL;
  24.         ACE::fini();
  25.         return 0;
  26. }
复制代码
发表于 2010-6-23 07:21:38 | 显示全部楼层
不打开在编译的时候估计应该会有个警告,说你没有打开而又用了dynamic cast
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-23 03:08 , Processed in 0.014977 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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