1 Star 0 Fork 344

lgy / awtk

forked from zlgopen / awtk 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
awtk_main.md 2.38 KB
一键复制 编辑 原始数据 按行查看 历史
lixianjing 提交于 2022-10-20 18:16 . improve docs

AWTK 应用程序的入口

一、背景

虽然 main 函数是 C 语言的标准入口,但是不同平台的入口函数仍然有多种不同的形式。比如:

  • 嵌入式系统用 gui_app_start
  • ios/android 用 SDL_main
  • Linux/MacOS 用 main
  • Windows 用 wWinMain

如果希望开发的程序要在多个平台上运行,就需要处理多种入口函数。为了简化这个过程,AWTK 把入口函数的处理封装到 awtk_main.inc 中,开发者只需要 include 进来即可。

二、基本用法

  • 实现 application_init 函数
ret_t application_init() {
  /*do sth.*/
  return RET_OK;
}
  • 实现 application_exit 函数
ret_t application_exit() {
  log_debug("application_exit\n");
  return RET_OK;
}
  • 包含 awtk_main.inc
#include "awtk_main.inc"

请参考完整的例子

三、高级用法

  • 指定APP TYPE和窗口大小
#define LCD_WIDTH 800
#define LCD_HEGHT 600
#define AWTK_APP_TYPE APP_DESKTOP

#include "awtk_main.inc"

请参考完整的例子

  • 处理命令行参数
static ret_t on_cmd_line(int argc, char* argv[]) {
  script_file = argc == 2 ? argv[1] : "./demos/demoui.js";

  return RET_OK;
}

#define ON_CMD_LINE on_cmd_line

#include "awtk_main.inc"

请参考完整的例子

  • 指定应用程序的名称

#define APP_NAME "AWTK-JS"

#include "awtk_main.inc"
  • 指定缺省字体

#define APP_DEFAULT_FONT "default_full"

#include "awtk_main.inc"
  • 指定资源路径

#define APP_RES_ROOT "./"

#include "awtk_main.inc"
  • 从zip文件加载资源

#define ASSETS_ZIP "./assets.zip"

#include "awtk_main.inc"
  • 旋转屏幕

//横屏当竖屏
#define WITH_LCD_PORTRAIT 1

//竖屏当横屏
#define WITH_LCD_LANDSCAPE 1

#include "awtk_main.inc"
  • 启用鼠标指针
#define ENABLE_CURSOR 1

#include "awtk_main.inc"
  • 指定默认语言

#define APP_DEFAULT_LANGUAGE "zh"
#define APP_DEFAULT_COUNTRY "CN"

#include "awtk_main.inc"
  • 关闭命令行窗口
#define APP_ENABLE_CONSOLE FALSE

#include "awtk_main.inc"

请参考完整的例子

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/lgy1234/awtk.git
git@gitee.com:lgy1234/awtk.git
lgy1234
awtk
awtk
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891