mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-11-29 10:38:47 +08:00
2.4 KiB
2.4 KiB
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"
请参考完整的例子