我想用wxWidgets作爲我的GUI編寫一個簡單的Lua解釋器。我正在閱讀多行文本框中的Lua命令。這裏是我的代碼:嵌入在wxWidgets中的一個簡單的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 – Roddy
或'return 3 + 5'。 – lhf
如果我給出命令:print(3 + 5),則出現以下錯誤 [string「line」]:1:char(236) – macroland