inet_pton未在范围内声明

时间:2014-04-11 09:59:54

标签: qt mingw32

我目前正致力于客户端应用程序,一切顺利,直到我尝试在Windows 7计算机上构建,该项目将在Vista和Linux Mint15上完美编译和运行。

我收到错误inet_pton未在范围

中声明

在Windows 7和Linux上,我在Vista上使用MinGW MSVC编译器全部使用QT 5.2.0 我得到的印象是Windows上的MinGW问题?显然Linux正在使用其他包含

包括:

#if defined(WIN32)
#include <windows.h>
#include <ws2tcpip.h>
#include <wspiapi.h>
#include <string>  // DJM: Cannot have <string.h>
#include <winsock2.h>
#include <stdlib.h>
#include <w32api.h>
#include <stdio.h>
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
#include <arpa/inet.h>
#endif



    bool Socket::connect ( const std::string &host, const int port )
{
  if ( ! is_valid() ) return false;
  m_addr.sin_family = AF_INET;
  m_addr.sin_port = htons ( port );
  int status = inet_pton ( AF_INET, host.c_str(), &m_addr.sin_addr );
#ifndef WIN32
  if ( errno == EAFNOSUPPORT ) return false;
#endif
  status = ::connect ( m_sock, ( sockaddr * ) &m_addr, sizeof ( m_addr ) );
  if ( status == 0 )
    return true;
  else
    return false;
}

包含是搜索答案的结果,似乎没有任何效果:/

我想快速解决方案是安装QT MSVC2010,但如果有代码选项会很酷:)

0 个答案:

没有答案