• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于C++語言的跨平臺(tái)軟件開發(fā)的設(shè)計(jì)

      2014-04-21 15:40楊鵬
      新媒體研究 2014年4期
      關(guān)鍵詞:跨平臺(tái)代碼應(yīng)用程序

      楊鵬

      摘 要 在如今的計(jì)算機(jī)語言里面,使用頻率和次數(shù)比較多的是C++語言,因?yàn)樗哂斜容^高的編程速度,不僅這樣它還有一些獨(dú)特的地方。但是,通過一些實(shí)際的編程過程,我們可以知道C++語言還是存在一些缺陷的,它會(huì)給一些跨平臺(tái)軟件的開發(fā)帶來很大的困難。經(jīng)過大量的軟件編程實(shí)踐,文章簡介了跨平臺(tái)的概念、開發(fā)環(huán)境和開發(fā)設(shè)計(jì)的思路。關(guān)鍵詞 C++;跨平臺(tái)軟件

      中圖分類號:TP317 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:1671-7597(2014)04-0019-01

      使用C++語言進(jìn)行跨平臺(tái)的開發(fā),目的是把應(yīng)用程序的代碼處理成能夠在已有的平臺(tái)下使用和能執(zhí)行文件。但是在其他平臺(tái)中,處理后的文件不可以被使用,特別在Windows與Unix平臺(tái)下更不能使用。所以,要解決和處理這個(gè)缺陷,就要將源程序的代碼翻譯成在各個(gè)平臺(tái)下都能使用的文件。通過幾十年的發(fā)展和演變,C++語言基本上能夠在所有的平臺(tái)下進(jìn)行工作,但是在不同平臺(tái)下的編譯也會(huì)不同,也造成了語言之間的不同。同樣的,設(shè)計(jì)一個(gè)新產(chǎn)品就要對操作系統(tǒng)的函數(shù)進(jìn)行使用和調(diào)用。因此,要避免這種區(qū)別就要在代碼中使用條件選擇編譯、進(jìn)行工程模式編譯或可以使用預(yù)編譯。各種平臺(tái)使用的程序編譯手段也是不一樣的。要使在不同平臺(tái)下進(jìn)行程序編譯時(shí)出現(xiàn)最小的差別就要手動(dòng)對編譯條件的設(shè)置控制或管理。使用腳本文件和環(huán)境變量,還可以使用第三方軟件對代碼進(jìn)行動(dòng)態(tài)編譯,這樣就能使跨平臺(tái)開發(fā)的難度簡化。

      1 跨平臺(tái)的概念

      在軟件開發(fā)中有個(gè)很重要的概念就是跨平臺(tái),跨平臺(tái)和操作系統(tǒng)無關(guān)也與硬件環(huán)境不相關(guān)聯(lián)。如果一個(gè)應(yīng)用程序是在操作系統(tǒng)下開發(fā)和設(shè)計(jì)的,那把它放在其他操作系統(tǒng)中也能使用。隨著軟件工程的發(fā)展對跨平臺(tái)開發(fā)的需求也在不斷的增加,所以要開發(fā)出能夠在各種各樣的平臺(tái)下都能使用的應(yīng)用程序,就能為應(yīng)用程序創(chuàng)造很大的市場份額。

      2 跨平臺(tái)的開發(fā)所需要的環(huán)境

      軟件編輯器、程序編譯器和程序調(diào)試器是構(gòu)成開發(fā)環(huán)境的三個(gè)組成部分。Sandbox是進(jìn)行代碼編譯和調(diào)試的軟件,其內(nèi)部含有各種平臺(tái)下需要的不同種類的依賴庫和代碼庫。在程序的開發(fā)中它還含有各種源代碼。它的配置對多元化的平臺(tái)的要求也是很高的,通常講,C/C++語言的軟件開發(fā)和編譯要在各個(gè)平臺(tái)上能夠使用,還要注意以下問題。

      1)最終結(jié)果的質(zhì)量:Sandbox中所選擇的工具是否能夠產(chǎn)生最好的代碼。是否能夠產(chǎn)生最簡潔,最友好的配置文件以及在捕捉錯(cuò)誤和調(diào)試時(shí)是否能夠提供足夠的支持。

      2)Sandbox中含有的工具是否可以使應(yīng)用程序與多元性的目標(biāo)平臺(tái)進(jìn)行合理的整合。

      3)創(chuàng)立的Sandbox是不是可以使管理更加的簡單,即能否在不同的平臺(tái)進(jìn)行變換時(shí)出現(xiàn)最小差異的文件。

      對跨平臺(tái)開發(fā)來說實(shí)現(xiàn)抽象是很重要的一個(gè)因素,但是利用與平臺(tái)相關(guān)的工具包也需要使用相適應(yīng)的工具。這些開發(fā)工具往往并不是統(tǒng)一的,比如Linux上流行的GCC在Windows下的使用并不如VisualStudio.nct中的C++。要達(dá)到這個(gè)目的,就要把用抽象以及相關(guān)的設(shè)計(jì)使用新的開發(fā)手段進(jìn)行開發(fā),實(shí)現(xiàn)在不同的平臺(tái)下都能進(jìn)行編譯。

      3 C++語言的跨平臺(tái)軟件開發(fā)的設(shè)計(jì)

      3.1 避免語言的擴(kuò)展特性

      不管我們依據(jù)哪一種形式的方法進(jìn)行編程,一般要選擇比較老的程序庫或文件。比較老的程序庫里面的一些原有程序和公式都是很規(guī)范的和標(biāo)準(zhǔn)的,不像現(xiàn)在的一些新的程序庫一樣比較的雜亂無章。有非常普遍出現(xiàn)的故障在跨平臺(tái)上產(chǎn)生,有時(shí)在獲得支持后,還是會(huì)出現(xiàn)沒有定義精確的事故??缙脚_(tái)開發(fā)是對異常靈敏度要求很高的,無限度的利用新特性,就會(huì)使軟件很難排除異常情況。所以,在跨平臺(tái)開發(fā)時(shí)要調(diào)用C++的標(biāo)準(zhǔn)函數(shù)模型,這樣就會(huì)使已開發(fā)的軟件和產(chǎn)品的穩(wěn)定性更加強(qiáng)。

      3.2 實(shí)現(xiàn)動(dòng)態(tài)處理

      在實(shí)際的開發(fā)過程中,每當(dāng)編寫一個(gè)旨在多種環(huán)境中運(yùn)行的可移植代碼庫時(shí),項(xiàng)目的開發(fā)就會(huì)不可避免的面臨一個(gè)問題,即怎樣處理在一個(gè)平臺(tái)上有而在另外一個(gè)平臺(tái)上沒有的特性。

      3.3 使用腳本文件進(jìn)行管理

      要達(dá)到使編寫的程序代碼簡潔、易懂的目的,要使軟件的結(jié)構(gòu)更加的合理,這就要求先把與平臺(tái)相關(guān)聯(lián)的文件和數(shù)據(jù)庫分割開來,再把在開發(fā)期間要用的腳本文件進(jìn)行編譯,再合理的分到各個(gè)部位。在使用應(yīng)用程序時(shí),要把配置文件里的配置選項(xiàng)調(diào)出來進(jìn)行讀取里面的程序。因此,當(dāng)跨平臺(tái)軟件開發(fā)時(shí),要使與平臺(tái)相關(guān)聯(lián)的文件全部進(jìn)行分離,要利用特殊的手段來實(shí)現(xiàn)該功能。

      3.4 使用安全的數(shù)據(jù)串行化

      如何使用安全和可靠的對數(shù)據(jù)進(jìn)行存儲(chǔ)和加載是跨平臺(tái)要解決的核心問題。利用軟件的“fwrite”或“fread”指令可以對每個(gè)編譯器和單一目標(biāo)平臺(tái)處理。若果是在跨平臺(tái)的操作環(huán)境中,利用這種方法對數(shù)據(jù)進(jìn)行存儲(chǔ)和加載就不能做到平臺(tái)間的獨(dú)立性。如果要利用跨平臺(tái)對數(shù)據(jù)存儲(chǔ)到目標(biāo)文件外,不同平臺(tái)間是有差異的,這樣也會(huì)引起結(jié)果的多樣性。

      3.5 跨平臺(tái)開發(fā)中的編譯與測試

      當(dāng)進(jìn)行跨平臺(tái)軟件開發(fā)時(shí)會(huì)與修改和編寫的很多代碼有關(guān)聯(lián),相關(guān)聯(lián)的代碼會(huì)在很長的時(shí)期內(nèi)不能在另外的平臺(tái)檢測,也會(huì)造成bug的潛藏時(shí)間增長。所以,要在多個(gè)不同的平臺(tái)下進(jìn)行測試,這樣就能及時(shí)發(fā)現(xiàn)bug。

      3.6 實(shí)現(xiàn)抽象

      實(shí)現(xiàn)抽象是處理跨平臺(tái)中應(yīng)用程序能被移植難題的有效方式。通過這種方式我們就能不利用一般的結(jié)構(gòu)體系而進(jìn)行單獨(dú)的軟件開發(fā),同時(shí)還能夠使編出的程序更加的獨(dú)立化和簡潔化。當(dāng)對跨平臺(tái)進(jìn)行開發(fā)時(shí),會(huì)有非常多的函數(shù)要進(jìn)行利用,但是開發(fā)時(shí)不用編譯所有的函數(shù),通常使用的方法是封裝,這些就是實(shí)現(xiàn)抽象的過程。封裝的方法并不是在任何情況下都是適用的,當(dāng)遇到一些特殊的情況時(shí),我們要使用其他的方式來進(jìn)行程序的調(diào)用,我們提前可以將編寫好的功能程序存放到程序空中,并以該功能命名,當(dāng)我們使用該程序或公式的時(shí)候,可以直接調(diào)用該功能的程序,便可以實(shí)現(xiàn)該功能。不管選用哪一種方式無非是對任意接口函數(shù)與平臺(tái)中的聯(lián)系進(jìn)行隱藏。

      4 結(jié)束語

      本文主要介紹了跨平臺(tái)的定義和進(jìn)行跨平臺(tái)設(shè)計(jì)所需要的環(huán)境以及怎樣進(jìn)行跨平臺(tái)設(shè)計(jì)。在進(jìn)行跨平臺(tái)設(shè)計(jì)的過程中我們結(jié)合了其他軟件設(shè)計(jì)的一些思路和方法,經(jīng)過大量的軟件設(shè)計(jì)實(shí)踐,得出了一套跨平臺(tái)設(shè)計(jì)的方法和手段。與此同時(shí)我們還要在開發(fā)的軟件中加入更多的功能和操作容積。對跨平臺(tái)進(jìn)行設(shè)計(jì)而言,經(jīng)驗(yàn)是很重要的,經(jīng)驗(yàn)越豐富的設(shè)計(jì)工程師設(shè)計(jì)的軟件的功能會(huì)越好一些,沒有經(jīng)驗(yàn)的工程師,在首次設(shè)計(jì)時(shí)很難利用跨平臺(tái)設(shè)計(jì)一個(gè)非常完美的應(yīng)用軟件。所以,本文介紹了跨平臺(tái)軟件設(shè)計(jì)的一些技術(shù),希望可以為跨平臺(tái)的開發(fā)的設(shè)計(jì)工程師提供一些幫助。

      參考文獻(xiàn)

      [1]夏雪挺.跨平臺(tái)數(shù)據(jù)庫備份的設(shè)計(jì)與實(shí)現(xiàn)[D].西南交通大學(xué),2006.

      [2]孫波.跨平臺(tái)工具軟件在控制軟件開發(fā)中的應(yīng)用[D].上海交通大學(xué),2009.endprint

      猜你喜歡
      跨平臺(tái)代碼應(yīng)用程序
      一款游戲怎么掙到全平臺(tái)的錢?
      潛力雙跨平臺(tái):進(jìn)階:誰將跨入下一個(gè)“十大”?
      刪除Win10中自帶的應(yīng)用程序
      谷歌禁止加密貨幣應(yīng)用程序
      基于C++語言的跨平臺(tái)軟件開發(fā)
      神秘的代碼
      一周機(jī)構(gòu)凈增(減)倉股前20名
      重要股東二級市場增、減持明細(xì)
      一種虛擬現(xiàn)實(shí)應(yīng)用程序跨平臺(tái)方法的研究
      近期連續(xù)上漲7天以上的股
      高台县| 哈巴河县| 汾阳市| 锡林郭勒盟| 通道| 正安县| 辛集市| 崇阳县| 娄烦县| 应城市| 伊吾县| 巴彦淖尔市| 苍梧县| 平利县| 玛沁县| 翁牛特旗| 山东省| 朔州市| 项城市| 荥经县| 高淳县| 盱眙县| 许昌市| 昌乐县| 涟源市| 商丘市| 济源市| 鄄城县| 蕉岭县| 衡山县| 霍山县| 平定县| 永济市| 昌宁县| 蒙山县| 游戏| 蓬安县| 凤凰县| 海兴县| 安顺市| 栖霞市|