2011-12-18 30 views
20

Ben bir C++ uygulamasında lua katmaya çalışıyorum ama derleyici "lua_open" hakkında şikayet ettiğinden beri boşuna. Lua 5.2 kullanıyorum.C++ içine yerleştirme Lua

lua_open() öğesinin beşinci sürümde değiştirildiğini iddia eden makalelerin çoğunu buldum, ancak bunların hiçbiri ile neyin söz konusu olmadığını. İşte

Ben Nitekim

extern "C" { 
#include "../lua/lua.h" 
#include "../lua/lualib.h" 
#include "../lua/lauxlib.h" 
} 

int main() 
{ 
    int s=0; 

    lua_State *L = lua_open(); 
    // load the libs 
    luaL_openlibs(L); 
    luaL_dofile(L,"example.lua"); 
    printf("\nDone!\n"); 
    lua_close(L); 

    return 0; 
} 
+4

'lua_open' 5.1 el kitabında mevcut değil. Sadece 5.2'de kaldırılmış olan uyumluluk için çalıştı. – lhf

+0

Ayrıca, lua belgelerine bağlantılar içeren lua_Alloc() işlevinin bir örneğiyle bu çok yararlı yığın taşması yanıtına da bakın. http://stackoverflow.com/questions/3880798/lua-runs-out-of-memory –

+0

Burada, bellek ayırma hakkında birkaç ayrıntı veren ikinci bir yığın taşması yanıtı var http://stackoverflow.com/questions/11324117/ nasıl-do-Modern-VMS-sap-hafıza-ayırma –

cevap

34

derlemek çalışıyorum kod, lua_open fonksiyonu A lua_Statelua_newstate ile inşa edilmiştir lua 5.2 reference manual

anlatılmayan ve lauxlib.h

den luaL_newstate kullanabilirsiniz

Böyle bir sorunun cevabını elde etmenin daha hızlı bir yolu Lua 5.2 kaynak koduna bakmaktır (daha önce yaptığım).