2012-10-03 2 views
1

필자는 마침내 C++를 사용하여 루아를 컴파일러로 돌릴 수있었습니다. 이제 튜토리얼을 시작하려고했지만 첫 번째 프로그램은 아무 것도하지 않습니다. 나는 그들이 사용했던 코드를 다운로드했지만 여전히 아무것도하지 않았다. 그러나 오류는 없습니다. 시험 인쇄가 잘되었지만 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 구문이 잘못 루아 코드를 생성 "\ n"실행 전에 루아 파서에 전달됩니다 :

여기에 코드입니다. 당신은 "\\ n"이 필요합니다 ... 그렇게 생각하십시오. 따라서 "luaL_dostring"오류 코드는 실제로 구문 오류입니다. 재미있는 일 ...

테스트 이외의 용도로는 dostring을 사용하지 않아야합니다.

+0

응답 해 주셔서 감사합니다.하지만 아무 것도하지 않았습니다. lua_close()를 완전히 제거해도 아무 일도 일어나지 않습니다. – Kethaias

+1

정말 고마워요. 그게 모든 것을 고쳤습니다. 재밌는 방법 내가 직접 튜토리얼에서 얻은 코드가 작동하지 않았다 ... 나는 아마도 다른 튜토리얼을 다시 시도 할 것이다. 다시 한번 감사드립니다. – Kethaias

+1

그래, 사실 그 논리 ..하지만 그렇게 분명하지. 이해해야 할 순간이있었습니다 :) 오류가 발생하면 반환 값을 확인하십시오. 건배. – willsteel

관련 문제