static int lua_Msg(lua_State* L)//調(diào)試輸出
{
int inNumber = lua_gettop(L);
if (inNumber == 1) {
MessageBoxA(NULL, lua_tostring(L, 1), "LUA調(diào)試信息", MB_OK);
}
return 1;
}
static int Lua_Sleep(lua_State *L)
{
int inNumber = lua_gettop(L);//獲取參數(shù)個(gè)數(shù)
if (inNumber == 1) { //如果參數(shù)個(gè)數(shù)為1個(gè)
int numSleep = lua_tointeger(L, 1); //則獲取這個(gè)參數(shù)的值
Sleep(numSleep);//運(yùn)行延遲函數(shù)
}
return 0;
}
void CMFCApplication1Dlg::OnBnClickedButton1()
{
//初始化
lua_State* L = luaL_newstate();
/* 載入Lua基本庫 */
luaL_openlibs(L);
/* 注冊(cè)函數(shù) */
lua_register(L, "取值", lua_Push);
lua_register(L, "調(diào)試輸出", lua_Msg);
lua_register(L, "延時(shí)", Lua_Sleep);
/* 運(yùn)行腳本 */
luaL_dofile(L, "1.lua");
/* 清除Lua */
lua_close(L);
// TODO: 在此添加控件通知處理程序代碼
}
test.lua
延時(shí)(5000);
調(diào)試輸出("延遲函數(shù)執(zhí)行成功");
-- 如果注冊(cè)的延時(shí)函數(shù)出現(xiàn)錯(cuò)誤,后面的調(diào)試輸出不會(huì)執(zhí)行,所以可以由此判斷函數(shù)的執(zhí)行是否成功