最近在研究gloox类库,是0.8版本,最新的是0.9版本,但是编译总出错,最后还是使用0.8版本编译成功了
成功后我使用了类库自带的例子MessageTest.cpp文件,利用它可以登陆并且自动发送消息。
但是我想主动的发送消息,就把登陆的代码分离出来
if ( m_pJabberClient->connect( false ) )
   {
  ConnectionError ce = ConnNoError;
         while( ce == ConnNoError )         ce = m_pJabberClient->recv();
        }
         printf( "ce: %d\n", ce );
}
也就是上面的几句我用了一个多线程来代替它m_pMFTalkThread = AfxBeginThread( MFTalkMsgHandlerProc, m_pJabberClient, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED );
  ASSERT_VALID( m_pMFTalkThread );
  if ( ! m_pMFTalkThread )
return FALSE;   m_pMFTalkThread->ResumeThread();
MFTalkMsgHandlerProc就是处理循环的UINT CMFTalkClient::MFTalkMsgHandlerProc( LPVOID lParam )
{
gloox::Client* oClient = static_cast< gloox::Client* >( lParam );
ASSERT(oClient!= NULL );
gloox::ConnectionError ce = gloox::ConnNoError; while (ce==ConnNoError)
{   ce=oClient->recv();

} return 0;
}上面的函数ce=oClient->recv();这句总是出错,但是Client对象是转换成功了的,不知道什么原因,有做过gloox开发的请帮忙看看,谢谢