lstrlenW不是ATL的成员解决方法 (VS2008)
0人收藏此文章, 我要收藏发表于20天前(2013-06-19 09:43) , 已有
6次阅读 ,共
0个评论
今天在做一个智能设备下的一个demo时出现了下面的问题,atlconv.h error C2039: "lstrlenW": 不是"ATL"的成成员。
于是按照提示将
atlconv.h中的下面函数
:
inline int ocslen(_In_z_ LPCOLESTR x) throw() { return ATL::lstrlenW(x); }做了如下修改:inline int ocslen(_In_z_ LPCOLESTR x) throw() { return lstrlenW(x); }重新编译一下没有错误了,但是后来想想这样做不对,文件atlconv.h毕竟是系统自带文件,不好随便修改的,于是我就在网上找到了答案,下载补丁:VisualStudioDeviceWindowsEmbeddedCompact7.msi。
下载地址:http://download.microsoft.com/download/9/D/D/9DDBD3EC-A43C-4BCE-A7A9-AEE9B1007BCE/VisualStudioDeviceWindowsEmbeddedCompact7.msi。
安装之后,再次打开你编译的工程,还是不行,提示相同的错误,于是点击你当前项目的属性-》C/C++-》常规-》附加包含目录:
C:\Program Files (x86)\Windows CE Tools\SDKs\MX53ELI\Include\Armv4i(当前智能设备sdk安装的路径)
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce7\atlmfc\include(当前编译器下atlmfc的包含目录)
重新编译,OK了。