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