美文网首页C/C++
注册lua延迟函数

注册lua延迟函数

作者: Noefl | 来源:发表于2016-12-22 05:26 被阅读0次
    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延迟函数

        本文链接:https://www.haomeiwen.com/subject/xwecvttx.html