大虾们,帮帮忙啊
  我是菜鸟,刚学服务器编程!
   
   问题是这样的:
   
void CServerDlg::OnStart() 
{
 
 WSADATA wsaData;
 WSAStartup (WINSOCK_VERSION, &wsaData);
 while(true)
 {
  SOCKET sock = startListen ();
[color=#0000FF]//  HWND hWnd = GetSafeHwnd ();
//  HWND hWnd = AfxGetApp()->m_pMainWnd->GetSafeHwnd();
//  HWND   hWnd   = m_hWnd; // GetParentFrame()->m_hWnd;
//  HWND   hWnd = GetActiveWindow();
//  HWND   hWnd = (HWND)GetForegroundWindow();   
//  CWnd *   hWnd=~GetForegroundWindow()
[/color]
  int nResult = WSAAsyncSelect (sock, m_hWnd, WM_USERMSG,  FD_READ | FD_WRITE | FD_ACCEPT | FD_CLOSE);
  if(nResult == SOCKET_ERROR)
  {
   AfxMessageBox ("WSAAsyncSelect函数调用错误!"+ (CString)WSAGetLastError ());//+ GetLastError());
 //  m_list.InsertString(0,(CString)WSAGetLastError () );//AddString ((CString)WSAGetLastError () );
   UpdateData (false);
   return;
  }
 }
  
}程序错误发生在int nResult = WSAAsyncSelect (sock, m_hWnd, WM_USERMSG,  FD_READ | FD_WRITE | FD_ACCEPT | FD_CLOSE);
当我运行后,按"启动"后,WSAAsyncSelect调用错误,错误为代码为6,提示为句柄无效!
我用
//  HWND hWnd = GetSafeHwnd ();
//  HWND hWnd = AfxGetApp()->m_pMainWnd->GetSafeHwnd();
//  HWND   hWnd   = m_hWnd; // GetParentFrame()->m_hWnd;
//  HWND   hWnd = GetActiveWindow();
//  HWND   hWnd = (HWND)GetForegroundWindow();   
//  CWnd *   hWnd=~GetForegroundWindow()
获取句柄也无效.
大虾们有时间的话帮我看看,如果这个问题不解决,课程设计就做不下去了啊.
麻烦你们了!