Chinaunix首页 | 论坛 | 博客
  • 博客访问: 295474
  • 博文数量: 60
  • 博客积分: 1836
  • 博客等级: 上尉
  • 技术积分: 540
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 18:00
文章分类

全部博文(60)

文章存档

2013年(1)

2012年(7)

2011年(18)

2010年(6)

2009年(6)

2008年(3)

2007年(19)

我的朋友

分类: WINDOWS

2010-02-12 12:20:53

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) |
给主人留下些什么吧!~~