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