lstrlenW不是ATL的成员解决方法 (VS2008)

    今天在做一个智能设备下的一个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了。

你可能感兴趣的:(vs2008,atl,智能设备,lstrlenW,成员)