#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
extern "C" {
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
}
int _tmain(int argc, _TCHAR* argv[])
{
lua_State *L = luaL_newstate();
luaopen_base(L);
if (L == NULL) {
return 0;
}
char lua_code_buff[50];
int error;
string tip = "Please Enter Your Lua Code\n";
cout << tip;
while (cin.getline(lua_code_buff, 50)){
error = luaL_loadbuffer(L, lua_code_buff, strlen(lua_code_buff), "line")
|| lua_pcall(L, 0, 0, 0);
if (error){
cout << string("LUA ERROR:") + lua_tostring(L, -1) << endl;
lua_pop(L, 1);
}
else {
//auto ret = lua_tonumber(L, -1);
//cout << ret << endl;
}
}
lua_close(L);
system("pause");
return 0;
}
}
在lua5.1及之后,五句luaopen只需換成一句luaL_openlibs
馋吗。
使用已編譯的lua.exe的用法鲁冯,我們平時都是配置環(huán)境變量,然后打一句lua延届,然后輸入你的lua代碼來執(zhí)行。這個lua.exe簡單來說就可以概括為以上的代碼贸诚。