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

时间:2021-07-27 08:20:00

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系统调用,