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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【Z站推薦】用 AWTK 編寫跨平臺的代碼

ZLG致遠電子 ? 2022-09-09 14:50 ? 次閱讀

AWTK 是 ZLG 開源的跨平臺 GUI 引擎,本文介紹一下基于 AWTK 開發應用程序需要遵循的規范和方法,以保證應用程序也能跨平臺運行。93ae978a-2eec-11ed-9ade-dac502259ad0.jpg ?盡量使用tkc中的函數tkc 中提供了編碼、時間、網絡、串口、線程、互斥和文件系統等各種需要跨平臺接口的封裝,這些接口在各個平臺都有實現。
93ae978a-2eec-11ed-9ade-dac502259ad0.jpg ?針對接口編程

如果需要的某個功能,在各個平臺都有不同的實現,先研究各個平臺提供的功能,再抽象一個統一的接口,針對各個平臺實現一個適配器。應用程序使用統一的接口去訪問這些功能,應用程序不但能夠跨平臺運行,代碼也更具可讀性。


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

“Windows” Windows 平臺;

Linux” Linux 平臺;

“Darwin” MacOS 平臺;

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

添加平臺特有的庫;

示例:

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"])

添加平臺特有的庫的搜索路徑;

add_platform_libpath(self,platform_name,APP_LIBPATH)

示例:

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

* 注意這里的 APP_LIBPATH 是數組類型。

添加平臺特有的頭文件的搜索路徑;

add_platform_cpppath(self, platform_name, APP_CPPPATH)

示例:

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

* 注意這里的 APP_CPPPATH 是數組類型。

添加平臺特有的宏定義預處理參數;

add_platform_ccflags(self, platform_name, APP_CCFLAGS)

示例:

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

* ccflags 是字符串格式不是數組。

添加平臺特有的C++文件的預處理參數;

add_platform_cxxflags(self, platform_name, APP_CXXFLAGS)

示例:

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

* cxxflags 是字符串格式不是數組。

添加平臺特有的鏈接參數;

add_platform_linkflags(self,platform_name,APP_LINKFLAGS)

* linkflags 是字符串格式不是數組。

93c1d94e-2eec-11ed-9ade-dac502259ad0.jpg 區分各個平臺的宏

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

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

#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 添加平臺特有的文件有些文件是特定平臺才需要的,可以根據平臺的名稱,來決定添加哪些文件。示例:

importplatform;

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

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

