atlmisc.h 和 atlimage.h類定義衝突的問題解決方案, “CPoint”: 不明確的符號

環境 vs2008 sp1
WTL81

解決方案:

#ifdef __ATLMISC_H__   //如果包含了atlmisc.h
#define __ATLTYPES_H__	//則不編譯atltypes.h
#endif
#include <atlimage.h>

此時可能還有 CString 不明確等錯誤

可使用宏定義

//#define _WTL_NO_WTYPES  //屏蔽WTL的CSize等類
#define _WTL_NO_CSTRING //屏蔽WTL的CString

問題分析
出現這個問題是 ATL和 WTL混用 引起的 ,<atlmisc.h>屬於WTL ,<atlimage.h> 屬於 ATL。


WTL 的<atlmisc.h>
ATL的<atltypes.h> 與 <atlstr.h>
中 , 各自定義了CString, CRect等 類,如果同時包含就可能出現類重定義的問題。
不過可以通過各種宏定義來控制各個類是否編譯。

發佈了39 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章