2014-05-13 88 views
5

從Visual Studio 2013構建中的Microsoft ATL庫中包含atlwin.h可能會導致許多關於未定義元素的編譯器錯誤。編譯將ATL項目從vs2010升級到vs2013的錯誤

HMONITOR is not defined 

使用VS2010構建時不會發生這種情況。

由於這是一個標準的MS頭文件,丟失的類錯誤似乎沒有意義。

+0

剛一說明:這似乎是一個合理的問題,它是一個可以回答。但發佈重複是不是去解決它的方式。如果你可以通過編輯來清理原始問題,那就太好了。這會「反彈」它,從而得到剩下的重新公開選票。 –

+0

我試過了,跳過了,失去了代表,那麼我如何在這裏使用系統? – CCondron

+0

呃,什麼?你是怎麼跳到失去代表的?這沒有任何意義。即使建議的修改被拒絕,您也不會失去任何代表。雖然更仔細地看待它,但你*已經成功地編輯了這個問題。然後,另一位查看過編輯的用戶實際上改進了它,並添加了代碼格式。請參閱[修訂列表](http://stackoverflow.com/posts/20314124/revisions)。所以看起來你已經完成了你應該做的事情,它可能需要一些時間才能重新開放。它現在有2個重新公開投票。 –

回答

4

因爲這是一個很老的遺留項目問題是有窗戶的StdAfx.h文件的目標版本

從MSDN

的Visual C++不再支持針對Windows 95,Windows 98的, Windows ME或Windows NT。如果您的WINVER或_WIN32_WINNT宏被分配給這些Windows版本之一的 ,則必須修改 宏。當您升級使用早期版本的Visual C++創建的項目時,如果WINVER或_WIN32_WINNT宏被分配到不再受支持的Windows版本 ,則可能會看到與 相關的編譯錯誤。

所以,改變

#ifndef WINVER 
#define WINVER 0x0400 
#endif 

#ifndef WINVER 
#define WINVER 0x0500 
#define _WIN32_WINNT 0x0500 
#endif 

修正構建問題