我在 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/