Wince 6.0对ATL支持不是只在选择ATL库后就可以使用。而且查找MSDN对如何支持ATL的说明也是相当的少。根据MSDN中, 中的说明。介绍一下如果在WinCE中支持ATL。
WinCE 6.0中已经将ATL的版本升级至8.0。由于是ATL 4.0的升级,所以原来支持的ATL/MFC 4.0也不再支持, MFC也已经被去除(估计微软准备抛弃MFC了)。
ATL 8.0中的一些宏也不支持:
- WINCEATL
- USE_ATL
- ATL_VER
- USE_STATIC_ATL
要使用ATL 8.0,要做如下的事情:
1.在source 中加入一行 WINCEATL80=1;
2.若使用以前版本的ATL代码,要在sources文件中加入
CDEFINES = $(CDEFINES) /D_ATL_DISABLE_DEPRECATED行;
3.要在链接时链接ATL8LIBS*库宏
若是一个sysgen的项目,使用$(ATL8LIBS),在makefiel加入到TARGETLIBS段中。
若是一个调试的sysgen的项目,使用$(ATL8LIBD),在makefiel加入到TARGETLIBS段中。
若是一个非sysgen项目,使用$(S_ATL8LIBS),加入到sources文件。
若是一个调试版的非sysgen项目,使用$(S_ATL8LIBSD),加入到sources文件。
4.不要在sources文件中加入任何ATL的包含路径;
5.一些函数要加入完全限定路径名称,如
按照上面的方法编译还是有一些符号不能链接,加了下面的
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\ole32.lib \
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\oleaut32.lib \
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\uuid.lib
可以了,不知道是什么原因。
阅读(1894) | 评论(0) | 转发(0) |