2020的產(chǎn)品新聞

2020

2020年工控新聞

當(dāng)前位置:首頁>新聞>2020

工控機上位機開發(fā):wince和winxp程序開發(fā)有很大的差異性

工控機事業(yè)部 2020-12-13

工控機上位機開發(fā):wince和winxp程序開發(fā)有很大的差異性
 
很多用戶搞不清楚wince工控機和windows工控機在程序開發(fā)的區(qū)別,以為兩種操作系統(tǒng)的程序可以相互兼容,其實是不可能,兩種工控機系統(tǒng)的程序運行機制有很大的差異性。
    對于近年才接觸WinCE開發(fā)的朋友來說,見到EVB這個字眼可能會覺得非常陌生。想當(dāng)年WinCE 3.0的時代,EVB可是和EVC是WinCE開發(fā)的兩把利器。只不過后來估計微軟看著EVB不順眼,在4.0開始,就將EVB橫掃出門,只剩下EVC一枝獨秀。只不過EVC王者獨尊的態(tài)勢注定不可能太久,從5.0開始,VS就已經(jīng)開始支持其開發(fā)。后輩VS支持STL開發(fā)的完善程度,編譯器的效率等等,都是EVC所無法企及的。隨著時間的推移,EVC注定也只能退出歷史的舞臺。只不過,EVC4.0很可能和接下來要說的VC6.0成為一個永恒的經(jīng)典。
 
 
 
    轉(zhuǎn)移到桌面Windows的開發(fā),大家最熟悉不過的就是vc6.0。這款軟件,堪稱是經(jīng)典,無論是執(zhí)行速度,還是編譯速度,在當(dāng)年都是無望而不可及的高峰。即使是現(xiàn)在,很多人對此還津津樂道,特別是很多高校,教導(dǎo)C++采用的還是VC6.0,可見其影響力。只不過,技術(shù)是不停地發(fā)展的,微軟注定不會讓VC6.0舒服,后續(xù)又逐漸推出VS系列。
 
 
 
    我一直認為,VS2005是微軟開發(fā)工具的一個里程碑,它結(jié)束了之前微軟旗下編程工具的混亂局面,全部統(tǒng)一到vs這個大家族里面:
 
 
 
  用EVC開發(fā)WinCE應(yīng)用程序?NO,NO,請使用vs2005!
  
  用PB編譯WinCE系統(tǒng)?NO,NO,請使用vs2005!
  
  用VC開發(fā)WinXP程序?NO,NO,請使用vs2005!
  
  你所能想到的開發(fā)方式,vs2005都可以幫你解決。更為有意思的是,在此之前,同一套代碼,分別適用于WinCE和WinXP,那么你就必須為這兩個系統(tǒng)建立不同的工程:一個是給EVC用的,另一個是給VC。但如果你使用VS2005之后,那么一切都不同了。雖然一開始會強制讓你選擇開發(fā)的平臺,但實際上生成工程之后,你可以手動添加不同的SDK。換句話來說,你只要簡單地在vs2005上選擇不同的SDK,就可以編譯不同平臺的程序。相對以前,這無疑是一個巨大的進步。
  
  扯談完開發(fā)工具,我們再來看看調(diào)試的方式。在WinXP里,調(diào)試的環(huán)境和開發(fā)的環(huán)境是共用的。這個比較好理解,不就是本機編譯的程序會直接在本機上運行嘛。只不過有一些危險的操作,估計沒幾個人會調(diào)試,比如說軟件上有全盤格式化功能,我想沒幾個人會在本機上調(diào)試吧?WinCE就安全點,反正直接在WinXP上點擊WinCE程序會給你彈出一個錯誤的運行框。所以,要調(diào)試WinCE程序,你只有兩種途徑,一個是使用模擬器,另一個就是通過ActiveSync連接到開發(fā)板。而這兩種方式,最好的自然是后者,畢竟模擬器,顧名思義,就是"模擬",很多實際上會發(fā)生的問題很可能會被屏蔽。只不過,如果是開發(fā)消費類電子,在還沒有板子回來前,模擬器確實是唯一的選擇。
  
  具體到API函數(shù)代碼方面,也確實有意思。WinXP有的函數(shù),WinCE不一定具備;同樣,WinCE隨處可見的,也不一定在WinXP上有其身影;即使是兩者都有的,其參數(shù)也不一定相同。
  
  不信?你在WinCE下給我找找SystemTimeToTzSpecificLocalTime,然后在WinXP下也搜搜SetEventData,最后比較一下ReadFile最后一個形參試試?如果你不需要代碼橫跨兩個平臺,那么這些都不是問題;如果你需要互相移植,那么前面的兩個問題也不是什么大問題,大不了自己重新寫一個同名函數(shù)即可。最郁悶的是最后一個,兩個系統(tǒng)都有相應(yīng)的函數(shù),只是形參不同。像ReadFile這樣算是好的,最后一個形參WinCE明令指出必須設(shè)置為NULL,你將該代碼原封不動移植到WinXP下,也能正常工作。但有的函數(shù)就沒有那么好的運氣了,比如說CreateProcess的倒數(shù)第二個形參psiStartInfo,在WinCE下必須設(shè)置NULL,但如果你還是不加更改照搬到WinXP,那么迎接你的將是程序的崩潰--因為在WinXP下,該形參不能為NULL!
  
  不僅API函數(shù)需要留意,其實消息處理機制也必須注意。因為WinCE是一個精簡的系統(tǒng),實時性要求高,所以在WinCE下面消息處理機制有點點和WinXP不同。很可能在WinXP下跑得很正常的代碼,在WinCE下會啞火;同樣的道理,能在WinCE完美表現(xiàn)的代碼,也許在WinXP下是一團糟。如果遇到這種情況,不妨從消息處理函數(shù)入手,說不定能有意外的驚喜。



