基于WINCE.NET4.2系统的PDA使用PPC2003软件全攻略

发 布 时 间 : 2008-11-19 来 源 : 来自网络 作 者 : 匿名 浏 览 :

来源不详,本文拷贝自http://blog.csdn.net/flycam/archive/2006/03/20/629849.aspx

这个链接也许对你也有用

http://www.hi-pda.com/forum/viewthread.php?tid=216915

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文件时,如果有同名文件提醒是否替换时请谨慎操作,很可能会引起重启.



上一篇:2410的linux内核启动地址30008000 由来探讨 下一篇:Platform Builder配置文件