999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

艦船電子對抗系統顯控軟件的跨平臺開發

2011-08-10 06:16:00吳小強
艦船電子對抗 2011年6期
關鍵詞:跨平臺程序用戶

吳小強

(海軍駐連云港716所軍事代表室,連云港222006)

0 引 言

艦船電子對抗系統顯控軟件是艦船電子對抗系統的人機交互界面,也是艦船電子對抗系統的控制樞紐與靈魂,其性能好壞在很大程度上決定了艦船電子對抗系統性能的好壞。它不但要完成自身的顯示控制任務,同時還要適應用戶所提出的跨平臺要求,即用戶希望顯控軟件能安裝在用戶所能提供的各種操作系統上,如微軟的 Ms Windows NT/2000/XP/CE系列,風河的 VxWorks系列,Sun的Solaris系列,SCO的Unix系列以及開源的Linux操作系統上。基于一個平臺開發一個性能良好的艦船電子對抗系統顯控軟件已屬不易,要基于多個平臺開發更是難以想象,需要花費更多的人力、財力、物力與時間資源,對于開發者來說,是難以承受的。唯一的解決辦法是跨平臺開發。最好能做到像Java語言那樣,“Write once,run anywhere”(編寫1次、到處運行),那是否選擇Java來開發就解決了問題呢?不是,因為Java實在太慢了,艦船電子對抗系統顯控軟件要求實時和快速地對任何外界輸入做出反應,故只能選擇C/C++,那么用C/C++如何實現跨平臺開發呢?下面分析艦船電子對抗系統顯控軟件的體系結構,從中找出辦法。

1 艦船電子對抗系統顯控軟件跨平臺分析

1.1 艦船電子對抗系統顯控軟件體系結構

如圖1所示,艦船電子對抗系統顯控軟件從層次的角度來看,可分為3層。

圖1中人機界面包括用戶圖形界面(GUI)及顯控臺上各種開關、按鈕的控制;應用邏輯即對任何外界輸入做出反應所進行的計算及算法;I/O及數據庫聯接即各種網絡、并口、串口等I/O口連接程序及與應用數據庫的連接程序。

圖1 艦船電子對抗系統顯控軟件體系結構圖

1.2 艦船電子對抗系統顯控軟件跨平臺分析

1.2.1 人機界面

人機界面主要是用戶圖形界面,是實現跨平臺開發的主要障礙,因為它跟操作系統密切相關,且開發的工作量巨大,如果用戶圖形界面實現了跨平臺開發,那么顯控軟件的跨平臺開發就實現了90%。

上面提到的操作系統從用戶圖形界面實現的角度可將它們分作兩類:Windows系列及類Unix系列(除 Windows系列以外都是,包括VxWorks)。Windows系列的用戶圖形界面是其自身所附帶的,而類Unix系列均是X Window,雖然它們表現各異,實現方式不同,本質還是X Window。

所以,要開發顯控軟件人機界面程序只須考慮兩種平臺:Windows和X Window。1.2.2 應用邏輯

應用邏輯與操作系統無關,只需開發時使用標準的C/C++語言即可實現跨平臺。1.2.3 I/O及數據庫聯接

I/O及數據庫聯接中除并口、串口等I/O口與操作系統密切相關外,網絡、及與應用數據庫的連接具有工業標準,網絡可用BSD的套接字,應用數據庫的連接可用ODBC,可實現跨平臺。因此,這部分跨平臺開發的工作量并不大。

綜上所述,顯控軟件跨平臺開發的工作量主要在用戶圖形界面上,用戶圖形界面實現了跨平臺開發,任務就基本完成了。

2 用戶圖形界面的跨平臺開發

要實現用戶圖形界面的跨平臺開發,關鍵是尋找一個跨平臺的GUI開發工具包,事實上wxWidgets就是這樣一個開發工具包。

2.1 wxWidgets簡介[1]

