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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章