Windows Embedded CE 6.0手动加入MFC支持

开发平台由Windows CE.NET转到Windows Embedded CE 6.0,所以操作系统要重新定制。因为之前的程序几乎清一色的都是基于MFC的,所以新系统中要加入MFC的支持。找遍Application and Service Development下的Catalog Item竟然找不到MFC的影子。查看文档Windows Embedded CE Features找到Application and Service Development Catalog Item中对MFC的说明,Catalog Item列表项中有对MFC的说明,也有Sysgen变量SYSGEN_MFC,在Description中最后有这样一句:This Catalog item is only available in display-based OS designs.
我想,我们开发操作系统和的应用程序肯定是有图形界面显示的,既然有这句话应该能把MFC加进去。我开始的做法是自己手动设置SYSGEN_MFC变量,编译后NK.bin大小没有变化,启动后看不到MFC库文件。看来这个方法是行不通的。

要加入对MFC的支持,只是把MFC的动态链接库加入到操作系统镜像文件nk.bin中即可。想到这点,解决的方法就简单了。在VS2005安装目录下可以找到Windows CE的MFC DLL。

我的做法是:
1:在VS2005目录下找到MFC DLL。在我的电脑上目录是D:/Program Files/Microsoft Visual Studio 8/VC/ce/Dll/x86。因为我用的平台是基于CEPC,所以选择x86目录。
2:复制MFC DLL到%WINCE_ROOT%/OSDesigns/MFC目录。将x86下的所有dll文件复制到MFC目录,MFC目录是自己创建的目录,也可以是其他名称。不是所有的dll文件都会用到,只是为了省事。
3:设置Custom Build Actions。打开平台的Property Pages,在Configration Properties的Custom Build Pages 的tab页中,将Build step下拉框中选中Pre-Make Image。点击下面的New...按钮,在弹出的对话框中输入copy %_WINCEROOT%/OSDesigns/MFC/ %_FLATRELEASEDIR%/。这里输入的是DOS命令,命令中可以使用Windows CE中设置的环境变量。上面的命令是把MFC目录下的dll文件拷贝到%_FLATRELEASEDIR%目录中,同样地,不是所有的dll文件都会用到。
4:修改配置文件。在Project.bib文件中把下面几句加进去,
    MFC80U.DLL        $(_FLATRELEASEDIR)/MFC80U.DLL            NK    SH
    MFC80UD.DLL   $(_FLATRELEASEDIR)/MFC80UD.DLL        NK    SH
    MFC80ENU.DLL    $(_FLATRELEASEDIR)/MFC80ENU.DLL       NK    SH
    atl80.dll      $(_FLATRELEASEDIR)/atl80.dll        NK    SH
    msvcr80.dll $(_FLATRELEASEDIR)/msvcr80.dll           NK    SH
    msvcr80D.dll      $(_FLATRELEASEDIR)/msvcr80D.dll            NK    SH
如果想要在以后的操作系统设计中都用到这样的配置,可以加到Platform.bib文件中。
MFC80ENU.DLL是英文资源文件,根据你所使用的语言选择不同的资源DLL文件。调试版DLL也可不必加入到操作系统镜像中,根据需要可以做具体修改。
5:构建。得到支持MFC的Windows Embedded CE6.0平台,运行后在/Windows目录下可以看到MFC的几个DLL文件。

如果已经创建了nk.bin文件,不想再花半个小时从头创建的话,可以把用到的MFC DLL文件直接拷贝到%_FLATRELEASEDIR%/下。然后修改Project.bib文件,找到Project.bib,将其拷贝到%_FLATRELEASEDIR%/下。在VS2005的Build菜单中,点击Open Release Directory in Build Window,打开命令行窗口,输入makeimg命令,创建nk.bin。这个过程只要两三分钟的时间。

写了一个基于MFC的对话框程序,设置为动态链接MFC DLL,在系统上运行正常。成功!

PS:转载请注明来源。
--By Kelvin Yin

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值