gpt4 book ai didi

c++ - 包含 windows.h 会导致与局部变量名称发生冲突

转载 作者:可可西里 更新时间:2023-11-01 12:45:04 25 4
gpt4 key购买 nike

我在 Visual-Studio 项目中的一个 h 文件中包含 windows.h(以便使用 CaptureStackBackTrace)。起初我遇到了一些编译器错误,因为在 windows.h 中使用了最小/最大标准方法和同名宏,但这似乎可以通过 #define NOMINMAX ,正如我在其他 SO 帖子中所读到的。 (我说“似乎”是因为在我的整个项目再次构建正常之前我无法确定)。

问题是一些局部变量名称现在破坏了构建。线路:

int grp1;

在类方法内部,导致以下错误:

error C2143: syntax error : missing ';' before 'constant'

如果我将变量名称更改为 grp1_,则 cpp 文件编译正常。

当然我可以只更改变量名,但我还是觉得我做错了什么 - 是吗?或者这是包含 windows.h 时的已知问题?除了更改变量名之外,还有其他更优雅的解决方案吗?

最佳答案

dlg.h 包含行

#define grp1        0x0430

您可以通过定义 WIN32_LEAN_AND_MEAN 来排除它。

关于c++ - 包含 windows.h 会导致与局部变量名称发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6678820/

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