wxWidgets原來叫做wxWindows,后為了避開和微軟的“Windows”之爭,改名為wxWidgets。

wxWidgets項目最初由當時工作于愛丁堡大學的人工智能應用程序研究所的Julian Smart在1992年發起,最初它只面向XView and MFC 1.0。后來,XView發展成Motif,wxWidgets也就相應地面向 Motif和 MFC來開發。1995年,Markus Holzem加入了兼容Xt的功能。1999年,基于Windows和GTK+開發的組件也融入到wxWidgets中。如今,wxWidgets幾乎支持所有常見的開發平臺和圖形庫。

wxWidgets是一個C++編寫的通用的、試圖跨平臺的GUI開發框架。從其體系結構可以看出,wxWidgets事實上只是一個簡單的 Wrapper,封裝了底層的一些圖形庫,這樣的好處就是對跨平臺的支持,使得開發的程序能完全做到與平臺無關。

表1表明了wxWidgets和下層操作系統的聯系,從表1可清晰看出wxWidgets的設計思想和開發思路。從wxWidgets需要實現的目的和意圖也可以看出,它將是開發跨平臺程序的一大利器。

表1 wxWidgets和下層操作系統的聯系

比起其他的跨平臺gui庫,wxWwidgets的特點和優點如下:

(1)是免費與開源的

wxWidgets的一大吸引力是它的licence類型是屬于 L-GPL (Library General Public Licence)的,也就是說,使用它開發的軟件并不要求一定得公開源碼。這樣,無論是免費軟件的開發者、GPL類型的軟件開發者,還是純粹商業軟件開發者都可以免費使用這個軟件包。

(2)是跨平臺的GUI庫,支持的操作系統很全面,甚至支持PDA

它雖然不像Java那樣是“全面”的,而僅僅是GUI庫,但GUI是計算機編程中最為麻煩、耗費時間、容易出現的部分,特別當你想要自己的軟件運行在多個操作系統上的時候,開發和維護的難度令人難以想象。如果解決了GUI的問題,基本上就解決了C++的“跨平臺”問題——至少不用為每種平臺都維護1份源代碼了。

雖然Java可以實現跨平臺的GUI程序,但本質上并不是Java語言跨平臺,而是Java虛擬機跨平臺,換句話說Java并不是Native Code,它是介于編譯語言和腳本語言之間的一種特殊語言,編譯期只能完成到Code for Java VM的轉換,而真正被編譯成bytecode是在運行期完成的(腳本語言的特性),這意味著Java程序第1次啟動時需要較長的時間去加載,雖然還有類似GJC的Java Compilers可以一次到位,但大都不能完全并很好地支持Java特性。而wxWidgets被直接編譯成機器碼,從而獲得速度優勢。

開發者只需要用自己使用的系統平臺的編譯器編譯源程序,并鏈接上相應的庫文件,生成的程序代碼即具有該平臺的外觀和界面。

(3)xWidgets提供的GUI是大量使用宏的,這就意味著它是在盡可能使用目標系統native的GUI樣式

這表示如果1個程序是在Windows下編譯的,將有典型的 Windows程序的外觀與行為,當它在Linux下編譯時將擁有Linux程序的外觀與行為。

(4)支持的編譯器也很多,如:

Visual C++1.5,4.0,5.0,6.0,.net,2005

Borland C++4.5,5.0

Borland C++Builder 1.0,3.0

Watcom C++10.6(Win32)

Cygwin

MinGW32

Metrowerks CodeWarrior 4

GNU C/C++

(5)功能強大,體系結構與微軟的MFC類庫相似,容易上手

wxWidgets擁有一個功能比較完善的類庫,wxWidgets的類庫從功能上分為兩部分:用來構造圖形界面的界面構造類庫和完成傳遞信息、保存數據等輔助功能的非界面構造類庫。構造界面的類庫中,有各種控件類,如菜單欄、菜單項、按鈕、文本框等,圖2反映wxWidgets類繼承體系的一部分,該繼承體系與 MFC有一定相似之處,因此,熟悉MFC框架編程的程序員能很快適應wxWidgets的程序開發,同時已有的基于MFC的程序可很方便地移植到wxWidgets。

