注册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);
调试输出("延迟函数执行成功");
-- 如果注册的延时函数出现错误,后面的调试输出不会执行,所以可以由此判断函数的执行是否成功

你可能感兴趣的:(注册lua延迟函数)