c:\program files\windows kits\8.0\include\shared\ws2def.h(96): warning C4005: 'AF_IPX' : 宏重定义
2> c:\program files\windows kits\8.0\include\um\winsock.h(452) : 查看“AF_IPX”的先前定义
2>c:\program files\windows kits\8.0\include\shared\ws2def.h(136): warning C4005: 'AF_MAX' : 宏重定义
2> c:\program files\windows kits\8.0\include\um\winsock.h(471) : 查看“AF_MAX”的先前定义
2>c:\program files\windows kits\8.0\include\shared\ws2def.h(173): warning C4005: 'SO_DONTLINGER' : 宏重定义
2> c:\program files\windows kits\8.0\include\um\winsock.h(394) : 查看“SO_DONTLINGER”的先前定义
2>c:\program files\windows kits\8.0\include\shared\ws2def.h(217): error C2011: 'sockaddr' : 'struct' 类型重定义
2> c:\program files\windows kits\8.0\include\um\winsock.h(477) : 查看“sockaddr”的声明
之前删除了一些代码,这些代码为每个UDT函数定义了dllexport/dllimport:
#define UDT_API // no dllimport/export
我检查了这个库,它总是使用 #ifdef 检查文件是否已经被包含。而且出现了以下错误: 可能的原因是在 udt 中的某个地方使用了
const
关键字。UDT_API int bind(UDTSOCKET u, const struct sockaddr* name, int namelen);
什么我错过了?
#include "udt.h"
,我就无法构建项目。您可以按照链接,下载存档文件,解压缩,打开Visual Studio并将udt
的构建类型更改为“静态库”。然后删除dllimport / dllexport
表达式(有两个,很容易找到),应该只是#define UDT_API
。然后将udt链接到其他空项目中,并在其中执行include "udt.h"
...这就是我所做的。 - Crollwindows.h
之前定义WIN32_LEAN_AND_MEAN
,因为它已经包含了winsock
,否则可能会出现问题。这是否适用于此情况?我暂时不知道,因此这只是一条评论而非答案... - PuerNoctis