[英]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.