update更新多条数据:如何在CE6.0 image中加入MFC的支持, 及如何导出相关的SDK

来源:百度文库 编辑:中财网 时间:2024/04/29 21:28:22

如何在CE6.0 image中加入MFC的支持, 及如何导出相关的SDK

       这两天在调试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下载到。

Tag标签: MFC,Activesync,WinCE6.0,中文模拟器,SDK0 0 0(请您对文章做出评价)

posted on 2008-07-30 23:13 wince.he 阅读(6798) 评论(25)  编辑 收藏 网摘

评论

1622093

#1楼 2008-07-31 09:15 蜡人张      

mark!
thx for your share.   回复  引用  查看    

#2楼 2008-07-31 10:09 黎波      

谢谢分享。   回复  引用  查看    

#3楼 2008-07-31 11:31 中北的后生      

谢谢分享.   回复  引用  查看    

#4楼 2008-07-31 14:29 A.Z![未注册用户]

机器上只有vs2008,MS不厚道!   回复  引用    

#5楼[楼主] 2008-08-01 00:43 何建邦      

@A.Z!
VS2008应该也可以用来开发WinCE的程序吧?^_^
你要是有空帮忙测试一下我定制的SDK,是否能在VS2008里面正常使用。   回复  引用  查看    

#6楼[楼主] 2008-08-01 00:47 何建邦      

@蜡人张
@黎波
@中北的后生
感谢你们的支持。^_^   回复  引用  查看    

#7楼 2008-08-22 17:46 小勇[未注册用户]

用文中的定制SDK编译时出错“无法打开包括文件:“pkfuncs.h”: No such file or directory”,请专家指导   回复  引用    

#8楼[楼主] 2008-08-23 13:24 wince.he      

@小勇
应该是没有设定附加包含目录。
一般pkfuncs.h文件在C:\WINCE600\PUBLIC\COMMON\OAK\INC目录下
另外,通常还需要包括C:\WINCE600\PUBLIC\COMMON\DDK\INC和
C:\WINCE600\PUBLIC\COMMON\SDK\INC等路径。   回复  引用  查看    

#9楼 2008-09-02 13:13 chenlt[未注册用户]

想请教一个问题,如果想开发基于Windows CE6.0的应用程序,一定要用VS2005吗,用EVC行不行,如何实现?

如果按照你上面的文章来做,是否有详细的步骤列出?比如说把MFC的DLL拷贝到哪个目录下,platform.bib里添加什么内容?

有没有比较好的VS2005及CE6.0的书籍,我想买来看看!

请帮忙解答,万分感谢!
  回复  引用    

#10楼 2008-09-04 11:36 chenlt[未注册用户]

请问一下:从上面提到的http://download.csdn.net/source/563215这里下载的模拟器SDK是否包含了directshow的功能?谢谢!
  回复  引用    

#11楼 2008-09-11 15:30 chenlt[未注册用户]

我想用VS2005(MFC)开发一个运行在Wince6.0上的E-Book,功能只要能阅读txt文档就可以,请问用CEdit控件可以吗,还是有其他更好的控件,目前比较通用的做法怎样,有没有相关的参考资料,非常感谢了!   回复  引用    

#12楼[楼主] 2008-09-11 19:25 wince.he      

应该是可以的,不过需要自己做更多的处理。另外,需要考虑文件很大,超过多行CEDIT的最大显示字符数的情况。
Windows CE程序设计的书里面好像有类似的代码,你可以找找看。   回复  引用  查看    

#13楼 2008-10-21 10:00 xqhrs232[未注册用户]

为什么你包含的MFC的DLL用的是ARMV4目录下的,而不是现在流行的ARMV4I目录下的?   回复  引用    

#14楼[楼主] 2008-10-22 22:15 wince.he      

@xqhrs232
我这里用的就是ARMV4I的吧。   回复  引用  查看    

#15楼 2009-02-24 13:42 wang1xin[未注册用户]

下面这段话中有几个地方不明白,请楼主说的详细点,
1.拷贝的是armv4目录下的dll 为什么不是armv4i目录下的dll。
2.dll拷到bsp那个目录下,是否可以举个例子。
3.修改bib文件,怎么修改。
感谢楼主,
(在Program Files\Microsoft Visual Studio 8\VC\ce\Dll\armv4的目录下找到了几个跟MFC相关的DLL。看来微软还没有彻底抛弃MFC,只是想让大伙少用。把这几个DLL拷贝到BSP对应的目录下,并修改platform.bib文件)   回复  引用    

#16楼[楼主] 2009-02-25 21:32 wince.he      

@wang1xin
1.ARMV4I的应该也是可以的。
2.拷贝到BSP的files目录下。
3.参照platform.bib文件中FILES的内容添加就可以啦。   回复  引用  查看    

#17楼[楼主] 2009-03-04 21:10 wince.he      

Platform.bib中添加的内容如下:
MFC80ENU.DLL $(_FLATRELEASEDIR)\MFC80ENU.DLL NK SH
atl80.dll $(_FLATRELEASEDIR)\atl80.dll NK SH
MFC80CHS.DLL $(_FLATRELEASEDIR)\MFC80CHS.DLL NK SH
msvcr80d.dll $(_FLATRELEASEDIR)\msvcr80d.dll NK SH
msvcr80.dll $(_FLATRELEASEDIR)\msvcr80.dll NK SH
MFC80UD.DLL $(_FLATRELEASEDIR)\MFC80UD.DLL NK SH
MFC80U.DLL $(_FLATRELEASEDIR)\MFC80U.DLL NK SH   回复  引用  查看    

#18楼 2009-04-02 20:21 andywxf

博主你好,我看到你文章说到“Shared Folder可以实现文件共享,网络也没有问题”,文件共享按你说的我可以搞定,但是怎么样去共享网络呀!!   回复  引用    

#19楼 2009-05-07 10:07 jtg[未注册用户]

下载文件有病毒!   回复  引用    

#20楼 2009-05-27 15:22 gooogleman[未注册用户]

汗!PB6.0 支持 MFC 要做这么多工作。微软太不厚道了,使用win32 又难度大。   回复  引用    

#21楼 2009-05-31 11:52 gooogleman[未注册用户]

也可以用EVC来编写程序,通过文件共享放到WinCE6.0的模拟器中去执行
————————————————————
博主,这个文件共享是怎么做的?   回复  引用    

#22楼 2009-06-01 08:38 gooogleman[未注册用户]

已经明白这个文件共享了。哈哈。
在连接设置里面,PC共享的文件夹会映射到storage card

不过我看博主的演示驱动调试助手的时候怎么可以把EVC的串口调试助手放到
我的设备之下直接运行的?你是怎么做到的?   回复  引用    

#23楼 2009-06-01 12:40 gooogleman[未注册用户]

哈哈,拷贝出来即可。我晕,全部可行了,可以运行EVC 的MFC程序了。   回复  引用    

#24楼 2009-06-04 14:11 mhsornystone[未注册用户]

能问问博主的联系方式么? MSN.. QQ.. 都可以。
刚刚开始着手学习这方面的知识,想找个人指点指点   回复  引用    

#25楼 2009-08-21 15:57 egmkang      

请问博主.
我自己做的SDK,只能看,插入底座想同步,但是同步不了,该咋办才能同步呢?
谢谢   回复  引用  查看