在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【Z站推薦】用 AWTK 編寫(xiě)跨平臺(tái)的代碼

ZLG致遠(yuǎn)電子 ? 2022-09-09 14:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

AWTK 是 ZLG 開(kāi)源的跨平臺(tái) GUI 引擎,本文介紹一下基于 AWTK 開(kāi)發(fā)應(yīng)用程序需要遵循的規(guī)范和方法,以保證應(yīng)用程序也能跨平臺(tái)運(yùn)行。93ae978a-2eec-11ed-9ade-dac502259ad0.jpg ?盡量使用tkc中的函數(shù)tkc 中提供了編碼、時(shí)間、網(wǎng)絡(luò)、串口、線程、互斥和文件系統(tǒng)等各種需要跨平臺(tái)接口的封裝,這些接口在各個(gè)平臺(tái)都有實(shí)現(xiàn)。
93ae978a-2eec-11ed-9ade-dac502259ad0.jpg ?針對(duì)接口編程

如果需要的某個(gè)功能,在各個(gè)平臺(tái)都有不同的實(shí)現(xiàn),先研究各個(gè)平臺(tái)提供的功能,再抽象一個(gè)統(tǒng)一的接口,針對(duì)各個(gè)平臺(tái)實(shí)現(xiàn)一個(gè)適配器。應(yīng)用程序使用統(tǒng)一的接口去訪問(wèn)這些功能,應(yīng)用程序不但能夠跨平臺(tái)運(yùn)行,代碼也更具可讀性。


93ae978a-2eec-11ed-9ade-dac502259ad0.jpg ?指定特定平臺(tái)的庫(kù)、頭文件、預(yù)處理參數(shù)和鏈接參數(shù)helper 提供了一組函數(shù)來(lái)處理不同平臺(tái)的參數(shù)。平臺(tái)名稱的取值有:

“Windows” Windows 平臺(tái);

Linux” Linux 平臺(tái);

“Darwin” MacOS 平臺(tái);

* AndroidIOS 不使用 scons 編譯,故不使用這種方式。

添加平臺(tái)特有的庫(kù);

示例:

helper.add_platform_libs("Windows",["ws2_32"])

helper.add_platform_libs("Linux",["pthread","dl","readline","m"])

helper.add_platform_libs("Darwin",["pthread","dl","readline","m"])

添加平臺(tái)特有的庫(kù)的搜索路徑;

add_platform_libpath(self,platform_name,APP_LIBPATH)

示例:

helper.add_platform_libpath("Linux",["/usr/local/lib"])

* 注意這里的 APP_LIBPATH 是數(shù)組類型。

添加平臺(tái)特有的頭文件的搜索路徑;

add_platform_cpppath(self, platform_name, APP_CPPPATH)

示例:

helper.add_platform_libpath("Linux", ["/usr/local/include"])

* 注意這里的 APP_CPPPATH 是數(shù)組類型。

添加平臺(tái)特有的宏定義預(yù)處理參數(shù);

add_platform_ccflags(self, platform_name, APP_CCFLAGS)

示例:

helper.add_platform_ccflags("Linux", " -DSOME_MACRO=1 ")

* ccflags 是字符串格式不是數(shù)組。

添加平臺(tái)特有的C++文件的預(yù)處理參數(shù);

add_platform_cxxflags(self, platform_name, APP_CXXFLAGS)

示例:

helper.add_platform_cxxflags("Linux", " -DSOME_MACRO=1 ")

* cxxflags 是字符串格式不是數(shù)組。

添加平臺(tái)特有的鏈接參數(shù);

add_platform_linkflags(self,platform_name,APP_LINKFLAGS)

* linkflags 是字符串格式不是數(shù)組。

93c1d94e-2eec-11ed-9ade-dac502259ad0.jpg 區(qū)分各個(gè)平臺(tái)的宏

  • WIN32 或 WINDOWS Windows 平臺(tái);
  • MINGW Windows 平臺(tái)的 MinGW 編譯;
  • LINUX Linux 平臺(tái);
  • MACOS 或__APPLE__ Macos 平臺(tái);
  • ANDROID Android 平臺(tái);
  • IOS iOS 平臺(tái)。

