프로그래밍/Win32 API & MFC

MFC Static으로 소켓사용시..

99% 2009. 4. 16. 01:24
설명
http://bit1010.tistory.com/47

아래코드를 초기화용으로 한번 호출하자.
MFC라이브러리 버그란다. 2008에서도 해결안됐더라..
  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
   }