PPC2003是基于WINCE.NET4.x的一個高度定制化版本,
WINCE3.0以后的版本因為使用了.NET FRAMEWORK所以統(tǒng)稱為WINCE.NET4.X,也就是說WINCE.NET4.2跟PPC2003的底層是高度兼容的,PPC2003只是增加了一些比較特殊的組件。
那么思路就有了,只要找到這些組件(一般是DLL文件),把它們拷貝到系統(tǒng)里就可以了。
接下來就按照這個思路去研究:
但是找DLL文件比較麻煩,我開始是使用EVC 的進(jìn)程查看器來查詢某個軟件會調(diào)用哪些DLL文件,但是多數(shù)PPC2003的軟件運(yùn)行找不到所需組件就會自動終止進(jìn)程,沒辦法查看,看來此路不通,自己編個程序吧,又比較花時間(因為我以前沒寫過PDA的程序,光是查資料就需要很長時間,再加上更費時間的調(diào)試就更不現(xiàn)實了),好在HI-PDA上有很多高手,我在以前的文章里找到一個可以查看運(yùn)行程序所需DLL的軟件,參考了這個帖子:
【s3上軟件...】
【http://www.hi-pda.com/forum/viewthread.php?fpage=1&tid=206057】,
OK,這個問題也解決了,只要確定出需要的DLL文件來,然后從其他PPC2003的系統(tǒng)里把需要的DLL文件拷貝過來就可以了。
以上就是我的基本解決思路,下面是詳細(xì)的過程:
一、需要準(zhǔn)備的軟件
1、EVC 4.0,
這個很重要,EVC的環(huán)境里提供了一些有用的工具,比如說截圖程序,進(jìn)程查看器(這個最重要,可以在PC端終止一些意外的程序,讓你在試驗的時候減少RESET的次數(shù))等等,另外有了這個環(huán)境你也可以自己編譯一些簡單的程序,增加對PDA系統(tǒng)的了解;
2、ULTRAEDIT,
這個是用來修改軟件的東東,也比較重要
3、ROMDump(PDA上運(yùn)行)和dumprom(PC上運(yùn)行)--注意區(qū)別
ROMdump用來把PDA上的ROM抓取出來(主要是為了提取其中的DLL文件,因為無法直接從/windows目錄下拷貝),抓出來的ROM是一個BIN文件,dumprom用來解開抓取出來的ROM文件,得到最終的DLL文件,我們起碼需要兩個ROM文件,一個是我們自己WINCE.NET4.2系統(tǒng)的ROM文件,用來備份,另一個是一個基于PPC2003系統(tǒng)的PDA的ROM文件,用來提供我們的WINCE.NET4.2缺少的DLL文件;
4、相關(guān)的DLL集合,
包括doclist.dll,mfcce300.dll,noteprj.dll,olece300.dll(前四個是支持HPC運(yùn)行PPC軟件的DLL),gapinet.dll,gx.dll(這個比較重要,用來支持一些圖形函數(shù)),cecore.dll,sdl.dll(這個類似于DIRECTX),aygshell.dll(這個文件WINCE.NET4.2也有,不過版本不同,不建議替換),kctrl.dll(這個好象是用來支持日文的),vbscript.dll,這些都DLL比較重要,有些軟件只要把它們拷貝到系統(tǒng)里就可以運(yùn)行了
5、ExecutabilityCheck(PDA上運(yùn)行),
這個軟件是用來檢查某個軟件需要哪些DLL文件
二、基本操作流程:
1、把一中提到的相關(guān)DLL文件拷貝到你的PDA上的/windows目錄下,有些軟件就可以運(yùn)行了;
2、有些需要安裝的軟件在安裝時會彈出窗口提示:無法安裝,這時需要修改CAB文件,運(yùn)行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步的做法去修改,這樣處理以后大多數(shù)的PPC2003軟件都可以安裝在WINCE.NET4.2里了,需要注意的是有些軟件安裝會在自己的目錄里拷貝一個低版本的gx.dll(大小為8.5k),這樣會導(dǎo)致PDA的/windows下的gx.dll(大小為11k)不被調(diào)用,有時會引起花屏,解決的辦法是把你的PDA里的/program files/xxx目錄下(xxx是你安裝的軟件)的gx.dll刪除;
4、很多軟件經(jīng)過以上的步驟就可以運(yùn)行了,剩下不能運(yùn)行的一般會提示:找不到組件,這時ExecutabilityCheck就出場了,先把它拷貝到你的PDA上,然后通過它來調(diào)用你要運(yùn)行的軟件,它會告訴你這個軟件在調(diào)用哪些DLL時沒有找到,記下這些DLL文件的名字,按圖索驥把它們拷貝到你的PDA里,一般就可以了;
5、用步驟一里提到的ROMDump(PDA上運(yùn)行)和dumprom(PC上運(yùn)行)取得你需要的DLL文件,ROMDump使用很簡單,直接拷貝到你的PDA上,然后在控制面板里調(diào)整一下存儲空間,空出32M來,直接運(yùn)行就可以了,我有一篇帖子
【超級程序:ROMDump 可以抓取大多數(shù)PPC的ROM的軟件(附源代碼)】
【http://www.hi-pda.com/forum/viewthread.php?fpage=1&tid=211821】
講過這個軟件的用法,建議大家下載那個我編譯過的32M版本的,關(guān)于如何使用dumprom,HI-PDA里有文章說得很詳細(xì),可以參考
【ROM的秘密在這里】
【http://www.hi-pda.com/forum/viewthread.php?fpage=1&tid=144955】,
不過那篇文章給出的dumprom在我的PC上老是非法操作,我從其他地方下載了一個,附在這篇帖子后面。
6、大多數(shù)的PPC2003軟件經(jīng)過這么處理應(yīng)該可以在你的WINCE.NET4.X上運(yùn)行了,接下來的步驟三討論一下不能運(yùn)行的那些軟件
三、其他的例外
通過以上的處理,相信大多數(shù)的PPC2003的軟件都可以搞定了,其余還不能運(yùn)行的一般有是這樣的情況(僅僅是分析):
軟件調(diào)用同名的DLL文件,但是這些DLL的版本不同,而且無法替換,因為你的WINCE.NET4.2系統(tǒng)也要調(diào)用它們,一旦替換了這些DLL文件你的PDA系統(tǒng)就要出問題,比如asyshell.dll在wince.net4.2里跟在PPC2003里就不一樣,其實這樣的軟件也可以解決,就是換一個可以既提供WINCE.NET4.2系統(tǒng)調(diào)用,也可以提供軟件調(diào)用的DLL,不過弄起來相當(dāng)麻煩,需要對wince.net4.2系統(tǒng)很了解然后對那個軟件也很了解(我說的是代碼層次的了解)才能搞定。
這些就是這段日子以來我玩PDA的一點體會,希望能給系統(tǒng)同是WINCE.NET4.X而且苦于該系統(tǒng)軟件稀缺的朋友一點啟發(fā),還有就是感謝HI-PDA的很多高手的文章,讓我節(jié)省了很多時間,另外,因為我對PDA還是個新手,肯定有一些理解和表達(dá)有所差池,希望懂行的朋友能指出我的謬誤,謝謝。
同時呼吁大家積極支持國產(chǎn)PDA?。?!嘿嘿,東集集團(tuán)(www.seuic.com)的PDA還是滿不錯的,尤其是那款基于LINUX系統(tǒng)的HAPO200(當(dāng)初就是這款機(jī)型把我?guī)У搅藮|集的網(wǎng)站),以后一定要好好研究一下,東集的售后服務(wù)也挺好,我第一次把系統(tǒng)搞癱瘓時他們很快幫我重刷了ROM,當(dāng)初在SHARP-SL7500C跟東集的PDA之間最終選擇東集的PDA也有部分原因是為了支持國產(chǎn)PDA。
透露一點,據(jù)東集的朋友說,這款基于WINCE.NET4.2的HAP200A跟基于LINUX系統(tǒng)的HAPO200硬件完全一樣,也就是說這款PDA既可以刷WINCE.NET,也可以刷LINUX(這個版本的LINUX可是東集集團(tuán)一手開發(fā)的,在原來的基礎(chǔ)上增加了很多中文相關(guān)的東東,實用性穩(wěn)定性都是一流,我估計SHARP-SL7500C的很多軟件也可以在這款機(jī)器上運(yùn)行,因為它們使用的嵌入式LINUX不僅kernal版本號一樣,而且就連GUI也都是用的QT),不過東集現(xiàn)在還沒有提供刷LINUX的工具跟LINUX的ROM,不知道他們將來是否提供,如果提供的話,這款機(jī)器可是有很高DIY價值的。
后面會附上一些需要的軟件,省得大家再花時間四處搜索了
注意事項:在拷貝你的PDA里的系統(tǒng)DLL文件時,如果有同名文件提醒是否替換時請謹(jǐn)慎操作,很可能會引起重啟.