* 這些宏雖然可以區(qū)分不同的平臺(tái),但是如果將這些宏分散在應(yīng)用程序中,代碼將會(huì)變得丑陋難讀。建議先定義接口,在適配器中使用這些宏。示例:

#ifdefANDROID
#include"SDL.h"
#endif/*ANDROID*/

#ifdefined(__APPLE__)||defined(LINUX)
#include
#include
#include
#include
#elifdefined(WIN32)
#include
#include
#include
#include
#include
#include
#defineunlink_unlink
#definerenameMoveFileA
#defineftruncate_chsize
#include"./dirent.inc"
#include"tkc/utf8.h"
#include"tkc/mem.h"
#endif

#ifdefined(__APPLE__)
#include
#endif/*__APPLE__*/

93c1d94e-2eec-11ed-9ade-dac502259ad0.jpg 添加平臺(tái)特有的文件有些文件是特定平臺(tái)才需要的,可以根據(jù)平臺(tái)的名稱,來(lái)決定添加哪些文件。示例:

importplatform;

OS_NAME=platform.system()
ifOS_NAME=='Windows':
sources=Glob('src/windows/*.c')
elifOS_NAME=='Linux':

sources=Glob('src/linux/*.c')

【版權(quán)聲明】本文為ZLG開(kāi)發(fā)者社區(qū)用戶原創(chuàng)內(nèi)容,未經(jīng)授權(quán)不得轉(zhuǎn)載。歡迎更多用戶到社區(qū)交流互動(dòng)、創(chuàng)作博文,一經(jīng)采用,可獲得百元京東E卡。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4899

    瀏覽量

    70617
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ArkUI-X平臺(tái)技術(shù)落地-華為運(yùn)動(dòng)健康(二)

    代碼依賴了鴻蒙Next系統(tǒng)的原生能力,我們將該原生能力包稱為A包;與此同時(shí),我們開(kāi)發(fā)平臺(tái)場(chǎng)景包,為了描述方便,我們將這個(gè)包命名為B包,B包的接口形式與數(shù)據(jù)結(jié)構(gòu)跟A包保持一致,但是B包的內(nèi)部實(shí)現(xiàn)與A包
    發(fā)表于 06-18 23:04

    ArkUI-X平臺(tái)技術(shù)落地-華為運(yùn)動(dòng)健康(一)

    NEXT系統(tǒng)上運(yùn)動(dòng)健康的架構(gòu)設(shè)計(jì)如下: 1.新建獨(dú)立平臺(tái)的Entry模塊,該平臺(tái)Entry模塊用于編譯
    發(fā)表于 06-18 22:53

    ArkUI-X平臺(tái)應(yīng)用改造指南

    ArkUI-X平臺(tái)應(yīng)用改造指南 現(xiàn)狀與訴求 隨著 HarmonyOS Next 5.0 版本正式發(fā)布,眾多開(kāi)發(fā)者基于 ArkTS 語(yǔ)言為 HarmonyOS Next 系統(tǒng)開(kāi)發(fā)了大量應(yīng)用,這極大
    發(fā)表于 06-16 23:05

    ArkUI-X平臺(tái)框架接入指南

    ArkUI平臺(tái)框架(ArkUI-X)進(jìn)一步將ArkUI開(kāi)發(fā)框架擴(kuò)展到了多個(gè)OS平臺(tái):目前支持OpenHarmony、Android、 iOS,后續(xù)會(huì)逐步增加更多平臺(tái)支持。開(kāi)發(fā)者基于一
    發(fā)表于 05-18 18:21

    非科班也能玩轉(zhuǎn)Android應(yīng)用,體驗(yàn)QT平臺(tái)能力-迅為RK3568開(kāi)發(fā)板

    01-平臺(tái)的優(yōu)越性 Qt 是一個(gè)強(qiáng)大的平臺(tái)框架,允許開(kāi)發(fā)者使用相同的代碼庫(kù)來(lái)構(gòu)建多個(gè)平臺(tái)上的
    發(fā)表于 12-10 14:33

    AWTK-WEB 快速入門(mén)(2) - JS 應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開(kāi)發(fā)各種平臺(tái)的應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用JS語(yǔ)言開(kāi)發(fā)AWTK-WEB應(yīng)用程序。AWTKDesigner新
    的頭像 發(fā)表于 12-05 01:04 ?486次閱讀
    <b class='flag-5'>AWTK</b>-WEB 快速入門(mén)(2) - JS 應(yīng)用程序

    AWTK-WEB 快速入門(mén)(1) - C 語(yǔ)言應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開(kāi)發(fā)各種平臺(tái)的應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用C語(yǔ)言開(kāi)發(fā)AWTK-WEB應(yīng)用程序。AWTKDesigner新建
    的頭像 發(fā)表于 11-27 11:46 ?688次閱讀
    <b class='flag-5'>AWTK</b>-WEB 快速入門(mén)(1) - C 語(yǔ)言應(yīng)用程序

    AWTK 最新動(dòng)態(tài):支持瀏覽器控件

    導(dǎo)讀AWTK瀏覽器控件,基于webview項(xiàng)目實(shí)現(xiàn),將瀏覽器嵌入到AWTK應(yīng)用程序中,讓開(kāi)發(fā)者可以方便的集成在線幫助和調(diào)用地圖等功能。awtk-widget-web-view是基于webview實(shí)現(xiàn)的
    的頭像 發(fā)表于 11-20 01:05 ?646次閱讀
    <b class='flag-5'>AWTK</b> 最新動(dòng)態(tài):支持瀏覽器控件

    AWTK使用經(jīng)驗(yàn)】如何使用系統(tǒng)輸入法與開(kāi)啟最大化窗口功能

    導(dǎo)讀AWTK是基于C語(yǔ)言開(kāi)發(fā)的平臺(tái)GUI框架。AWTK使用經(jīng)驗(yàn)系列文章將介紹開(kāi)發(fā)AWTK過(guò)程中一些常見(jiàn)問(wèn)題與解決方案。
    的頭像 發(fā)表于 11-14 01:05 ?651次閱讀
    【<b class='flag-5'>AWTK</b>使用經(jīng)驗(yàn)】如何使用系統(tǒng)輸入法與開(kāi)啟最大化窗口功能

    AWTK使用經(jīng)驗(yàn)】如何裁剪字庫(kù)以及如何使用點(diǎn)陣字

    AWTK是基于C語(yǔ)言開(kāi)發(fā)的平臺(tái)GUI框架。AWTK使用經(jīng)驗(yàn)系列文章將介紹開(kāi)發(fā)AWTK過(guò)程中一些常見(jiàn)問(wèn)題與解決方案。
    的頭像 發(fā)表于 10-10 08:05 ?542次閱讀
    【<b class='flag-5'>AWTK</b>使用經(jīng)驗(yàn)】如何裁剪字庫(kù)以及如何使用點(diǎn)陣字

    EsDA,一式嵌入式軟件

    EsDA是一套面向工業(yè)智能物聯(lián)領(lǐng)域的嵌入式系統(tǒng)設(shè)計(jì)自動(dòng)化工具集,包含實(shí)時(shí)操作系統(tǒng)AWorksLP、低代碼開(kāi)發(fā)平臺(tái)AWStudio、資源管理平臺(tái)AXPI、
    的頭像 發(fā)表于 09-15 08:10 ?766次閱讀
    EsDA,一<b class='flag-5'>站</b>式嵌入式軟件

    AWTK使用經(jīng)驗(yàn)】如何在AWTK顯示阿拉伯文本

    AWTK是基于C語(yǔ)言開(kāi)發(fā)的平臺(tái)GUI框架。AWTK使用經(jīng)驗(yàn)系列文章將介紹開(kāi)發(fā)AWTK過(guò)程中一些常見(jiàn)問(wèn)題與解決方案,例如:如何播放視頻或攝像
    的頭像 發(fā)表于 09-12 08:07 ?683次閱讀
    【<b class='flag-5'>AWTK</b>使用經(jīng)驗(yàn)】如何在<b class='flag-5'>AWTK</b>顯示阿拉伯文本

    AWTK最新動(dòng)態(tài)】AWTK 1.8版本發(fā)布

    AWTK是一套基于C語(yǔ)言開(kāi)發(fā)的平臺(tái)GUI框架,目前正式推出1.8版本。本次更新不僅對(duì)許多細(xì)節(jié)進(jìn)行了優(yōu)化,還增添了眾多重要特性和文檔資料。此外,還引入了三款創(chuàng)新控件和兩個(gè)與AWTK相關(guān)
    的頭像 發(fā)表于 08-30 12:48 ?819次閱讀
    【<b class='flag-5'>AWTK</b>最新動(dòng)態(tài)】<b class='flag-5'>AWTK</b> 1.8版本發(fā)布

    AWTK使用經(jīng)驗(yàn)】如何更換AWTK SDK與渲染模式

    AWTK是基于C語(yǔ)言開(kāi)發(fā)的平臺(tái)GUI框架。《AWTK使用經(jīng)驗(yàn)》系列文章將介紹開(kāi)發(fā)AWTK過(guò)程中一些常見(jiàn)問(wèn)題與解決方案,例如:如何播放攝像頭
    的頭像 發(fā)表于 08-01 08:25 ?1547次閱讀
    【<b class='flag-5'>AWTK</b>使用經(jīng)驗(yàn)】如何更換<b class='flag-5'>AWTK</b> SDK與渲染模式

    AWTK使用經(jīng)驗(yàn)】如何實(shí)現(xiàn)序列幀動(dòng)畫(huà)

    AWTK是基于C語(yǔ)言開(kāi)發(fā)的平臺(tái)GUI框架。《AWTK使用經(jīng)驗(yàn)》系列文章將介紹開(kāi)發(fā)AWTK過(guò)程中一些常見(jiàn)問(wèn)題與解決方案,例如:如何加載外部資
    的頭像 發(fā)表于 07-18 08:25 ?829次閱讀
    【<b class='flag-5'>AWTK</b>使用經(jīng)驗(yàn)】如何實(shí)現(xiàn)序列幀動(dòng)畫(huà)
    主站蜘蛛池模板: 色多多成视频人在线观看 | 全国最大色成免费网站 | fenfencao在线观看免费视频 | q2002韩国理论| 四虎国产精品免费久久影院 | 中文字幕一区在线 | 欧美黄色录像 | 国产午夜精品久久理论片小说 | 色费女人18女人毛片免费视频 | 国产高清在线精品一区 | 美女扒开尿口给男人看大全 | 亚洲一区二区三区在线播放 | 免费看污视频的网站 | 一级日本大片免费观看视频 | 婷婷99精品国产97久久综合 | 亚洲国产精品综合久久网络 | 失禁h啪肉尿出来高h | 免费a级午夜绝情美女视频 免费jlzzjlzz在线播放视频 | 亚洲国产情侣偷自在线二页 | 最新午夜宅男 | 亚洲国产精品嫩草影院 | www.色黄| 日韩欧美一区二区三区视频 | 亚洲第一精品夜夜躁人人爽 | 福利视频一区二区 | 久久男女 | 久久综合97色综合网 | 在线免费看黄的网站 | 天天干夜夜曰 | 97精品伊人久久久大香线焦 | 一及黄色| 永久国产 | 99久久综合狠狠综合久久男同 | ts国产| 免费的毛片网站 | se视频在线观看 | 一区中文字幕 | 免费视频爰爱太爽了 | 国产亚洲高清在线精品不卡 | 免费黄色三级网站 | a站在线观看 |