一样的代码,在我同学电脑上调试的时候就没问题(这句没问题,但是也存在其他一些问题),在我电脑上调试就在那句那里有错。而在使用共享DLL时是没问题的,但是将工程属性改为使用静态MFC库时就会出现上述错误,是不是共享动态库和静态库之间的差别导致的上述问题?怎么解决?
一样的代码,在我同学电脑上调试的时候就没问题(这句没问题,但是也存在其他一些问题),在我电脑上调试就在那句那里有错。而在使用共享DLL时是没问题的,但是将工程属性改为使用静态MFC库时就会出现上述错误,是不是共享动态库和静态库之间的差别导致的上述问题?怎么解决?
参考这个文章在每个新的线程上调用如下代码:void SocketThreadInit()
{
#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
}