2012-10-03 114 views
1

我終於能夠通過使用C++的編譯器運行Lua。我現在試着開始一些教程,第一個程序不會做任何事情。我下載了他們使用的代碼,但它什麼都沒做。然而沒有錯誤。測試打印出來很好,但我沒有得到luaL_dostring的迴應。我正在使用v5.1.4-46。有沒有可能我以某種不會導致錯誤的方式錯誤地安裝它?我打印出了盧阿州的內存地址,似乎正在工作。如果有人可以給我一些示例代碼來運行,我會非常感激。Lua函數沒有做任何事情

下面的代碼:

#include <lua.hpp> 
#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    lua_State *L = lua_open(); 
    luaL_openlibs(L); 

    cout << "Test" << endl; 

    luaL_dostring(L, "print(\"Hello from Lua!\n\")"); 

    lua_close(L); 
    return 0; 
} 
+1

謝謝。老實說,不知道存在。現在全部接受:) – Kethaias

回答

5

你dostring語法產生無效的Lua代碼... 「\ n」 個被執行前傳給LUA解析器。你需要一個「\\ n」......這樣認爲。所以你的「luaL_dostring」錯誤代碼實際上是一個語法錯誤。有趣的事情...

你不應該使用dostring比測試更多。

+0

感謝您的迴應,但沒有做任何事情。即使刪除lua_close()完全不做任何事情。 – Kethaias

+1

非常感謝。這固定了一切。有趣的是,我直接從教程中得到的代碼沒有工作......如果這種情況再次發生,我可能會嘗試其他教程。再次感謝。 – Kethaias

+1

是的,其實它的邏輯..但不是那麼明顯。我花了一點時間才明白:)如果出現錯誤,請檢查返回值。乾杯。 – willsteel