刚接触ATL/WTL, 下载的demo代码 http://www.codeproject.com/wtl/wtl4mfc8.asp#xx982668xx,
自己编译时有问题: error C2872: “_U_STRINGorID” : 不明确的符号
可能是“c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\atlapp.h (743) : WTL::_U_STRINGorID”
或 “c:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include\atlwin.h(93) : ATL::_U_STRINGorID”---------------------------------------------------------------
所提到的2个头文件一个是ATL的, 还有一个是WTL(下载的包中手工添加到include目录中)。
请问这种问题该如何解决?
竟然会有重复定义?谁遇到过这样的问题?
自己编译时有问题: error C2872: “_U_STRINGorID” : 不明确的符号
可能是“c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\atlapp.h (743) : WTL::_U_STRINGorID”
或 “c:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include\atlwin.h(93) : ATL::_U_STRINGorID”---------------------------------------------------------------
所提到的2个头文件一个是ATL的, 还有一个是WTL(下载的包中手工添加到include目录中)。
请问这种问题该如何解决?
竟然会有重复定义?谁遇到过这样的问题?
设定包含头文件的次序
#define _WTL_NO_CSTRING
与ATL中的CString名称相同,你只要在包含wtl的头文件前先包含atlstr.h,然后定义#define _WTL_NO_CSTRING就可以了。如果还不行的话,就不要using namespace WTL; 而在使用到WTL的东西前加WTL::就行了
answer2:
修改一下Option里面头文件的次序就可以