#include<winsock2.h>
#include<Iphlpapi.h>#pragma comment(lib, "WS2_32")
#pragma comment(lib, "Iphlpapi")
void main(){
}
编译出现错误:
\microsoft visual studio\vc98\include\iphlpapi.h(458) : error C2061: syntax error : identifier 'PIP_ADAPTER_ADDRESSES'
执行 cl.exe 时出错.环境:VC6.0,XP

解决方案 »

  1.   

    看看iptypes.h当中是否有定义,没有定义就自己定义一个:
    typedef struct _IP_ADAPTER_INFO {
        struct _IP_ADAPTER_INFO* Next;
        DWORD ComboIndex;
        char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
        char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
        UINT AddressLength;
        BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
        DWORD Index;
        UINT Type;
        UINT DhcpEnabled;
        PIP_ADDR_STRING CurrentIpAddress;
        IP_ADDR_STRING IpAddressList;
        IP_ADDR_STRING GatewayList;
        IP_ADDR_STRING DhcpServer;
        BOOL HaveWins;
        IP_ADDR_STRING PrimaryWinsServer;
        IP_ADDR_STRING SecondaryWinsServer;
        time_t LeaseObtained;
        time_t LeaseExpires;
    } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
      

  2.   

    iptypes.h当中有定义,
    我改成这样:#include <winsock2.h> 
    #include<iptypes.h>
    #include <Iphlpapi.h> #pragma comment(lib, "WS2_32") 
    #pragma comment(lib, "Iphlpapi") 
    void main(){ 
    } 但是还是那个错误.
      

  3.   

    报错的是Iphlpapi.h,你应该要查的是Iphlpapi.h当中#include <iptypes.h>这个是否因为某些定义被跳过了。
      

  4.   

    问题还是出在头文件Iphlpapi.h中
      

  5.   

    有啊,头文件Iphlpapi.h中有定义
    typedef struct _IP_ADAPTER_INFO { 
        struct _IP_ADAPTER_INFO* Next; 
        DWORD ComboIndex; 
        char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4]; 
        char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4]; 
        UINT AddressLength; 
        BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH]; 
        DWORD Index; 
        UINT Type; 
        UINT DhcpEnabled; 
        PIP_ADDR_STRING CurrentIpAddress; 
        IP_ADDR_STRING IpAddressList; 
        IP_ADDR_STRING GatewayList; 
        IP_ADDR_STRING DhcpServer; 
        BOOL HaveWins; 
        IP_ADDR_STRING PrimaryWinsServer; 
        IP_ADDR_STRING SecondaryWinsServer; 
        time_t LeaseObtained; 
        time_t LeaseExpires; 
    } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
      

  6.   

    to 2楼的:你看错了把他提示没有定义 "PIP_ADAPTER_ADDRESSES",而不是PIP_ADAPTER_INFO,我看了头文件Iphlpapi.h,里面有PIP_ADAPTER_INFO但是没定义PIP_ADAPTER_ADDRESSES,PIP_ADAPTER_ADDRESSES是在哪里定义的啊,可能是少了某个头文件
      

  7.   

    我测试了,如果直接用vc6自带的sdk版本,有错误e:\temp\ipl\ipl.cpp(5) : fatal error C1083: Cannot open include file: 'Iphlpapi.h': No such file or directory
    如果用sdk for xp 版本,在vc include路径设置中把该sdk的include放置在所有vc默认的头文件之前,就没有错误了楼主可以下载一个新的sdk版本,试试
      

  8.   

    可能是你的SDK版本有问题,试试在#include之前加上一行:
    #define _WINSOCK2API_
      

  9.   

    to 7楼的:好的,我试试看;to 8楼的:不行,添加之后出现更多的错误