首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LuaBind断言( id < local_id_base )

LuaBind断言( id < local_id_base )
EN

Stack Overflow用户
提问于 2013-06-03 22:06:19
回答 1查看 145关注 0票数 1

我已经挣扎了很长一段时间。每当我尝试在luabind中定义一个类时,我都会得到一个断言失败

代码语言:javascript
复制
assert( id < local_id_base ) in inheritance.hpp (luabind)

我已经尝试了很多不同的luabind分支,但都没有成功。尽管它们都是用boost 1.53和Visual Studio 2012编译的。同样使用lua 5.2.1

这是我使用的代码,只是为了

代码语言:javascript
复制
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和Lua5.2.2,创建一个库而不是两个独立的库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-04 04:14:59

您的类是本地的,因此对LuaBind的模板是不可见的。将类移出main()

如果这样还不能解决问题,请检查是否正确构建了LuaBind - http://www.ogre3d.org/forums/viewtopic.php?f=2&t=75829

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16898699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档