我正在尝试使用wxWidgets作为GUI编写一个简单的Lua解释器。我将从多行文本框中读取Lua命令。以下是我的代码:
wxString cmdStr = m_OutputWindow->GetLineText(line-1); //Read text
const char* commandStr=(const char*)cmdStr.mb_str();
int err=luaL_loadbuffer(luastate,commandStr,strlen(commandStr),"line")||lua_pcall(luastate, 0, 0, 0);
wxString outputstr;
if(err)
{
outputstr=wxString::FromUTF8(lua_tostring(luastate,-1));
lua_pop(luastate, 1);
}
如果我尝试计算一个简单的表达式,比如3+5,那么就会出现以下错误。
[string "line"]:1: syntax error near <eof>
任何想法都会受到赞赏。
3+5
不是有效的 Lua 语句,它是一个表达式。请尝试使用类似print(3+5)
的语句。http://lua-users.org/wiki/ExpressionsAsStatements - Roddyconst char* commandStr="return 3+5";
- Roddy