没有与参数列表匹配的 重载函数 AfxMessageBox

来源:互联网 发布:datagridview筛选数据 编辑:程序博客网 时间:2024/05/15 13:09

BOOL CServer::InitAndListen(HWND hwnd,UINT port)
{
 m_uPort=port;
 m_hWnd=hwnd;

 if(m_hSocket != NULL)
    {
        //如果已经创建了套接字先关闭原来的
  closesocket(m_hSocket);
  m_hSocket = NULL;
 }
 if(m_hSocket == NULL)
 {
  //创建新的套接字,这里是创建的流类型的套接字
  m_hSocket = socket(AF_INET, SOCK_STREAM,0);
  ASSERT(m_hSocket != NULL);
  ServerInit();
 }
 m_addr.sin_family = AF_INET;
 m_addr.sin_addr.S_un.S_addr = INADDR_ANY;
 m_addr.sin_port = htons(m_uPort);

 int ret = 0;
 int error = 0;
 //绑定一个套接字到本机的地址
 ret = bind(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));

 if(ret == SOCKET_ERROR)
 { //绑定错误
  AfxMessageBox("Binding Error");
  return FALSE;
 }
 
 //开始一个侦听过程,等待客户的连接
 ret = listen(m_hSocket, 5);    //这里的第二个参数表示最多支持的客户连接数
 if(ret == SOCKET_ERROR)
 { //listen失败
  AfxMessageBox("Listen Error");
  return FALSE;
 }

 return TRUE;
}

问题:没有与参数列表匹配的 重载函数 AfxMessageBox()

解决方案:
尝试下使用 _T:   AfxMessageBox(_T("请输入名称!"));可能你使用的VC版本比较高,采用的是宽字符吧,一般这种情况下我们在字符串前加 L:   AfxMessageBox(L"请输入名称!");
或TEXT
   AfxMessageBox(TEXT("can not store it"));
但为了程序的适用性,使用_T更好些。因为用_T会自动按你程序所在环境来决定是否是宽字符还是简单的ASCII,省事啊!

 

BOOL CServer::InitAndListen(HWND hwnd,UINT port)
{
 m_uPort=port;
 m_hWnd=hwnd;

 if(m_hSocket != NULL)
 {
  //如果已经创建了套接字先关闭原来的
  closesocket(m_hSocket);
  m_hSocket = NULL;
 }
 if(m_hSocket == NULL)
 {
  //创建新的套接字,这里是创建的流类型的套接字
  m_hSocket = socket(AF_INET, SOCK_STREAM,0);
  ASSERT(m_hSocket != NULL);
  ServerInit();
 }
 m_addr.sin_family = AF_INET;
 m_addr.sin_addr.S_un.S_addr = INADDR_ANY;
 m_addr.sin_port = htons(m_uPort);

 int ret = 0;
 int error = 0;
 //绑定一个套接字到本机的地址
 ret = bind(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));

 if(ret == SOCKET_ERROR)
 { //绑定错误
  AfxMessageBox(L"Binding Error");
  return FALSE;
 }

 //开始一个侦听过程,等待客户的连接
 ret = listen(m_hSocket, 5);    //这里的第二个参数表示最多支持的客户连接数
 if(ret == SOCKET_ERROR)
 { //listen失败
  AfxMessageBox(L"Listen Error");
  return FALSE;
 }

 return TRUE;
}