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

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

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

3天內不再提示

基于AWTK開發應用程序需要遵循的規范和方法

AGk5_ZLG_zhiyua ? 來源:ZLG致遠電子 ? 作者:ZLG開發者社區 ? 2022-09-07 11:52 ? 次閱讀

AWTK 是 ZLG 開源的跨平臺 GUI 引擎,本文介紹一下基于 AWTK 開發應用程序需要遵循的規范和方法,以保證應用程序也能跨平臺運行。



盡量使用tkc中的函數



tkc 中提供了編碼、時間、網絡、串口、線程、互斥和文件系統等各種需要跨平臺接口的封裝,這些接口在各個平臺都有實現。



針對接口編程

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


指定特定平臺的庫、頭文件、預處理參數和鏈接參數


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 是字符串格式不是數組。


區分各個平臺的宏

  • 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__*/


添加平臺特有的文件

有些文件是特定平臺才需要的,可以根據平臺的名稱,來決定添加哪些文件。示例:

importplatform;

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

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

審核編輯:湯梓紅

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

    關注

    3

    文章

    3623

    瀏覽量

    43524
  • 函數
    +關注

    關注

    3

    文章

    4372

    瀏覽量

    64288
  • 應用程序
    +關注

    關注

    38

    文章

    3322

    瀏覽量

    58775

