最近在做WINCE6.0系统的编译和SDK的导出。但是我导出的SDK大小只有5M多,这个与以往WINCE5.0中导出的SDK要小了很多,之前我在WINCE5.0中导出的SDK大约有25M左右。查找了一通最后发现原来6的系统较5的系统有了一些改变,至少在MFC支持上有了变化。在6的系统中,导出对应OS design的SDK时,不会包含对MFC DLL的,要手工将MFC的DLL加入OS iamge中,在导出SDK时要手工将支持MFC的头文件和lib库包含到SDK中。

那么如何做了?

(1)必需先编译通过自己的OS Design工程

a.在Catalog Items View中选择自己要添加到OS Design中的组件

b.将../Program Files/Microsoft Visual Studio 8/VC/ce/Dll/armv4i下的有关MFC的 DLL拷贝到目录..:/WINCE600/PLATFORM下,当然也可以放到你认为可以放的目录下,然后配置你OS Design中所选择了BSP中的platform.bib .

c.重新编译OS

我的配置如下:

MODULES

;   Name            Path                                      Memory Type

;   ----------      ----------------------------------        -----------

;-------------------------------------------------------------------------------

;Inorder support MFC and include the MFC dll

MFC80CHS.DLL         $(_PLATFORMROOT)/MFC80CHS.DLL        NK    SHK

MFC80CHT.DLL         $(_PLATFORMROOT)/MFC80CHT.DLL        NK    SHK

MFC80DEU.DLL         $(_PLATFORMROOT)/MFC80DEU.DLL        NK    SHK

MFC80ENU.DLL         $(_PLATFORMROOT)/MFC80ENU.DLL        NK    SHK

MFC80ESP.DLL         $(_PLATFORMROOT)/MFC80ESP.DLL        NK    SHK

MFC80FRA.DLL         $(_PLATFORMROOT)/MFC80FRA.DLL        NK    SHK

MFC80ITA.DLL         $(_PLATFORMROOT)/MFC80ITA.DLL        NK    SHK

MFC80JPN.DLL         $(_PLATFORMROOT)/MFC80JPN.DLL        NK    SHK

MFC80KOR.DLL         $(_PLATFORMROOT)/MFC80KOR.DLL        NK    SHK

MFC80U.DLL         $(_PLATFORMROOT)/MFC80U.DLL        NK    SHK

MFC80UD.DLL         $(_PLATFORMROOT)/MFC80UD.DLL        NK    SHK

(2)通过Project->Add New SDK...创建一个SDK工程

进行一些配置,最重要的是在Additional Folders项中添加我们要添加的一些头文件,lib库文件以及源文件。

要添加了文件所在位置,如下:

mfc头文件:

../Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/include

LIB文件:

../Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/lib/armv4i

源文件:

../Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/src

上面的这些都是“源路径”那么“Target路径”呢?“目标路径”都写的是相当路径,都是相对于如下路径的路径:

../WINCE600/OSDesigns/NavDar/NavDar/SDKs/SDK2/obj/你自己配置的SDK名称

相对路径我们都设置成如下:

mfc头文件:

mfc/include

LIB文件:

mfc/lib/armv4i

源文件:

mfc/src

OK,这样使用“build all sdks...” 生成的SDK大小为18M左右。

参考博文:

http://www.yfeshop.cn/html/NETboke/200811/danjidajianWinCEkaifahuanjing_3362.html

这两天在调试RMC程序,这是一个WinCE下的“远程桌面”程序。由于在单位没有时间调,所以只能回家做,可家里又没实验板。好在Windows CE是有模拟器的,可以用模拟器代替实验板进行程序的调试。即便如此,还是碰到了一些问题,不过都一一解决了,写出来跟大家分享一下。

最早主机上已经安装了EVC4+SP4,VS2005+SP1+Platform Builder6.0+R2等 Windows CE的主要开发工具。既然没有实验板,那就定制一个中文的WinCE6.0的操作系统,再导出SDK,这不就解决了板子的问题吗?

思路是对了,可一动手就发现有问题。PB6.0中已经没有对MFC的支持。而目前很多程序都是基于MFC的,这要调试MFC的程序可怎么办?想了一想,系统要支持MFC,其实就是要几个DLL,把MFC相关的几个DLL加到NK.bin中不就行了?在Program Files/Microsoft Visual Studio 8/VC/ce/Dll/armv4的目录下找到了几个跟MFC相关的DLL。看来微软还没有彻底抛弃MFC,只是想让大伙少用。把这几个DLL拷贝到BSP对应的目录下,并修改platform.bib文件。第一个问题顺利解决。MFC加进去了,.NET Compact Framework那更是必须选上的,留条后路。^_^

为了让系统支持ActiveSync,在CATALOG里添加了相应的组件,这比较简单。问题是系统启动后得自己去创建一个连接,还要修改”PC连接”的选项才能用。不能这么麻烦,想个办法解决一下。建立好连接后,用驱动调试助手把对应的注册表信息导出来,放到platform.reg里去,这样重新编译完的系统就能直接使用ActiveSync了。需要说明一下的是,在使用时需要设置主机上的ActiveSync,让其支持DMA的连接方式。

