C++ C++;导入标题

C++ C++;导入标题,c++,winsock,C++,Winsock,我有两个项目,他们自己编译的很好 一个项目包括对另一个项目的引用 我正在使用Visual Studio 2012。一个项目是VS2010项目,另一个是使用VS2012创建的。不确定这是否相关 无论如何。当我包含“RTSPTestServer”时,会出现这种类型的错误 如果这很重要,我会在这里发布代码,但我相信这是某种配置问题 两个项目都是C++ Win32控制台应用程序。一个有一个RTSP类,另一个想要使用该类。这两个项目都是在C++中自己编译的。 1将RTSP导入包含VisionBase项目的

我有两个项目,他们自己编译的很好

一个项目包括对另一个项目的引用

我正在使用Visual Studio 2012。一个项目是VS2010项目,另一个是使用VS2012创建的。不确定这是否相关

无论如何。当我包含“RTSPTestServer”时,会出现这种类型的错误

如果这很重要,我会在这里发布代码,但我相信这是某种配置问题

两个项目都是C++ Win32控制台应用程序。一个有一个RTSP类,另一个想要使用该类。这两个项目都是在C++中自己编译的。 1将RTSP导入包含VisionBase项目的VisionBase解决方案。 2向VisionBase项目添加其他包含目录。 3使用RTSP类,并在VisionBase中完成Intellisense。 4构建解决方案

在这个阶段,我得到了错误

错误380错误C2011:'netent':'struct'类型重新定义C:\Program Files(x86)\Windows Kits\8.0\Include\um\Winsock2.h 238 1 VisionBase

我正在使用WinSock.h和WinSock2.h


虽然我搜索过谷歌,但我找不到为什么会出现重新定义错误。这两个项目都将winsock作为各自标准外部库的一部分。但是,这仅在RTSP项目中引用。我只在尝试导入RTSP时出错。请帮忙,读了这么多,我的脑袋都快晕了。

重新定义错误意味着这种事情正在发生:

struct netent{...};
...
struct netent{...}; // error C2011
如果在没有包含两次的include-guard的标头中声明该结构,或者使用同一个库的多个版本,或者大量其他可能性,则可能会发生这种情况

我不熟悉最新的VS编译器,但如果它们与其他现代编译器一样,那么错误消息将告诉您它看到多个定义的两个位置,以及到达这些定义的包含链。这将有助于你缩小问题的范围

#include实际上会复制/粘贴
标题的内容。h
的顺序#include在WinSock编程中很重要(我相信这是常见问题之一)。请参阅此处的讨论: