2013-06-03 58 views
1

我一直在努力了很長一段時間。 每當我嘗試定義luabind類我得到一個斷言失敗LuaBind assert(id <local_id_base)

assert(id < local_id_base) in inheritance.hpp (luabind) 

我已經嘗試了很多不同的luabind叉沒有任何成功。 雖然他們都被編譯提升1.53和Visual Studio 2012 還與盧阿5.2.1

這是我使用的代碼,只是

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

#include <luabind/luabind.hpp> 
#include <luabind/class.hpp> 
#include <luabind/function.hpp> 
#include <luabind/object.hpp> 


    class TestStruct 
    { 
    public: 
     TestStruct(const std::string& s): m_string(s) {} 
     void printmsg() { printf("Works"); }; 
    private: 
     int i; 
     std::string m_string; 
    }; 


int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, 
         _In_opt_ HINSTANCE hPrevInstance, 
         _In_ LPTSTR lpCmdLine, 
         _In_ int  nCmdShow) 
{ 
    UNREFERENCED_PARAMETER(hPrevInstance); 
    UNREFERENCED_PARAMETER(lpCmdLine); 

    lua_State* L = luaL_newstate(); 

    luaopen_io (L); 
    luaopen_base(L); 
    luaopen_table(L); 
    luaopen_string(L); 
    luaopen_math(L); 

    using namespace luabind; 

    open(L); 

    module(L) 
     [ 
      class_<TestStruct>("TestStruct") 
      .def(constructor<const std::string&>()) 
      .def("printmsg", &TestStruct::printmsg) 


     ]; 


    lua_close(L); 

    return 0; 
} 

[解決]

閱讀後,我幾乎沒有任何地方。 所以我做的是在同一個項目中創建LuaBind和Lua 5.2.2,創建一個lib而不是兩個單獨的項目。

回答