原文標題:【Z站推薦】用 AWTK 編寫跨平臺的代碼

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何用AWTK和AWPLC快速開發嵌入式應用程序

    AWPLC 是 ZLG 自主研發的 PLC 系統(兼容 IEC61131-3),本文用一個簡單的溫度控制系統,來演示如何用 AWTK 和 AWPLC 快速開發嵌入式應用程序
    的頭像 發表于 09-26 11:46 ?1615次閱讀

    基于AWTK和AWPLC開發走馬燈程序

    AWPLC 是 ZLG 自主研發的 PLC 系統(兼容 IEC61131-3),本文用一個簡單的走馬燈程序,來演示如何用 AWTK 和 AWPLC 快速開發嵌入式應用程序
    的頭像 發表于 10-12 11:48 ?1329次閱讀

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

    AWTK是ZLG開源的跨平臺GUI引擎,本文介紹一下基于AWTK開發應用程序需要遵循
    的頭像 發表于 09-09 14:50 ?1169次閱讀
    【Z站推薦】用 <b class='flag-5'>AWTK</b> 編寫跨平臺的代碼

    AWTK和AWPLC快速開發嵌入式應用程序 (1)-溫度控制器

    AWPLC是ZLG自主研發的PLC系統(兼容IEC61131-3),本文用一個簡單的溫度控制系統,來演示如何用AWTK和AWPLC快速開發嵌入式應用程序。背景AWTK全稱
    的頭像 發表于 09-28 09:57 ?969次閱讀
    用<b class='flag-5'>AWTK</b>和AWPLC快速<b class='flag-5'>開發</b>嵌入式<b class='flag-5'>應用程序</b> (1)-溫度控制器

    【產品應用】用 AWTK 和 AWPLC 快速開發嵌入式應用程序 (3)- 定時器

    AWPLC是ZLG自主研發的PLC系統(兼容IEC61131-3),本文用一個用定時器實現的走馬燈程序,來演示如何用AWTK和AWPLC快速開發嵌入式應用程序。背景
    的頭像 發表于 11-02 10:02 ?1083次閱讀
    【產品應用】用 <b class='flag-5'>AWTK</b> 和 AWPLC 快速<b class='flag-5'>開發</b>嵌入式<b class='flag-5'>應用程序</b> (3)- 定時器

    【產品應用】用 AWTK 和 AWPLC 快速開發嵌入式應用程序 (2)-走馬燈

    AWPLC是ZLG自主研發的PLC系統(兼容IEC61131-3),本文用一個簡單的走馬燈程序,來演示如何用AWTK和AWPLC快速開發嵌入式應用程序。背景
    的頭像 發表于 06-08 10:13 ?923次閱讀
    【產品應用】用 <b class='flag-5'>AWTK</b> 和 AWPLC 快速<b class='flag-5'>開發</b>嵌入式<b class='flag-5'>應用程序</b> (2)-走馬燈

    【從0開始創建AWTK應用程序開發及調試環境搭建

    AWTK是基于C語言開發的跨平臺GUI框架。本系列文章介紹如何從0開始創建AWTK應用程序,包括搭建開發調試環境、使用
    的頭像 發表于 11-11 10:00 ?1013次閱讀
    【從0開始創建<b class='flag-5'>AWTK</b><b class='flag-5'>應用程序</b>】<b class='flag-5'>開發</b>及調試環境搭建

    【從0開始創建AWTK應用程序】創建應用程序并在模擬器運行

    AWTK是基于C語言開發的跨平臺GUI框架。本系列文章介紹如何從0開始創建AWTK應用程序,包括搭建開發調試環境、使用
    的頭像 發表于 12-01 08:24 ?779次閱讀
    【從0開始創建<b class='flag-5'>AWTK</b><b class='flag-5'>應用程序</b>】創建<b class='flag-5'>應用程序</b>并在模擬器運行

    【從0開始創建AWTK應用程序】編譯應用到嵌入式Linux平臺運行

    AWTK是基于C語言開發的跨平臺GUI框架。本系列文章介紹如何從0開始創建AWTK應用程序,包括搭建開發調試環境、使用
    的頭像 發表于 12-07 12:08 ?1013次閱讀
    【從0開始創建<b class='flag-5'>AWTK</b><b class='flag-5'>應用程序</b>】編譯應用到嵌入式Linux平臺運行

    【從0開始創建AWTK應用程序】編譯應用到RTOS平臺

    AWTK是基于C語言開發的跨平臺GUI框架。本系列文章介紹如何從0開始創建AWTK應用程序,包括搭建開發調試環境、使用
    的頭像 發表于 03-21 08:23 ?922次閱讀
    【從0開始創建<b class='flag-5'>AWTK</b><b class='flag-5'>應用程序</b>】編譯應用到RTOS平臺

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

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

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

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

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

    導讀XMLHttpRequest改變了Web應用程序與服務器交換數據的方式,fetch是其繼任者。本文介紹一下如何使用JS語言開發AWTK-WEB應用程序,并用fetch訪問遠程數據。
    的頭像 發表于 01-22 11:31 ?391次閱讀
    <b class='flag-5'>AWTK</b>-WEB 快速入門(4) - JS Http <b class='flag-5'>應用程序</b>

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

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

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

    WebSocket可以實現雙向通信,適合實時通信場景。本文介紹一下使用Javacript語言開發AWTK-WEB應用程序,并用WebSocket與服務器通訊。用AWTKDesigner新建一個應用程
    的頭像 發表于 02-26 11:42 ?309次閱讀
    <b class='flag-5'>AWTK</b>-WEB 快速入門(6) - JS WebSocket <b class='flag-5'>應用程序</b>
    主站蜘蛛池模板: 最新sss华人 | 夜夜春宵翁熄性放纵古代 | 黄色aaaa | 国产日日操 | 夜恋秀场欧美成人影院 | 免费深夜视频 | 色福利在线 | 四虎影院免费观看视频 | 国产成人精品日本亚洲语言 | 精品四虎免费观看国产高清午夜 | 免费xxxx大片| 高清午夜线观看免费 | 久久天天躁夜夜躁狠狠躁2015 | 欧美xxxxx性视频 | 日本人69xxⅹ69 | 米奇影院777 | 午夜操操| 黑人一区二区三区中文字幕 | 国产黄色在线免费观看 | 久久久一本 | 一级做a爰片久久毛片一 | 九九精品国产兔费观看久久 | 国产精品久久女同磨豆腐 | 午夜影视剧场 | 色视频在线观看完整免费版 | 亚洲国产成人在人网站天堂 | 激情五月视频 | 波多野结衣一级毛片 | 女人双腿搬开让男人桶 | 天天躁狠狠躁夜夜躁2021 | 在线观看日本免费视频大片一区 | 成人在线天堂 | 亚洲第一区在线 | 午夜精品久久久久久久99 | 在线种子资源网 | 天天干天天操天天射 | 成 人 免费 网站 | 国产成人精品男人的天堂538 | 干干天天| 日韩午夜在线视频不卡片 | 日剧天堂 |