繁体   English   中英

用C调用Lua字符串

[英]Calling a Lua string with C

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

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

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

我在我的项目中创建了一个函数来加载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是一个选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM