Я создал функцию в своем проекте для загрузки буфера 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;
}
Этот код принимает бафф и возвращает ret_string. Как сказал @interjay, luaL_dostring
- это выбор.