<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于WINCE.NET4.2系統(tǒng)的PDA使用PPC2003軟件全攻略

          基于WINCE.NET4.2系統(tǒng)的PDA使用PPC2003軟件全攻略

          作者: 時(shí)間:2011-02-24 來(lái)源:網(wǎng)絡(luò) 收藏

          PPC2003是基于WINCE.NET4.x的一個(gè)高度定制化版本,
          WINCE3.0以后的版本因?yàn)槭褂昧?NET FRAMEWORK所以統(tǒng)稱為WINCE.NET4.X,也就是說(shuō)WINCE.NET4.2跟PPC2003的底層是高度兼容的,PPC2003只是增加了一些比較特殊的組件。

          那么思路就有了,只要找到這些組件(一般是DLL文件),把它們拷貝到系統(tǒng)里就可以了。

          接下來(lái)就按照這個(gè)思路去研究:
          但是找DLL文件比較麻煩,我開始是使用EVC 的進(jìn)程查看器來(lái)查詢某個(gè)軟件會(huì)調(diào)用哪些DLL文件,但是多數(shù)PPC2003的軟件運(yùn)行找不到所需組件就會(huì)自動(dòng)終止進(jìn)程,沒辦法查看,看來(lái)此路不通,自己編個(gè)程序吧,又比較花時(shí)間(因?yàn)槲乙郧皼]寫過(guò)PDA的程序,光是查資料就需要很長(zhǎng)時(shí)間,再加上更費(fèi)時(shí)間的調(diào)試就更不現(xiàn)實(shí)了),好在HI-PDA上有很多高手,我在以前的文章里找到一個(gè)可以查看運(yùn)行程序所需DLL的軟件,參考了這個(gè)帖子:
          【s3上軟件...】
          http://www.hi-pda.com/forum/viewthread.php?fpage=1tid=206057】,
          OK,這個(gè)問(wèn)題也解決了,只要確定出需要的DLL文件來(lái),然后從其他PPC2003的系統(tǒng)里把需要的DLL文件拷貝過(guò)來(lái)就可以了。

          以上就是我的基本解決思路,下面是詳細(xì)的過(guò)程:
          一、需要準(zhǔn)備的軟件
          1、EVC 4.0,
          這個(gè)很重要,EVC的環(huán)境里提供了一些有用的工具,比如說(shuō)截圖程序,進(jìn)程查看器(這個(gè)最重要,可以在PC端終止一些意外的程序,讓你在試驗(yàn)的時(shí)候減少RESET的次數(shù))等等,另外有了這個(gè)環(huán)境你也可以自己編譯一些簡(jiǎn)單的程序,增加對(duì)PDA系統(tǒng)的了解;

          2、ULTRAEDIT,
          這個(gè)是用來(lái)修改軟件的東東,也比較重要

          3、ROMDump(PDA上運(yùn)行)和dumprom(PC上運(yùn)行)--注意區(qū)別
          ROMdump用來(lái)把PDA上的ROM抓取出來(lái)(主要是為了提取其中的DLL文件,因?yàn)闊o(wú)法直接從/windows目錄下拷貝),抓出來(lái)的ROM是一個(gè)BIN文件,dumprom用來(lái)解開抓取出來(lái)的ROM文件,得到最終的DLL文件,我們起碼需要兩個(gè)ROM文件,一個(gè)是我們自己WINCE.NET4.2系統(tǒng)的ROM文件,用來(lái)備份,另一個(gè)是一個(gè)基于PPC2003系統(tǒng)的PDA的ROM文件,用來(lái)提供我們的WINCE.NET4.2缺少的DLL文件;

          4、相關(guān)的DLL集合,
          包括doclist.dll,mfcce300.dll,noteprj.dll,olece300.dll(前四個(gè)是支持HPC運(yùn)行PPC軟件的DLL),gapinet.dll,gx.dll(這個(gè)比較重要,用來(lái)支持一些圖形函數(shù)),cecore.dll,sdl.dll(這個(gè)類似于DIRECTX),aygshell.dll(這個(gè)文件WINCE.NET4.2也有,不過(guò)版本不同,不建議替換),kctrl.dll(這個(gè)好象是用來(lái)支持日文的),vbscript.dll,這些都DLL比較重要,有些軟件只要把它們拷貝到系統(tǒng)里就可以運(yùn)行了

          5、ExecutabilityCheck(PDA上運(yùn)行),
          這個(gè)軟件是用來(lái)檢查某個(gè)軟件需要哪些DLL文件

          二、基本操作流程:
          1、把一中提到的相關(guān)DLL文件拷貝到你的PDA上的/windows目錄下,有些軟件就可以運(yùn)行了;

          2、有些需要安裝的軟件在安裝時(shí)會(huì)彈出窗口提示:無(wú)法安裝,這時(shí)需要修改CAB文件,運(yùn)行ULTRAEDIT打開安裝的CAB文件查找第一個(gè)“110A”,找到后用“2007”替換,這樣就可以安裝了,是參考這篇帖子
          【在SIII上使用HPC2000的軟件方法】
          http://www.hi-pda.com/forum/viewthread.php?tid=211627fpage=2】;

          3、有很多軟件沒有單獨(dú)的安裝CAB文件,可以參照HI-PDA里的這篇帖子
          【教你如何得到程序的cab文件】
          http://www.hi-pda.com/forum/viewthread.php?fpage=1tid=147177
          找到它的CAB文件,然后再按照第2步的做法去修改,這樣處理以后大多數(shù)的PPC2003軟件都可以安裝在WINCE.NET4.2里了,需要注意的是有些軟件安裝會(huì)在自己的目錄里拷貝一個(gè)低版本的gx.dll(大小為8.5k),這樣會(huì)導(dǎo)致PDA的/windows下的gx.dll(大小為11k)不被調(diào)用,有時(shí)會(huì)引起花屏,解決的辦法是把你的PDA里的/program files/xxx目錄下(xxx是你安裝的軟件)的gx.dll刪除;

          4、很多軟件經(jīng)過(guò)以上的步驟就可以運(yùn)行了,剩下不能運(yùn)行的一般會(huì)提示:找不到組件,這時(shí)ExecutabilityCheck就出場(chǎng)了,先把它拷貝到你的PDA上,然后通過(guò)它來(lái)調(diào)用你要運(yùn)行的軟件,它會(huì)告訴你這個(gè)軟件在調(diào)用哪些DLL時(shí)沒有找到,記下這些DLL文件的名字,按圖索驥把它們拷貝到你的PDA里,一般就可以了;

          5、用步驟一里提到的ROMDump(PDA上運(yùn)行)和dumprom(PC上運(yùn)行)取得你需要的DLL文件,ROMDump使用很簡(jiǎn)單,直接拷貝到你的PDA上,然后在控制面板里調(diào)整一下存儲(chǔ)空間,空出32M來(lái),直接運(yùn)行就可以了,我有一篇帖子
          【超級(jí)程序:ROMDump 可以抓取大多數(shù)PPC的ROM的軟件(附源代碼)】
          http://www.hi-pda.com/forum/viewthread.php?fpage=1tid=211821
          講過(guò)這個(gè)軟件的用法,建議大家下載那個(gè)我編譯過(guò)的32M版本的,關(guān)于如何使用dumprom,HI-PDA里有文章說(shuō)得很詳細(xì),可以參考
          【ROM的秘密在這里】
          http://www.hi-pda.com/forum/viewthread.php?fpage=1tid=144955】,
          不過(guò)那篇文章給出的dumprom在我的PC上老是非法操作,我從其他地方下載了一個(gè),附在這篇帖子后面。

          6、大多數(shù)的PPC2003軟件經(jīng)過(guò)這么處理應(yīng)該可以在你的WINCE.NET4.X上運(yùn)行了,接下來(lái)的步驟三討論一下不能運(yùn)行的那些軟件

          三、其他的例外
          通過(guò)以上的處理,相信大多數(shù)的PPC2003的軟件都可以搞定了,其余還不能運(yùn)行的一般有是這樣的情況(僅僅是分析):
          軟件調(diào)用同名的DLL文件,但是這些DLL的版本不同,而且無(wú)法替換,因?yàn)槟愕?U>WINCE.NET4.2系統(tǒng)也要調(diào)用它們,一旦替換了這些DLL文件你的PDA系統(tǒng)就要出問(wèn)題,比如asyshell.dll在wince.net4.2里跟在PPC2003里就不一樣,其實(shí)這樣的軟件也可以解決,就是換一個(gè)可以既提供WINCE.NET4.2系統(tǒng)調(diào)用,也可以提供軟件調(diào)用的DLL,不過(guò)弄起來(lái)相當(dāng)麻煩,需要對(duì)wince.net4.2系統(tǒng)很了解然后對(duì)那個(gè)軟件也很了解(我說(shuō)的是代碼層次的了解)才能搞定。

          這些就是這段日子以來(lái)我玩PDA的一點(diǎn)體會(huì),希望能給系統(tǒng)同是WINCE.NET4.X而且苦于該系統(tǒng)軟件稀缺的朋友一點(diǎn)啟發(fā),還有就是感謝HI-PDA的很多高手的文章,讓我節(jié)省了很多時(shí)間,另外,因?yàn)槲覍?duì)PDA還是個(gè)新手,肯定有一些理解和表達(dá)有所差池,希望懂行的朋友能指出我的謬誤,謝謝。

          同時(shí)呼吁大家積極支持國(guó)產(chǎn)PDA?。。『俸?,東集集團(tuán)(www.seuic.com)的PDA還是滿不錯(cuò)的,尤其是那款基于LINUX系統(tǒng)的HAPO200(當(dāng)初就是這款機(jī)型把我?guī)У搅藮|集的網(wǎng)站),以后一定要好好研究一下,東集的售后服務(wù)也挺好,我第一次把系統(tǒng)搞癱瘓時(shí)他們很快幫我重刷了ROM,當(dāng)初在SHARP-SL7500C跟東集的PDA之間最終選擇東集的PDA也有部分原因是為了支持國(guó)產(chǎn)PDA。
          透露一點(diǎn),據(jù)東集的朋友說(shuō),這款基于WINCE.NET4.2的HAP200A跟基于LINUX系統(tǒng)的HAPO200硬件完全一樣,也就是說(shuō)這款PDA既可以刷WINCE.NET,也可以刷LINUX(這個(gè)版本的LINUX可是東集集團(tuán)一手開發(fā)的,在原來(lái)的基礎(chǔ)上增加了很多中文相關(guān)的東東,實(shí)用性穩(wěn)定性都是一流,我估計(jì)SHARP-SL7500C的很多軟件也可以在這款機(jī)器上運(yùn)行,因?yàn)樗鼈兪褂玫?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/嵌入式">嵌入式LINUX不僅kernal版本號(hào)一樣,而且就連GUI也都是用的QT),不過(guò)東集現(xiàn)在還沒有提供刷LINUX的工具跟LINUX的ROM,不知道他們將來(lái)是否提供,如果提供的話,這款機(jī)器可是有很高DIY價(jià)值的。

          后面會(huì)附上一些需要的軟件,省得大家再花時(shí)間四處搜索了

          注意事項(xiàng):在拷貝你的PDA里的系統(tǒng)DLL文件時(shí),如果有同名文件提醒是否替換時(shí)請(qǐng)謹(jǐn)慎操作,很可能會(huì)引起重啟.


          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();