# 两个重要宏

# CQ_INIT

本质上会构造一个初始化函数,只能使用一次,将在初始化事件发生之前运行,使用方法如下:

CQ_INIT {
    on_enable([] {
        logging::info("启用", "插件已启用");
    });
}

除了注册事件处理函数,还可以在该函数中初始化全局变量等。

但是注意,不可以在 CQ_INIT 的最外层调用任何 API,包括调用 logging 模块,因为该初始化函数运行时,酷Q 还没有完成应用加载。例如下面这样是错的:

CQ_INIT {
    send_private_message(12345678, "我上线了!"); // 这是不可以的,应该在应用启用事件中调用
}

# CQ_MENU

用于定义菜单项点击处理函数,可以多次使用,使用方法如下:

CQ_MENU(menu_demo_1) {
    logging::info("菜单", "点击菜单1");
}

需要注意的是,CQ_MENU 的参数必须和 app.jsonmenu 中的 function 对应。

CQ_MENU 中可以做任何事情,包括调用 酷Q API、调用 Windows API、发起网络请求等。