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