注册lua延迟函数

static int lua_Msg(lua_State* L)//调试输出
{
    int inNumber = lua_gettop(L);
    if (inNumber == 1) {      
        MessageBoxA(NULL, lua_tostring(L, 1), "LUA调试信息", MB_OK);
    }
    return 1;
}

static int Lua_Sleep(lua_State *L)
{
    int inNumber = lua_gettop(L);//获取参数个数
    if (inNumber == 1) {      //如果参数个数为1个
        int numSleep = lua_tointeger(L, 1); //则获取这个参数的值
        Sleep(numSleep);//运行延迟函数
    }
    return 0;
}


void CMFCApplication1Dlg::OnBnClickedButton1()
{
    //初始化
    lua_State* L = luaL_newstate();
    /* 载入Lua基本库 */
    luaL_openlibs(L);
    /* 注册函数 */
    lua_register(L, "取值", lua_Push);
    lua_register(L, "调试输出", lua_Msg);
    lua_register(L, "延时", Lua_Sleep);
    /* 运行脚本 */
    luaL_dofile(L, "1.lua");
    /* 清除Lua */
    lua_close(L);
    // TODO: 在此添加控件通知处理程序代码
}

test.lua

延时(5000);
调试输出("延迟函数执行成功");
-- 如果注册的延时函数出现错误,后面的调试输出不会执行,所以可以由此判断函数的执行是否成功
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容