我在其中一個h文件中包含windows.h
(爲了使用CaptureStackBackTrace
),在Visual-Studio項目中。起初,由於使用最小/最大std方法以及windows.h
中的宏具有相同的名稱,但由於我在其他SO帖子中讀到,似乎可以通過#define NOMINMAX
來解決這個問題。 (我說「似乎」,因爲我不能確定,直到我的整個項目再次確定)。包括windows.h與本地變量名稱衝突
問題是現在有些局部變量名稱會破壞構建。行:
int grp1;
一個類的方法中,將導致以下錯誤:
error C2143: syntax error : missing ';' before 'constant'
而如果我改變變量名grp1_
cpp文件編譯OK。
當然,我可以更改變量名稱,但是我有一種感覺,我做錯了什麼 - 是嗎?或者這是一個已知的問題,包括windows.h
?除了更改變量名稱之外,還有其他更優雅的解決方案嗎?
如果它在你打算分發的頭文件中,那麼避免命名可能是個好主意在用戶需要'dlgs.h'的情況下進行碰撞。否則,您應該爲所有項目添加'WIN32_LEAN_AND_MEAN'!節省一些編譯時間,並擺脫一些像這樣的煩人的事情。 –