基于WINCE.NET4.2系统的PDA使用PPC2003软件全攻略(以我的HAPO200A为例)
基于WINCE.NET4.2系统的PDA使用PPC2003软件全攻略(以我的HAPO200A为例) 前一段时间买了个PDA,是南京东集公司(www.seuic.com)出的HAPO200A,系统是WINCE.NET4.2,当初本来想买他们那个基于LINUX系统的HAPO200,可是为了支持GPRS卡,选择了WINCE.NET系统,买回去才发现WINCE.NET4.2下的软件少得可怜,而PPC2002/PPC2003下的软件又大部分不能在WINCE.NET4.2下安装运行,郁闷啊!!! 可是不能仅仅郁闷,于是开始发挥DIY的精神进行研究,如何让这些软件在WINCE.NET4.2下正常运行: 因为我大体知道PPC2003/PPC2003也是WINCE家族的,查了资料,弄清楚它们的血缘关系: PPC2002是基于WINCE3.0的一个高度定制化版本, PPC2003是基于WINCE.NET4.x的一个高度定制化版本, WINCE3.0以后的版本因为使用了.NET FRAMEWORK所以统称为WINCE.NET4.X,也就是说WINCE.NET4.2跟PPC2003的底层是高度兼容的,PPC2003只是增加了一些比较特殊的组件。 那么思路就有了,只要找到这些组件(一般是DLL文件),把它们拷贝到系统里就可以了。 接下来就按照这个思路去研究:但是找DLL文件比较麻烦,我开始是使用EVC++的进程查看器来查询某个软件会调用哪些DLL文件,但是多数PPC2003的软件运行找不到所需组件就会自动终止进程,没办法查看,看来此路不通,自己编个程序吧,又比较花时间(因为我以前没写过PDA的程序,光是查资料就需要很长时间,再加上更费时间的调试就更不现实了),好在HI-PDA上有很多高手,我在以前的文章里找到一个可以查看运行程序所需DLL的软件,参考了这个帖子:【s3上软件...】【http://www.hi-pda.com/forum/viewthread.php?fpage=1&tid=206057】, OK,这个问题也解决了,只要确定出需要的DLL文件来,然后从其他PPC2003的系统里把需要的DLL文件拷贝过来就可以了。 以上就是我的基本解决思路,下面是详细的过程:一、需要准备的软件 1、EVC++4.0,这个很重要,EVC的环境里提供了一些有用的工具,比如说截图程序,进程查看器(这个最重要,可以在PC端终止一些意外的程序,让你在试验的时候减少RESET的次数)等等,另外有了这个环境你也可以自己编译一些简单的程序,增加对PDA系统的了解; 2、ULTRAEDIT,这个是用来修改软件的东东,也比较重要 3、ROMDump(PDA上运行)和dumprom(PC上运行)--注意区别 ROMdump用来把PDA上的ROM抓取出来(主要是为了提取其中的DLL文件,因为无法直接从/windows目录下拷贝),抓出来的ROM是一个BIN文件,dumprom用来解开抓取出来的ROM文件,得到最终的DLL文件,我们起码需要两个ROM文件,一个是我们自己WINCE.NET4.2系统的ROM文件,用来备份,另一个是一个基于PPC2003系统的PDA的ROM文件,用来提供我们的WINCE.NET4.2缺少的DLL文件; 4、相关的DLL集合,包括doclist.dll,mfcce300.dll,noteprj.dll,olece300.dll(前四个是支持HPC运行PPC软件的DLL),gapinet.dll,gx.dll(这个比较重要,用来支持一些图形函数),cecore.dll,sdl.dll(这个类似于DIRECTX),aygshell.dll(这个文件WINCE.NET4.2也有,不过版本不同,不建议替换),kctrl.dll(这个好象是用来支持日文的),vbscript.dll,这些都DLL比较重要,有些软件只要把它们拷贝到系统里就可以运行了 5、ExecutabilityCheck(PDA上运行),这个软件是用来检查某个软件需要哪些DLL文件 二、基本操作流程: 1、把一中提到的相关DLL文件拷贝到你的PDA上的/windows目录下,有些软件就可以运行了; 2、有些需要安装的软件在安装时会弹出窗口提示:无法安装,这时需要修改CAB文件,运行ULTRAEDIT打开安装的CAB文件查找第一个“110A”,找到后用“2007”替换,这样就可以安装了,是参考这篇帖子【在SIII上使用HPC2000的软件方法】【http://www.hi-pda.com/forum/viewthread.php?tid=211627&fpage=2】; 3、有很多软件没有单独的安装CAB文件,可以参照HI-PDA里的这篇帖子【教你如何得到程序的cab文件】【http://www.hi-pda.com/forum/viewthread.php?fpage=1&tid=147177】找到它的CAB文件,然后再按照第2步的做法去修改,这样处理以后大多数的PPC2003软件都可以安装在WINCE.NET4.2里了,需要注意的是有些软件安装会在自己的目录里拷贝一个低版本的gx.dll(大小为8.5k),这样会导致PDA的/windows下的gx.dll(大小为11k)不被调用,有时会引起花屏,解决的办法是把你的PDA里的/program files/xxx目录下(xxx是你安装的软件)的gx.dll删除; 4、很多软件经过以上的步骤就可以运行了,剩下不能运行的一般会提示:找不到组件,这时ExecutabilityCheck就出场了,先把它拷贝到你的PDA上,然后通过它来调用你要运行的软件,它会告诉你这个软件在调用哪些DLL时没有找到,记下这些DLL文件的名字,按图索骥把它们拷贝到你的PDA里,一般就可以了; 5、用步骤一里提到的ROMDump(PDA上运行)和dumprom(PC上运行)取得你需要的DLL文件,ROMDump使用很简单,直接拷贝到你的PDA上,然后在控制面板里调整一下存储空间,空出32M来,直接运行就可以了,我有一篇帖子【超级程序:ROMDump 可以抓取大多数PPC的ROM的软件(附源代码)】【http://www.hi-pda.com/forum/viewthread.php?fpage=1&tid=211821】讲过这个软件的用法,建议大家下载那个我编译过的32M版本的,关于如何使用dumprom,HI-PDA里有文章说得很详细,可以参考【ROM的秘密在这里】【http://www.hi-pda.com/forum/viewthread.php?fpage=1&tid=144955】,不过那篇文章给出的dumprom在我的PC上老是非法操作,我从其他地方下载了一个,附在这篇帖子后面。 6、大多数的PPC2003软件经过这么处理应该可以在你的WINCE.NET4.X上运行了,接下来的步骤三讨论一下不能运行的那些软件 三、其他的例外通过以上的处理,相信大多数的PPC2003的软件都可以搞定了,其余还不能运行的一般有是这样的情况(仅仅是分析):软件调用同名的DLL文件,但是这些DLL的版本不同,而且无法替换,因为你的WINCE.NET4.2系统也要调用它们,一旦替换了这些DLL文件你的PDA系统就要出问题,比如asyshell.dll在wince.net4.2里跟在PPC2003里就不一样,其实这样的软件也可以解决,就是换一个可以既提供WINCE.NET4.2系统调用,也可以提供软件调用的DLL,不过弄起来相当麻烦,需要对wince.net4.2系统很了解然后对那个软件也很了解(我说的是代码层次的了解)才能搞定。 这些就是这段日子以来我玩PDA的一点体会,希望能给系统同是WINCE.NET4.X而且苦于该系统软件稀缺的朋友一点启发,还有就是感谢HI-PDA的很多高手的文章,让我节省了很多时间,另外,因为我对PDA还是个新手,肯定有一些理解和表达有所差池,希望懂行的朋友能指出我的谬误,谢谢。 同时呼吁大家积极支持国产PDA!!!嘿嘿,东集集团(www.seuic.com)的PDA还是满不错的,尤其是那款基于LINUX系统的HAPO200(当初就是这款机型把我带到了东集的网站),以后一定要好好研究一下,东集的售后服务也挺好,我第一次把系统搞瘫痪时他们很快帮我重刷了ROM,当初在SHARP-SL7500C跟东集的PDA之间最终选择东集的PDA也有部分原因是为了支持国产PDA。透露一点,据东集的朋友说,这款基于WINCE.NET4.2的HAP200A跟基于LINUX系统的HAPO200硬件完全一样,也就是说这款PDA既可以刷WINCE.NET,也可以刷LINUX(这个版本的LINUX可是东集集团一手开发的,在原来的基础上增加了很多中文相关的东东,实用性稳定性都是一流,我估计SHARP-SL7500C的很多软件也可以在这款机器上运行,因为它们使用的嵌入式LINUX不仅kernal版本号一样,而且就连GUI也都是用的QT),不过东集现在还没有提供刷LINUX的工具跟LINUX的ROM,不知道他们将来是否提供,如果提供的话,这款机器可是有很高DIY价值的。 后面会附上一些需要的软件,省得大家再花时间四处搜索了 注意事项:在拷贝你的PDA里的系统DLL文件时,如果有同名文件提醒是否替换时请谨慎操作,很可能会引起重启。 DLL文件集合,包括doclist.dll,mfcce300.dll,noteprj.dll,olece300.dll,gapinet.dll,gx.dll,cecore.dll,sdl.dll,aygshell.dll,kctrl.dll,vbscript.dll TEL:025-83907170 Jiang su dongji