到这里,终于完成了系统的定制。编译下载测试,基本达到了预期效果。接下来该导出SDK了。在导SDK的过程中发现MFC也没有相关选项的支持。这不又麻烦了,导出的SDK不能支持MFC,虽然VS2005支持使用MFC编写设备的程序。得想办法把MFC加进来。还是在Program Files/Microsoft Visual Studio 8/VC/ce/的目录下面有一个atlmfc的目录。这里面包括了MFC对应的头文件和库。在定制SDK的属性页Additional Folders中添加相关的项,最后编译安装,测试一切正常。注意在添加MFC时只选择armv4I的目录,要全部选可有好几百兆呢。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chinesedragon2010/archive/2010/07/22/5756581.aspx

如何导出wince6.0的SDK相关推荐

  1. WINCE6.0 SDK 模拟器下载与安装

    在使用VS2008进行CE开发过程经常需求调试程序,和模拟程序执行,附件中是WINCE6.0模拟器(SDK),使用系统开发是可以模拟WINCE6.0操作系统运行 C#(CF)程序. 下载并安装完成后, ...

  2. Wince6.0应用开发:一、平台搭建

    由于需要参加一个比赛,于是就接触了WinCE6.0的应用开发,可是所看到的资料大部分都是关于WinCE6.0系统的开发,或者在系统之上的驱动开发.像我这种只在WinCE6.0上利用厂商提供的类库进行应 ...

  3. VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题

    把VS2005工程有采用的Pocket PC 2003 SDK改为WINCE6.0 SDK,具体操作见链接 http://blog.csdn.net/loongembedded/article/det ...

  4. WinCE6.0的EBOOT概要

    为一个新的硬件设备定制WinCE6.0操作系统,一般需要完成以下几个主要步骤: 1.       针对特定的硬件设备创建板级支持包(Board Support Package缩写为BSP),BSP必须 ...

  5. 解决WINCE6.0新建工程编译出错的问题

    ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...

  6. WINCE6.0显示驱动模型介绍

    ********************************LoongEmbedded*****************作者:LoongEmbedded(kandi)时间:2011.06.4 类别 ...

  7. WINCE6.0+S3C6410串口驱动

    ********************************LoongEmbedded************************作者:LoongEmbedded(kandi)时间:2011. ...

  8. WINCE6.0+S3C2443下的usb function(功能)驱动

    ********************************LoongEmbedded************************ 作者:LoongEmbedded(kandi) 时间:201 ...

  9. WINCE6.0文件系统及存储管理器

    *******************************LoongEmbedded******************************** 作者:LoongEmbedded 时间:201 ...

最新文章

  1. SpringCloud 2020版本教程4:使用spring cloud sleuth+zipkin实现链路追踪
  2. SharedPreferences小细节
  3. leetcode 268. Missing Number
  4. Springmvc文件上传(servlet3.0)/下载(ssm)以及坑点
  5. J.R.R.托尔金笔下的中土世界与《斗破苍穹》项目实践:从世界观解构入手场景设计
  6. TensorRT安装教程
  7. awesome-go:很全的go语言资源合集
  8. 三百英雄服务器维护2020,酸败英雄梦服维护公告《300英雄梦服》将定于2020年8月3...
  9. Git教程(二)-如何上传和同步自己的git项目
  10. V8 引擎是如何工作的?
  11. shell_study
  12. 【Photoshop 教程系列第 3 篇】如何在 PS 中修改图片的分辨率和大小(一步一步详细说明)
  13. Cygwin安装教程并构建WFDB软件包
  14. 01背包问题解法及优化
  15. Android第三方授权分享在新浪微博授权提示:文件不存在 C8998 的解决方法
  16. binutils工具集——ld的用法
  17. GitLab删除项目操作(亲测)
  18. 可口可乐公司2019年第三季度延续强劲増势,净收入增长8%
  19. vs2019 自定义工具错误: 未能生成文件: 系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)
  20. 常用电子元器件及封装 20170612 周一

热门文章

  1. 线程池中阻塞队列的作用?为什么是先添加列队而不是先创建最大线程?线程池中线程复用原理
  2. oracle+字段+virtual,Oracle 11g新特性之--虚拟列(Virtual Column)
  3. php 类 init,基于initPHP的框架介绍
  4. no.7_qzhai 开心版_传世霸业超变版下载-传世霸业超变版手机版下载v1.0
  5. 驱动备份工具哪个好_文章原创度检测工具哪个好?这个工具还有其他你不知道的功能...
  6. 使用RoundedBitmapDrawable快速生成圆角和圆形图片
  7. 第一篇:数据库服务概述
  8. 蚂蚁森林消息气泡_元气森林靠代工借单品蹿红 成立3年估值40亿元如今自建工厂...
  9. mysql数据库驱动_JDBC 加载mysql数据库驱动
  10. Linux下Nginx编译安装后的开机自启动设置