【问题标题】:WinSock2.h Compilation ErrorsWinSock2.h 编译错误
【发布时间】:2016-01-23 06:15:10
【问题描述】:

我正在尝试使用 Visual Studio 2003 运行一个项目。但我遇到很多类似于以下的编译错误。

错误指向 WinSock2.h 文件。我正在从 WinSock2.h 文件中复制几个代码 sn-ps 和相应的错误

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\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\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\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinSock2.h(109):错误 C2143:语法 错误:缺少';'在'{'之前

ws2_32.lib 文件被添加到“配置属性 - 链接器 - 输入 - 附加依赖项”中。构建配置平台为win32。

提前感谢您的帮助。

【问题讨论】:

  • 检查 winsock2.h 是否包含在任何其他 Windows 标头(尤其是 windows.h 本身)之前。由于与损坏的 winsock.h(版本 1)的某些向后兼容性,包括顺序 does 对 winsock 很重要...
  • @Hcorg,有一些 windows.h 听到文件,我更改了头文件顺序/删除等,但我仍然收到错误消息。让我尝试所有选项..
  • @Ullan,你有一个最小代码的链接,尝试解决问题
  • @HocineDJEMAI,让我看看我能不能做到。很久以前有人开发了这个项目,我正在尝试设置构建环境,

标签: c++ windows-server-2003 visual-studio-2003


【解决方案1】:

可以在here找到一个具有良好头文件顺序的典型基本Winsock应用程序:

#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;
}

包含头文件的顺序很重要

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 2011-08-23
    • 2021-03-26
    • 2014-05-09
    相关资源
    最近更新 更多