TAGS: 工控機

相關(guān)推薦

  • 國內(nèi)最好的工控機品牌之一

    國內(nèi)最好的工控機品牌之一

    國內(nèi)最好的工控機品牌之一,競翀科技工控機是一種非常專業(yè)的計算機設(shè)備,比較規(guī)范的叫法是工業(yè)計算機,以區(qū)別于一般消費級計算機和偽工業(yè)級計算機。工控機市場的需求非常多樣化,同一項目的需求量又比較少,不太合適

    2020-12-22

  • 選擇光電隔離串口工控機防止PLC通訊故障

    選擇光電隔離串口工控機防止PLC通訊故障

    上海競翀為智能交通、電力和數(shù)控領(lǐng)域等電磁環(huán)境復(fù)雜的應(yīng)用場所專門研制幾個系列無風(fēng)扇工控機,通訊串口RS232,422,485具備光電隔離電氣保護功能,防止通訊干擾中斷,數(shù)據(jù)丟失,同時保護工控機橋芯片遭受

    2020-12-18

  • 工業(yè)計算機win7系統(tǒng)如何關(guān)閉非正常關(guān)機造成的啟動修復(fù)

    工業(yè)計算機win7系統(tǒng)如何關(guān)閉非正常關(guān)機造成的啟動修復(fù)

    工業(yè)控制計算機使用場合和環(huán)境復(fù)雜,電源故障,停電,扯線,外部設(shè)備故障引發(fā)工控機異常斷電,關(guān)機,重啟等事件,都會導(dǎo)致windows7操作系統(tǒng)出現(xiàn)啟動修改選項,如果沒有人為干預(yù),操作系統(tǒng)會反復(fù)這個修復(fù)動作

    2020-12-18

  • 上海競翀科技嵌入式工控機的散熱方式

    上海競翀科技嵌入式工控機的散熱方式

    工業(yè)控制計算機(這里包括平時提及到的工業(yè)電腦,產(chǎn)業(yè)電腦,行業(yè)電腦,工業(yè)PC,工業(yè)微機,工控機,IPC,無風(fēng)扇工控機,嵌入式工控機,工業(yè)平板電腦,工控一體機,一體機工控機等產(chǎn)品)在運行時會產(chǎn)生熱量,長時

    2020-12-15

  • 工控機上位機開發(fā):wince和winxp程序開發(fā)有很大的差異性

    工控機上位機開發(fā):wince和winxp程序開發(fā)有很大的差異性

    工控機上位機開發(fā):wince和winxp程序開發(fā)有很大的差異性很多用戶搞不清楚wince工控機和windows工控機在程序開發(fā)的區(qū)別,以為兩種操作系統(tǒng)的程序可以相互兼容,其實是不可能,兩種工控機系統(tǒng)的

    2020-12-13

  • 工控機千兆網(wǎng)卡和萬兆網(wǎng)卡有什么區(qū)別

    工控機千兆網(wǎng)卡和萬兆網(wǎng)卡有什么區(qū)別

    工控機千兆網(wǎng)卡和萬兆網(wǎng)卡有什么區(qū)別工控機網(wǎng)卡是一種專門用于網(wǎng)絡(luò)中的工控機上的網(wǎng)卡,是服務(wù)器或者工作站連接交換機的關(guān)鍵設(shè)備,工控機網(wǎng)卡會根據(jù)自帶的控制芯片來幫助工控機的CPU處理數(shù)據(jù),具有強大的功能。服

    2020-12-09