chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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


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 區(qū)分各個平臺的宏

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

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

#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開發(fā)者社區(qū)用戶原創(chuàng)內容,未經授權不得轉載。歡迎更多用戶到社區(qū)交流互動、創(chuàng)作博文,一經采用,可獲得百元京東E卡。

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

    關注

    30

    文章

    4965

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    開源鴻蒙技術大會2025丨平臺開發(fā)框架分論壇:共拓移動開發(fā)新邊界,共創(chuàng)平臺生態(tài)新時代

    隨著開源鴻蒙生態(tài)的持續(xù)壯大,開發(fā)者迎來了除Android與iOS之外的“第三種選擇”。為解決“加入一個新生態(tài)就會增加一倍投入”的行業(yè)痛點,讓開發(fā)者的代碼能夠在更多平臺上復用,開源鴻蒙平臺
    的頭像 發(fā)表于 11-20 17:31 ?951次閱讀
    開源鴻蒙技術大會2025丨<b class='flag-5'>跨</b><b class='flag-5'>平臺</b>開發(fā)框架分論壇:共拓移動開發(fā)新邊界,共創(chuàng)<b class='flag-5'>跨</b><b class='flag-5'>平臺</b>生態(tài)新時代

    HbirdV2平臺移植教程

    期間問題種種,較為心酸。 總結如上平臺代碼,推薦各參賽隊由于軟硬件聯(lián)調的不便性,建議使用兩塊板卡分別調試,故平臺移植軟核就顯得尤為重要。由于賽題限定使用Xilinx
    發(fā)表于 10-31 07:04

    代碼開發(fā)平臺推薦:2025國內低代碼開發(fā)平臺排名TOP10

    代碼開發(fā)平臺排行榜 在企業(yè)數字化轉型的浪潮中,低代碼開發(fā)平臺正逐漸成為企業(yè)實現高效開發(fā)和快速迭代的重要工具。隨著技術的不斷進步和市場需求的持續(xù)增長,低
    的頭像 發(fā)表于 10-28 10:22 ?701次閱讀

    2025主流低代碼平臺有哪些:低代碼開發(fā)平臺選型指南指南

    在企業(yè)數字化轉型進入深水區(qū)的當下,低代碼開發(fā)平臺已從早期的“效率工具”升級為“核心基建”。其工程化能力、流程適配深度、技術延展性與行業(yè)積淀,直接決定了企業(yè)轉型的成效。據Gartner預測,到2026
    的頭像 發(fā)表于 10-22 11:49 ?376次閱讀

    物聯(lián)網平臺設備關聯(lián)+拖拽式搭建

    提到物聯(lián)網,很多人會想到“傳感器采集數據、設備遠程控制”,但很少有人知道:讓分散的傳感器“說話互通”、讓不懂編程的人也能搭建物聯(lián)網應用,背后都離不開“物聯(lián)網平臺”。物聯(lián)網項目的“中樞大腦”,通過
    的頭像 發(fā)表于 08-29 15:35 ?711次閱讀

    什么是零代碼平臺

    代碼平臺是一種無需編寫傳統(tǒng)代碼,通過可視化拖拽、參數配置、邏輯連線即可快速搭建業(yè)務流程與應用系統(tǒng)的工具平臺。它將復雜的軟件開發(fā)過程轉化為
    發(fā)表于 07-12 20:28

    ArkUI-X平臺技術落地-華為運動健康(二)

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

    ArkUI-X平臺技術落地-華為運動健康(一)

    NEXT系統(tǒng)上運動健康的架構設計如下: 1.新建獨立平臺的Entry模塊,該平臺Entry模塊用于編譯
    發(fā)表于 06-18 22:53

    ArkUI-X平臺應用改造指南

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

    ArkUI-X平臺差異化

    平臺使用場景是一套ArkTS代碼運行在多個終端設備上,如Android、iOS、OpenHarmony(含基于OpenHarmony發(fā)行的商業(yè)版,如HarmonyOS Next)。當不同平臺
    發(fā)表于 06-10 23:08

    ArkUI-x平臺Bridge最佳實踐

    代碼中?到了不?持平臺的API,此時?想平臺可以利?此機制將不?持
    發(fā)表于 06-10 23:06

    ArkUI-X平臺框架接入指南

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

    AWTK,開啟屬于你的GUI之美

    在當今數字化時代,軟件界面設計的高效性和一致性至關重要。本文將探討GUI設計從傳統(tǒng)代碼編寫到所見即所得工具的演變,并介紹AWTK如何通過一致的渲染技術,為開發(fā)者帶來高效且直觀的開發(fā)體驗。傳統(tǒng)GUI
    的頭像 發(fā)表于 05-13 11:31 ?1211次閱讀
    <b class='flag-5'>AWTK</b>,開啟屬于你的GUI之美

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

    WebSocket可以實現雙向通信,適合實時通信場景。本文介紹一下使用Javacript語言開發(fā)AWTK-WEB應用程序,并用WebSocket與服務器通訊。AWTKDesigner新建一個應用程
    的頭像 發(fā)表于 02-26 11:42 ?829次閱讀
    <b class='flag-5'>AWTK</b>-WEB 快速入門(6) - JS WebSocket 應用程序

    借助PerfXCloud和dify開發(fā)代碼轉換器

    和API,專門用于其GPU硬件的開發(fā);而HIP(Heterogeneous-Compute Interface for Portability)是AMD推出的一種平臺編程模型,旨在為不同廠商的GPU提供一種通用的代碼
    的頭像 發(fā)表于 02-25 09:36 ?1601次閱讀
    借助PerfXCloud和dify開發(fā)<b class='flag-5'>代碼</b>轉換器