小野川です。
回答ありがとうございます。

現象を補足いたします。

> > Win2K,VC++6.0(sp5)でMFCソケットクラス(CAsyncSocket)を
> > 使用しているのですがソケットのCreate()で例外が発生します。
> > なお、本現象は子スレッドでのみ発生します。
>
>  ホントに例外ですか?
>  例外が発生しているなら、捕捉してエラーの内容を調べてみれば?
>
>  例外じゃなくて、実はMFC内部でASSERT()されているだけなら、デ
> バッグ実行で周辺のソースを眺めてみれば原因がつかめるかも。

●コールスタックは以下の通りとなります。
CMapPtrToPtr::GetValueAt(void * 0x00000150) line 179 + 3 bytes
CAsyncSocket::LookupHandle(unsigned int 336, int 0) line 386 + 15 bytes
CAsyncSocket::AttachHandle(unsigned int 336, CAsyncSocket * 0x00f32548
{CServerSocket}, int 0) line 408 + 13 bytes
CAsyncSocket::Socket(int 1, long 63, int 0, int 2) line 558
CAsyncSocket::Create(unsigned int 520, int 1, long 63, const char *
0x00000000) line 106 + 20 bytes

●例外発生個所は以下の場所です。
----------- MFC\SRC\MAP_PP.CPP --------------
void* CMapPtrToPtr::GetValueAt(void* key) const
// find value (or return NULL -- NULL values not different as a result)
{
 if (m_pHashTable == NULL)  <<<<★ここでAccessViolationです。★
  return NULL;
以下省略
----------- MFC\SRC\MAP_PP.CPP --------------

よろしくお願いいたします。