2015-10-23 90 views
1

我試圖運行一個項目使用Visual Studio 2003.但是我收到了很多類似於下面的編譯錯誤。WinSock2.h編譯錯誤

錯誤指向WinSock2.h文件。我複製夫婦的代碼片段從WinSock2.h文件和相應的錯誤

typedef struct fd_set { 
    u_int fd_count;    /* how many are SET? */ 
    SOCKET fd_array[FD_SETSIZE]; /* an array of SOCKETs */ 
} fd_set; 

C:\ Program Files文件\微軟的Visual Studio .NET 2003 \ VC7 \ PlatformSDK \包含\ WinSock2.h(114 ):錯誤C2065:FD_SET「: 未聲明的標識符

struct sockaddr { 
    u_short sa_family;    /* address family */ 
    char sa_data[14];   /* up to 14 bytes of direct address */ 
}; 

C:\ Program Files文件\微軟的Visual Studio .NET 2003 \ VC7 \ PlatformSDK \包含\ WinSock2遊戲k2.h(109):錯誤C2143:語法 錯誤:缺少';'之前'{'

將ws2_32.lib文件添加到「配置屬性 - 鏈接器 - 輸入 - 附加依賴項」中。構建配置平臺是win32。

在此先感謝您的幫助。

+0

檢查Windows頭文件(尤其是windows.h本身)。由於與winsock.h(版本1)的破壞有一些向後兼容性,包括命令* *與winsock有關... – Hcorg

+0

@Hcorg,有一些windows.h聽到的文件,我改變了頭文件的順序/刪除等,但仍然我收到錯誤。讓我嘗試所有選項.. – Ullan

+0

@Ullan,你有一個最小代碼的鏈接,試圖解決問題 – HDJEMAI

回答

1

用的頭文件良好秩序的典型基本Winsock應用程序可以找到here

#ifndef WIN32_LEAN_AND_MEAN 
#define WIN32_LEAN_AND_MEAN 
#endif 

#include <windows.h> 
#include <winsock2.h> 
#include <ws2tcpip.h> 
#include <iphlpapi.h> 
#include <stdio.h> 

#pragma comment(lib, "Ws2_32.lib") 

int main() { 
    return 0; 
} 

包括頭文件的順序是重要的,如果winsock2.h之前任何其他包括