如何在wince6.0 模拟器上跑以前编译好的EVC MFC程序
//-----------------------------------------------------------------------------------------------------------
// 作者:wogoyixikexie@gliet
//论坛账号:gooogleman (经常在CSDN出没)
// 版权:桂林电子科技大学一系科协wogoyixikexie@gliet
// 平台:wince5.0 2440 5.0 BSP
// 发布日期:2009年6月1日 15:05:48
// 最后修改:2009年6月15日 10:26:01
// 注意事项:未经作者同意,不得在转载的时候擅自修改、删除文章的任何部分
//-----------------------------------------------------------------------------------------------------------
l
折腾了两三天,终于把wince6.0 安装上去,并且把成功在模拟器上运行了以前的c#以及EVC 的MFC程序。
通常,都是导出SDK,然后接着用VS2005 开发应用程序,在模拟器上调试,现在我没有程序的源代码怎么办?但是我也没有开发板咋办呢?甚至wince6.0 以及没有MFC 组件支持,又该咋办呢?
看了sunrain_hjb的文章(http://www.cnblogs.com/we-hjb/archive/2008/07/30/1256838.html#1542486)受益匪浅,里面讲了实现上面问题的方法。现在我来弄个更加详细的版本。
首先,编译好一个模拟器的工程(网上很多过程了,请百度一下,在这里不再赘述),在这里要补充的是——如何加入MFC支持。在Program Files\Microsoft Visual Studio 8\VC\ce\Dll\armv4的目录下找到了几个跟MFC相关的DLL。看来微软还没有彻底抛弃MFC,只是想让大伙少用。把这几个DLL拷贝到BSP以及编译好的工程对应的目录下,并修改platform.bib文件。
在platform.bib文件文件中
IF SupportMFC !
MFC80CHS.DLL $(_FLATRELEASEDIR)\MFC80CHS.DLL NK SH
MFC80CHT.DLL $(_FLATRELEASEDIR)\MFC80CHT.DLL NK SH
MFC80DEU.DLL $(_FLATRELEASEDIR)\MFC80DEU.DLL NK SH
MFC80ENU.DLL $(_FLATRELEASEDIR)\MFC80ENU.DLL NK SH
MFC80ESP.DLL $(_FLATRELEASEDIR)\MFC80ESP.DLL NK SH
MFC80FRA.DLL $(_FLATRELEASEDIR)\MFC80FRA.DLL NK SH
MFC80ITA.DLL $(_FLATRELEASEDIR)\MFC80ITA.DLL NK SH
MFC80JPN.DLL $(_FLATRELEASEDIR)\MFC80JPN.DLL NK SH
MFC80KOR.DLL $(_FLATRELEASEDIR)\MFC80KOR.DLL NK SH
MFC80U.DLL $(_FLATRELEASEDIR)\MFC80U.DLL NK SH
MFC80UD.DLL $(_FLATRELEASEDIR)\MFC80UD.DLL NK SH
ENDIF ;SupportMFC !
然后,设置一下连接,分辨率大小啊,串口映射信息输出啊,在这里最重要的一点就是设置“文件共享”把PC里面的应用程序映射到模拟器这样就可以执行了。看图就明白了。
双击就可以运行了。哈哈,终于会这个了,以后在家里也可以玩玩了。
今天(2009年6月15日),我在我的2440 上也这么做,可以运行以前的EVC程序了,有些人建议在编译程序的时候静态链接那些DLL,效果是一样,但是这样会有麻烦的:
第一、如果我没有这个EVC的源码怎么办?所以根本就是不能运行了。一些别人写的好软件就不能用了。
第二、每次都是静态链接,那么这个程序编译出来会很大吧。占用空间,不科学。
打包即可!