ACE ACE_TP_Reactor崩溃

时间:2016-01-06 08:00:14

标签: c++ crash ace

我正在尝试开发一个使用 ACE库进行联网的程序。 当我试图分配新的ACE_TP_Reactor时它崩溃了(程序构建成功,但是当它开始执行dll抛出未处理的异常时)

ACE_Reactor_Impl* imp = 0;
imp = new ACE_TP_Reactor();

这里是stack:

    GameServer.exe!WorldSocketMgr::StartNetwork(unsigned short port, std::basic_string<char,std::char_traits<char>,std::allocator<char> > & address) Line 103   C++

ace.dll!ACE_TP_Reactor::ACE_TP_Reactor(ACE_Sig_Handler * sh, ACE_Abstract_Timer_Queue<ACE_Event_Handler *> * tq, bool mask_signals, int s_queue) Line 102   C++ <<new ACE_TP_REACTOR

ace.dll!ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token> >::ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token> >(ACE_Sig_Handler * sh, ACE_Abstract_Timer_Queue<ACE_Event_Handler *> * tq, int disable_notify_pipe, ACE_Reactor_Notify * notify, bool mask_signals, int s_queue) Line 485   C++

ace.dll!ACE_Select_Reactor_Impl::ACE_Select_Reactor_Impl(bool ms) Line 134  C++

[External Code] 

ace.dll!ACE_Handle_Set::ACE_Handle_Set() Line 95    C++
当程序试图在

中执行this->reset ();时,它会崩溃
ACE_Handle_Set::ACE_Handle_Set (void)
{
this->reset ();
}

这是ace_handle_set

上的堆栈值

&#13;
&#13;
-		this	0x00ed8e00 {size_=??? max_handle_=??? mask_={fd_count=??? fd_array=0x00ed8e0c {???, ???, ???, ???, ???, ...} } }	ACE_Handle_Set *
		size_	<Unable to read memory>	
		max_handle_	<Unable to read memory>	
+		mask_	{fd_count=??? fd_array=0x00ed8e0c {???, ???, ???, ???, ???, ???, ???, ???, ???, ???, ???, ???, ???, ...} }	fd_set
&#13;
&#13;
&#13;

编辑:问题是关于ace的所有类,例如当我尝试创建ACE_Select_Reactor,ACE_TP_Reactor等等时,它全部崩溃了我认为它可能是关于DLL但我使用了所有库和的DLL。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您没有正确使用ACE Reactor,请查看第7.7节中的ACE Programmers Guide,其中说明了如何使用它。