CAsyncSocket血的教训-静态库惹的祸!
2016-08-02 11:38
330 查看
搞tcp/ip通讯,编译链接都好使,运行时,竟然出现了:
if (pState->m_pmapSocketHandle->IsEmpty())错误,
后来发现原因是使用静态mfc库导致的,用动态的就没事。
但我就想用静态的!
怎么办?
应该先在最开始,
#ifndef _AFXDLL
#define _AFX_SOCK_THREAD_STATE AFX_MODULE_THREAD_STATE
#define _afxSockThreadState AfxGetModuleThreadState()
_AFX_SOCK_THREAD_STATE* pState = _afxSockThreadState;
if(pState->m_pmapSocketHandle == NULL)
pState->m_pmapSocketHandle = new CMapPtrToPtr;
if(pState->m_pmapDeadSockets == NULL)
pState->m_pmapDeadSockets = new CMapPtrToPtr;
if(pState->m_plistSocketNotifications == NULL)
pState->m_plistSocketNotifications = new CPtrList;
#endif
if (pState->m_pmapSocketHandle->IsEmpty())错误,
后来发现原因是使用静态mfc库导致的,用动态的就没事。
但我就想用静态的!
怎么办?
应该先在最开始,
#ifndef _AFXDLL
#define _AFX_SOCK_THREAD_STATE AFX_MODULE_THREAD_STATE
#define _afxSockThreadState AfxGetModuleThreadState()
_AFX_SOCK_THREAD_STATE* pState = _afxSockThreadState;
if(pState->m_pmapSocketHandle == NULL)
pState->m_pmapSocketHandle = new CMapPtrToPtr;
if(pState->m_pmapDeadSockets == NULL)
pState->m_pmapDeadSockets = new CMapPtrToPtr;
if(pState->m_plistSocketNotifications == NULL)
pState->m_plistSocketNotifications = new CPtrList;
#endif
相关文章推荐
- CAsyncSocket
- CAsyncSocket多线程环境
- CAsyncSocket
- eMule中的 CAsyncSocketEx 类
- android socket编程用Bufferreader读取的一个失败教训
- CAsyncSocket
- CAsyncSocket
- CAsyncSocket UDP
- CAsyncSocket
- 090828项目进展:学习emule源码4,CAsyncSocketEx
- CAsyncSocket
- 不明错误'CAsyncSocket' : base class undefined
- CSocket 和CAsyncSocket类介绍
- CAsyncSocket close Onclose
- Mobile CAsyncSocket.create 失败
- Windows Sockets: Using Class CAsyncSocket
- CAsyncSocket
- 支持SSL的封装类--CAsyncSocketEx
- 不明错误'CAsyncSocket' : base class undefined
- SOCKET聊天室字符界面版