如何导出wince6.0的SDK 添加MFC支持
2010年12月13日
最近在做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的目录,要全部选可有好几百兆呢。
至此,我们就在单机上搭建好了完整的Windows CE的开发环境,不光是装了很多开发软件,连硬件都有了!很多想学Windows CE开发的学生就不用费心费力费钱去选板子,暂时用模拟器做入门的学习也是个不错的选择。
这里http://files.cnblogs.com/we-hjb/WINCE6.0CHSEMU.rar有WinCE6.0中文模拟器SDK的使用方法和实验的效果。
最后说明一下,Device Emulator为我们提供的Shared Folder可以实现文件共享,网络也没有问题,甚至串口打印信息都可以用text consol window来模拟。我们可以直接用VS2005来调程序,也可以用EVC来编写程序,通过文件共享放到WinCE6.0的模拟器中去执行,添加打印信息的调试方法在这里也可以使用。另外,文中定制的SDK可以在这里http://download.csdn.net/source/563215下载到。
发表评论
-
Linux USB架构浅谈-guolele
2012-01-20 00:51 703Linux USB架构浅谈-guolele ... -
sock编程技术
2012-01-20 00:51 554sock编程技术 2010年08月09日 同步,阻塞,异 ... -
UNIX TCP/IP配置与检测
2012-01-20 00:51 707UNIX TCP/IP配置与检测 2010年12月14日 ... -
Web Application Stress Tool
2012-01-20 00:50 540Web Application Stress Tool 20 ... -
Jabberd2源代码分析:c2s与router SASL验证过程
2012-01-20 00:50 623Jabberd2源代码分析:c2s与router SASL验证 ... -
android新手上路 一
2012-01-17 01:09 695android新手上路 一 2010 ... -
安卓模拟器手机上网,玩游戏
2012-01-17 01:09 865安卓模拟器手机上网,玩 ... -
下载安卓源代码过程
2012-01-17 01:09 516下载安卓源代码过程 2011年12月23日 linux和 ... -
修复工具类
2012-01-17 01:08 436修复工具类 2011年05月08日 ... -
服务器端发送推送数据
2012-01-15 19:50 935服务器端发送推送数据 ... -
ITV常见故障错误代码(中兴平台)
2012-01-15 19:50 865ITV常见故障错误代码(中 ... -
Java语言11个主要特性
2012-01-15 19:50 675Java语言11个主要特性 20 ... -
用PHP代码调用sockets,直接用服务器的网络攻击别的IP
2012-01-15 19:50 644用PHP代码调用sockets,直接用服务器的网络攻击别的IP ... -
1201-p
2012-01-15 19:49 5011201-p 2011年11月30日 内存 威 ... -
shell小结(10)
2012-01-11 12:03 494shell小结(10) 2011年07月01日 #!/b ...
相关推荐
wince6.0 chs sdk是WinCE6.0开发环境(CHSINT SDK For WinCE 6.0)是在windows下开发wince程序的环境搭建和代码编写工具。很不错,值得收藏哦。
Wince6.0中文简体SDK开发包
介绍了wince6.0的sdk的定制过程,我是基于ok6410开发板的。
这个是wince6.0下的sdk,可以直接安装,是中文的,非常好用
在开发过程中用到的WINCE6.0模拟器,使用系统开发是可以模拟WINCE6.0操作系统运行 C#(CF)程序
自己编译的WinCE6.0 SDK ,好用,学习WinCE的好工具
wince6.0模拟器 wince模拟器 WINCE6.0_CHS_SDK
wince6.0 中文模拟器 及SDK制作
wince6.0 sdk开发包,是通过vs2005打包的。方便于别人直接来用。 自己亲自试用过,没有问题。
WinCE6.0中文模拟器的SDK,支持MFC。
wine6.0 SDK msi 安装包,可使用,并可以配合VS2008配置
WinCE6.0中文模拟器的SDK,可在VS2005当中使用,支持.NET Compact Framework2.0。
用于安装CAB文件,WinCE6.0下Wceload工具软件。 用于车机导航系统WINCE6.0,无法在文本框中输入任何文字,需要安装输入法,但系统没有CAB包安装程序wceload.exe ,也许是被精简掉了,这个时候就需要下载wceload.exe...
最近整理了一下 开发wince6.0的心得体会---wince 6.0 开发环境搭建 以及 wince6.0 流驱动开发的2种方法,与大家分享
vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机
Wince 6.0 开发入门教程,Wince 6.0 开发入门教程,Wince 6.0 开发入门教程,Wince 6.0 开发入门教程
具体安装可能要先装 "WinCE开发随书代码.exe" 再装 "ProgWinCE_SDK.msi" 不过貌似不装 "随书代码.exe" 也可以
windows CE 6.0 SDK 确保可以安装使用
网上资源part1 + part2,便于下载。 wince6.0 中文版的模拟器
wince6.0平台的搭建 安装VS2008、构建SDK、模拟器调试等