3

我正在尝试学习如何将 Lua 与 C 一起使用,所以现在我想尝试运行脚本而不从文件中加载它,因为我不想为弄乱文件而烦恼。谁能告诉我我需要调用哪些函数来执行一个简单的字符串或什么?

4

2 回答 2

6

您可以使用luaL_dostring从字符串执行脚本。

如果您需要基础知识方面的帮助(创建 Lua 状态等),请阅读Lua 编程的第四部分。

于 2010-01-30T21:07:12.367 回答
0

我在我的项目中创建了一个函数来加载 Lua 缓冲区,以下是代码:

bool Reader::RunBuffer(const char *buff,char* ret_string,const char *name){
    int error = 0;
    char callname[256] = "";
    if( m_plua == NULL || buff == NULL || ret_string == NULL ) return false;
    if( name == NULL ){
        strcpy(callname,"noname");
    }else{
        strcpy(callname,name);
    }
    error = luaL_loadbuffer(m_plua, buff, strlen(buff),callname) || lua_pcall(m_plua, 0, 1, 0);
    if (error){
        fprintf(stderr, "%s\n", lua_tostring(m_plua, -1));
        lua_pop(m_plua, 1);
    }else{
        sprintf(ret_string, "%s", lua_tostring(m_plua, -1));
    }
    return true;
}

此代码需要 buff,并返回 ret_string。正如@interjay 所说luaL_dostring,这是一种选择。

于 2015-12-03T06:19:05.590 回答