gpt4 book ai didi

c++ - 包括 stdafx.h winsock2 重新定义错误

转载 作者:行者123 更新时间:2023-11-30 03:11:46 29 4
gpt4 key购买 nike

当我包含 winsock2.h 时,我遇到了大约 60 个重新定义错误。我四处寻找了一下,发现了一些建议,包括 winsock2.h b4,包括 windows.h。我这样做了,并且清除了错误。我的问题和疑问正是我应该如何去做这件事。我没有明确包含 windows.h,它是在 stdafx.h 或 stdafx.cpp 中为我完成的。

我在 stdafx.h 中立即添加了 include winsock2.h b4 include Windows.h。这是解决此问题的正确方法还是有更好的方法?

根据 program_name.rc 中的评论判断,我收集到 stdafx.h 中包含的 windows.h 可能由于某些选项或配置参数而被放置在那里,但我无法找到此引用。有什么方法可以指定 stdafx.h 中包含哪些文件?

顺便说一句,WIN32_LEAN_AND_MEAN 是在 stdafx.h 中调用 windows.h 的 b4 定义的。

我正在使用 Visual c++ 6.0 和“Windows Server 2003 PSDK”该程序是直接的 c++,没有 mfc,没有网络,只是普通的 Vanilla 。

最佳答案

您几乎可以将任何您想要的内容放入 stdafx.h。在 windows.h 之前为 winsock2.h 添加 #include 肯定没问题。我将移动 WIN32_LEAN_AND_MEAN header ,以便在您包含任何其他 header 之前对其进行定义:

#define WIN32_LEAN_AND_MEAN
#include <winsock2.h>
#include <windows.h>

stdafx.h 是预编译 header 的可怕名称。我不知道为什么 Visual Studio 仍然将它用于所有自动生成的项目。它给预编译的头文件带来了不应有的神秘气氛。在我的项目中,我通常将预编译头文件设置为使用“precompiled.h”和“precompiled.cpp”。

Noel Llopis 有一篇关于预编译 header 的精彩文章 - ' The Care and Feeding of Precompiled Headers ' 如果您想了解更多关于这里发生的事情的背景信息。

关于c++ - 包括 stdafx.h winsock2 重新定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1988883/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com