自己写一个lua.exe

#include "stdafx.h"

#include 
#include 

using namespace std;

extern "C" {
#include 
#include 
#include 
}

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的用法,我们平时都是配置环境变量,然后打一句lua,然后输入你的lua代码来执行。这个lua.exe简单来说就可以概括为以上的代码。

你可能感兴趣的:(自己写一个lua.exe)