最近在研究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开发的请帮忙看看,谢谢
成功后我使用了类库自带的例子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开发的请帮忙看看,谢谢
{
ConnectionError ce = ConnNoError;
while( ce == ConnNoError ) ce = m_pJabberClient->recv();
}
printf( "ce: %d\n", ce );
}