我在Visual Studio项目的h文件之一中添加了windows.h(以便使用CaptureStackBackTrace)。起初,由于使用了最小/最大std方法以及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/

10-11 01:53