繁体   English   中英

如何排除“ winsock2.h”?

[英]How to EXCLUDE “winsock2.h”?

我在Windows上做一个项目,“ winsock2.h”文件在编译过程中引起问题(我有一个底层队列库,该库具有“发送”,“接收”等功能,并且抱怨“ winsock2.h”还具有“发送”功能)。

我只包含“ windows.h”,有没有办法排除 “ winsock2.h”的包含,以便我的应用程序可以编译?

谢谢您的帮助 ;-)

林顿

好吧,winsock2.h包含一个包含防护#ifndef _WINSOCK2API_因此在包含windows.h之前定义_WINSOCK2API_应该可以防止它被包含。

尽管更好的解决方案IMO是将您的库放在自己的名称空间中(例如queue_send,msgq_send等)

如果在包含windows.h之前#define WIN32_LEAN_AND_MEAN ,则自动引入的标头要少得多。

尽管在我的系统上,windows.h包含winsock.h,而不是winsock2.h,所以您可能需要仔细检查它的实际原因是包含windows.h。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM