char* hostname="www.csdn.net";
char* ip_address=DNSQuery(hostname);char* Cvctest0Dlg::DNSQuery(char* hostname)
{
    //hostname="www.csdn.net";//如果把他打开可以正常的反回IP地址,如果关上这行,从外面传指针进来就不能成功返回ip地址了
    if(hostname==NULL)
    {
      TRACE("DNSQuery::hostname failed!\n");
      return NULL; 
    }
    //初始化套接字 begin
    WSADATA wsaData;
    int iResult;
    iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
    //初始化套接字 end    if (iResult != 0) 
    {//初始化套接字失败
      TRACE("DNSQuery::WSAStartup failed: %d\n", iResult);
      return NULL;
    }
    else
    {//初始化套接字成功     
      TRACE("ip_address:%s\n",hostname);
      struct hostent* hostent_var=gethostbyname(hostname);//如果char*是函数内赋值就没有问题,如果是函数外传进的指针就会出现null或者返回域名服务器的地址
      if (hostent_var != NULL) 
      {//DNS查询成功
        struct in_addr addr;
        TRACE("h_addr_list: %d\n", sizeof(hostent_var->h_addr_list));                
        addr.s_addr = *(u_long *) hostent_var->h_addr_list[0];
        return inet_ntoa(addr);
      }
      else
      {
        TRACE("DNSQuery::hostent_var failed!\n");
        return NULL;
      }
    }
}