王建龍 河北諾亞人力資源開發(fā)有限公司
基于C++語言的跨平臺軟件開發(fā)的設(shè)計
王建龍 河北諾亞人力資源開發(fā)有限公司
在如今的計算機(jī)語言里面,使用頻率和次數(shù)比較多的是C++語言,因為它具有比較高的編程速度,不僅這樣它還有一些獨特的地方。但是,通過一些實際的編程過程,我們可以知道C++語言還是存在一些缺陷的,它會給一些跨平臺軟件的開發(fā)帶來很大的困難。經(jīng)過大量的軟件編程實踐,文章簡介了跨平臺的概念、開發(fā)環(huán)境和開發(fā)設(shè)計的思路。
C++ 跨平臺 軟件編程
使用C++語言進(jìn)行跨平臺的開發(fā),目的是把應(yīng)用程序的代碼處理成能夠在已有的平臺下使用和能執(zhí)行文件。但是在其他平臺中,處理后的文件不可以被使用,特別在Windows與Unix平臺下更不能使用。所以,要解決和處理這個缺陷,就要將源程序的代碼翻譯成在各個平臺下都能使用的文件。通過幾十年的發(fā)展和演變,C++語言基本上能夠在所有的平臺下進(jìn)行工作,但是在不同平臺下的編譯也會不同,也造成了語言之間的不同。同樣的,設(shè)計一個新產(chǎn)品就要對操作系統(tǒng)的函數(shù)進(jìn)行使用和調(diào)用。因此,要避免這種區(qū)別就要在代碼中使用條件選擇編譯、進(jìn)行工程模式編譯或可以使用預(yù)編譯。各種平臺使用的程序編譯手段也是不一樣的。要使在不同平臺下進(jìn)行程序編譯時出現(xiàn)最小的差別就要手動對編譯條件的設(shè)置控制或管理。使用腳本文件和環(huán)境變量,還可以使用第三方軟件對代碼進(jìn)行動態(tài)編譯,這樣就能使跨平臺開發(fā)的難度簡化。
在軟件開發(fā)中有個很重要的概念就是跨平臺,跨平臺和操作系統(tǒng)無關(guān)也與硬件環(huán)境不相關(guān)聯(lián)。如果一個應(yīng)用程序是在操作系統(tǒng)下開發(fā)和設(shè)計的,那把它放在其他操作系統(tǒng)中也能使用。隨著軟件工程的發(fā)展對跨平臺開發(fā)的需求也在不斷的增加,所以要開發(fā)出能夠在各種各樣的平臺下都能使用的應(yīng)用程序,就能為應(yīng)用程序創(chuàng)造很大的市場份額。
軟件編輯器、程序編譯器和程序調(diào)試器是構(gòu)成開發(fā)環(huán)境的三個組成部分。Sandbox是進(jìn)行代碼編譯和調(diào)試的軟件,其內(nèi)部含有各種平臺下需要的不同種類的依賴庫和代碼庫。在程序的開發(fā)中它還含有各種源代碼。它的配置對多元化的平臺的要求也是很高的,通常講,C/C++語言的軟件開發(fā)和編譯要在各個平臺上能夠使用,還要注意以下問題。
1)最終結(jié)果的質(zhì)量:Sandbox中所選擇的工具是否能夠產(chǎn)生最好的代碼。是否能夠產(chǎn)生最簡潔,最友好的配置文件以及在捕捉錯誤和調(diào)試時是否能夠提供足夠的支持。
2)Sandbox中含有的工具是否可以使應(yīng)用程序與多元性的目標(biāo)平臺進(jìn)行合理的整合。
3)創(chuàng)立的Sandbox是不是可以使管理更加的簡單,即能否在不同的平臺進(jìn)行變換時出現(xiàn)最小差異的文件。
不管我們依據(jù)哪一種形式的方法進(jìn)行編程,一般要選擇比較老的程序庫或文件。比較老的程序庫里面的一些原有程序和公式都是很規(guī)范的和標(biāo)準(zhǔn)的,不像現(xiàn)在的一些新的程序庫一樣比較的雜亂無章。有非常普遍出現(xiàn)的故障在跨平臺上產(chǎn)生,有時在獲得支持后,還是會出現(xiàn)沒有定義精確的事故。
在實際的開發(fā)過程中,每當(dāng)編寫一個旨在多種環(huán)境中運行的可移植代碼庫時,項目的開發(fā)就會不可避免的面臨一個問題,即怎樣處理在一個平臺上有而在另外一個平臺上沒有的特性。
要達(dá)到使編寫的程序代碼簡潔、易懂的目的,要使軟件的結(jié)構(gòu)更加的合理,這就要求先把與平臺相關(guān)聯(lián)的文件和數(shù)據(jù)庫分割開來,再把在開發(fā)期間要用的腳本文件進(jìn)行編譯,再合理的分到各個部位。在使用應(yīng)用程序時,要把配置文件里的配置選項調(diào)出來進(jìn)行讀取里面的程序。因此,當(dāng)跨平臺軟件開發(fā)時,要使與平臺相關(guān)聯(lián)的文件全部進(jìn)行分離,要利用特殊的手段來實現(xiàn)該功能。
如何使用安全和可靠的對數(shù)據(jù)進(jìn)行存儲和加載是跨平臺要解決的核心問題。利用軟件的“fwrite”或“fread”指令可以對每個編譯器和單一目標(biāo)平臺處理。若果是在跨平臺的操作環(huán)境中,利用這種方法對數(shù)據(jù)進(jìn)行存儲和加載就不能做到平臺間的獨立性。如果要利用跨平臺對數(shù)據(jù)存儲到目標(biāo)文件外,不同平臺間是有差異的,這樣也會引起結(jié)果的多樣性。
實現(xiàn)抽象是處理跨平臺中應(yīng)用程序能被移植難題的有效方式。通過這種方式我們就能不利用一般的結(jié)構(gòu)體系而進(jìn)行單獨的軟件開發(fā),同時還能夠使編出的程序更加的獨立化和簡潔化。當(dāng)對跨平臺進(jìn)行開發(fā)時,會有非常多的函數(shù)要進(jìn)行利用,但是開發(fā)時不用編譯所有的函數(shù),通常使用的方法是封裝,這些就是實現(xiàn)抽象的過程。
本文主要介紹了跨平臺的定義和進(jìn)行跨平臺設(shè)計所需要的環(huán)境以及怎樣進(jìn)行跨平臺設(shè)計。在進(jìn)行跨平臺設(shè)計的過程中我們結(jié)合了其他軟件設(shè)計的一些思路和方法,經(jīng)過大量的軟件設(shè)計實踐,得出了一套跨平臺設(shè)計的方法和手段。與此同時我們還要在開發(fā)的軟件中加入更多的功能和操作容積。對跨平臺進(jìn)行設(shè)計而言,經(jīng)驗是很重要的,經(jīng)驗越豐富的設(shè)計工程師設(shè)計的軟件的功能會越好一些,沒有經(jīng)驗的工程師,在首次設(shè)計時很難利用跨平臺設(shè)計一個非常完美的應(yīng)用軟件。所以,本文介紹了跨平臺軟件設(shè)計的一些技術(shù),希望可以為跨平臺的開發(fā)的設(shè)計工程師提供一些幫助。
[1]夏雪挺.跨平臺數(shù)據(jù)庫備份的設(shè)計與實現(xiàn)[D].西南交通大學(xué),2006.
[2]孫波.跨平臺工具軟件在控制軟件開發(fā)中的應(yīng)用[D].上海交通大學(xué),2009.