圖2 wxWidgets類繼承體系(部分)

2.2 基于wxWidgets顯控軟件開發

鑒于wxWidgets優秀的跨平臺性能及易用性,選擇wxWidgets來開發顯控軟件的用戶圖形界面,由于wxWidgets與MFC相似,兩者的類庫絕大部分都是一一對應的,因此,現有的基于MFC的顯控軟件可以很方便地一直到wxWidgets,同時,可在大多數程序員都熟悉的Windows平臺下,甚至在Visual C++6.0的開發環境中來開發基于wxWid-gets的顯控軟件,然后到用戶所要求的平臺環境中重新編譯1次即可,這樣,將大大降低顯控軟件跨平臺開發的難度,減少開發所需的時間及人力。

[1]Julian Smart,Kevin Hock,Stefan Csomor.Cross-platform GUI programming with wxWidgets[M].London:Pearson Education Inc,2006.

猜你喜歡
跨平臺程序用戶
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
主站蜘蛛池模板: 国产香蕉国产精品偷在线观看 | 中文字幕一区二区人妻电影| 国产精品亚洲片在线va| 国语少妇高潮| 五月天综合婷婷| 国模私拍一区二区三区| 青青草国产免费国产| 国产精品第一区在线观看| 亚洲乱码精品久久久久..| 精品国产福利在线| 国产一级片网址| 亚洲一区二区三区麻豆| 欧美性猛交一区二区三区| 丰满人妻久久中文字幕| 亚洲激情区| 亚洲第一av网站| 亚洲日韩精品无码专区97| 思思99热精品在线| 国产精品成人久久| 免费a级毛片视频| 久久综合五月婷婷| 无码一区18禁| 日韩 欧美 小说 综合网 另类| 国产在线观看成人91| 国产高清无码第一十页在线观看| 波多野结衣一二三| 久久香蕉国产线看精品| 欧美午夜理伦三级在线观看| 在线色国产| 国产在线小视频| 国产精品流白浆在线观看| 中文毛片无遮挡播放免费| A级全黄试看30分钟小视频| 3D动漫精品啪啪一区二区下载| 国产人妖视频一区在线观看| 国产成人盗摄精品| 欧美精品色视频| 色综合五月| 国产午夜福利亚洲第一| AV天堂资源福利在线观看| 97国产在线视频| 欧美精品1区| 亚洲高清免费在线观看| 蜜桃视频一区二区| 中文字幕无码av专区久久 | 国产黑丝视频在线观看| 国产精品女熟高潮视频| 国产精品第| 国产91丝袜在线播放动漫 | 国产在线无码av完整版在线观看| 久久夜夜视频| 综合网天天| 色综合日本| 伊人国产无码高清视频| 亚洲bt欧美bt精品| 欧美日韩中文字幕在线| 日本免费a视频| 国产精品无码AⅤ在线观看播放| 国产乱子伦视频三区| 香蕉精品在线| 黄色成年视频| 91精品啪在线观看国产60岁 | 欧美一级特黄aaaaaa在线看片| 中文字幕乱妇无码AV在线| 国产精品手机在线播放| 成人一区在线| 久久黄色小视频| 青青草原国产免费av观看| 精品超清无码视频在线观看| 97se亚洲综合在线天天| 色婷婷综合激情视频免费看| 久热re国产手机在线观看| 国产91小视频| 婷婷六月在线| 国产在线精品美女观看| 日韩 欧美 国产 精品 综合| 国产第一色| 老司国产精品视频| 欧美综合区自拍亚洲综合天堂| 九九热在线视频| 亚洲成在人线av品善网好看| 国产白浆在线观看|