【版權聲明】本文為ZLG開發者社區用戶原創內容,未經授權不得轉載。歡迎更多用戶到社區交流互動、創作博文,一經采用,可獲得百元京東E卡。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4885

    瀏覽量

    70172
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ArkUI-X平臺框架接入指南

    ArkUI平臺框架(ArkUI-X)進一步將ArkUI開發框架擴展到了多個OS平臺:目前支持OpenHarmony、Android、 iOS,后續會逐步增加更多平臺支持。開發者基于一
    發表于 05-18 18:21

    非科班也能玩轉Android應用,體驗QT平臺能力-迅為RK3568開發板

    01-平臺的優越性 Qt 是一個強大的平臺框架,允許開發者使用相同的代碼庫來構建多個平臺上的
    發表于 12-10 14:33

    AWTK-WEB 快速入門(2) - JS 應用程序

    導讀AWTK可以使用相同的技術棧開發各種平臺的應用程序。有時我們需要使用Web界面與設備進行交互,本文介紹一下如何使用JS語言開發AWTK-WEB應用程序。AWTKDesigner新
    的頭像 發表于 12-05 01:04 ?384次閱讀
    <b class='flag-5'>AWTK</b>-WEB 快速入門(2) - JS 應用程序

    AWTK-WEB 快速入門(1) - C 語言應用程序

    導讀AWTK可以使用相同的技術棧開發各種平臺的應用程序。有時我們需要使用Web界面與設備進行交互,本文介紹一下如何使用C語言開發AWTK-WEB應用程序。AWTKDesigner新建
    的頭像 發表于 11-27 11:46 ?573次閱讀
    <b class='flag-5'>AWTK</b>-WEB 快速入門(1) - C 語言應用程序

    AWTK使用經驗】如何使用系統輸入法與開啟最大化窗口功能

    導讀AWTK是基于C語言開發的平臺GUI框架。AWTK使用經驗系列文章將介紹開發AWTK過程中一些常見問題與解決方案。
    的頭像 發表于 11-14 01:05 ?502次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何使用系統輸入法與開啟最大化窗口功能

    AWTK使用經驗】如何裁剪字庫以及如何使用點陣字

    AWTK是基于C語言開發的平臺GUI框架。AWTK使用經驗系列文章將介紹開發AWTK過程中一些常見問題與解決方案。
    的頭像 發表于 10-10 08:05 ?463次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何裁剪字庫以及如何使用點陣字

    EsDA,一式嵌入式軟件

    EsDA是一套面向工業智能物聯領域的嵌入式系統設計自動化工具集,包含實時操作系統AWorksLP、低代碼開發平臺AWStudio、資源管理平臺AXPI、
    的頭像 發表于 09-15 08:10 ?590次閱讀
    EsDA,一<b class='flag-5'>站</b>式嵌入式軟件

    AWTK使用經驗】如何在AWTK顯示阿拉伯文本

    AWTK是基于C語言開發的平臺GUI框架。AWTK使用經驗系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何播放視頻或攝像
    的頭像 發表于 09-12 08:07 ?571次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何在<b class='flag-5'>AWTK</b>顯示阿拉伯文本

    AWTK最新動態】AWTK 1.8版本發布

    AWTK是一套基于C語言開發的平臺GUI框架,目前正式推出1.8版本。本次更新不僅對許多細節進行了優化,還增添了眾多重要特性和文檔資料。此外,還引入了三款創新控件和兩個與AWTK相關
    的頭像 發表于 08-30 12:48 ?723次閱讀
    【<b class='flag-5'>AWTK</b>最新動態】<b class='flag-5'>AWTK</b> 1.8版本發布

    AWTK使用經驗】如何更換AWTK SDK與渲染模式

    AWTK是基于C語言開發的平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何播放攝像頭
    的頭像 發表于 08-01 08:25 ?1398次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何更換<b class='flag-5'>AWTK</b> SDK與渲染模式

    AWTK使用經驗】如何實現序列幀動畫

    AWTK是基于C語言開發的平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資
    的頭像 發表于 07-18 08:25 ?684次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何實現序列幀動畫

    AWTK使用經驗】如何播放視頻或攝像頭畫面

    AWTK是基于C語言開發的平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資
    的頭像 發表于 07-04 08:25 ?1174次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何播放視頻或攝像頭畫面

    AWTK使用經驗】如何添加中文輸入法

    AWTK是基于C語言開發的平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資
    的頭像 發表于 06-20 08:25 ?1391次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何添加中文輸入法

    AWTK使用經驗】如何響應物理按鍵

    AWTK是基于C語言開發的平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資
    的頭像 發表于 06-06 08:25 ?1044次閱讀
    【<b class='flag-5'>AWTK</b>使用經驗】如何響應物理按鍵

    鴻蒙ArkUI-X平臺開發:【 編寫第一個ArkUI-X應用】

    通過構建一個簡單的ArkUI頁面跳轉示例,快速了解資源創建引用,路由代碼編寫和UI布局編寫等應用開發流程。
    的頭像 發表于 05-21 17:36 ?1086次閱讀
    鴻蒙ArkUI-X<b class='flag-5'>跨</b><b class='flag-5'>平臺</b>開發:【 <b class='flag-5'>編寫</b>第一個ArkUI-X應用】
    主站蜘蛛池模板: 亚洲一区二区三区首页 | 国产三级国产精品国产普男人 | 亚洲一区二区三区免费 | 午夜在线观看福利 | 免费看毛片网 | 欧美城天堂网 | 久久精品免视看国产成人2021 | 好大好硬好爽免费视频 | 一级特黄aaa大片在线观看 | 五月天婷婷在线观看高清 | aaa亚洲| 美女被拍拍拍拍拍拍拍拍 | 91大神在线观看精品一区 | 国产中文字幕一区 | 欧美特黄特色aaa大片免费看 | 日本黄页在线观看 | 一级高清| 欧美猛交lxxxxxxxxx | 欧美三级久久 | 国产在线美女 | 国产精品二区三区免费播放心 | 国产精品伦子一区二区三区 | 国产成人夜间影院在线观看 | 五月婷综合 | 又色又爽视频 | 一级片免费观看视频 | аⅴ资源天堂8在线 | 亚洲高清一区二区三区 | 宅男666在线永久免费观看 | 人人天天爱天天做天天摸 | 六月丁香深爱六月综合激情 | 五月婷六月丁香 | 国产免费高清福利拍拍拍 | 天天狠狠色噜噜 | 午夜老司机永久免费看片 | 精品久久天干天天天按摩 | 国产午夜精品一区二区三区 | 亚洲系列_1页_mmyy11 | 色偷偷尼玛图亚洲综合 | 老色99久久九九精品尤物 | 激情亚洲婷婷 |