问题标签 [luabind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1134 浏览

c++ - luabind '尝试使用未注册的类' 返回

我目前正在使用 luabind 绑定一个类(准确地说是 SFML 2.0 中的 sf::Time),并且我不断收到来自 luabind 的异常。这是我的绑定代码:

我的lua代码是:

sf::seconds 的签名是:

我尝试在我自己的返回 sf::Time 的函数中包装对 sf::seconds 的调用,并且我也尝试使用 sf::Time* 作为返回值。无论如何,我不断收到错误消息。

有任何想法吗?

编辑:

我已经测试了这个类本身,我可以使用 system.Time() 在 Lua 中创建它,没问题。所有方法都可以正常工作,但 system.Time.seconds 和其他静态方法不起作用。

0 投票
1 回答
206 浏览

luabind - 如何使用 luabind 将具有多个参数的函子绑定到 lua

如果我想使用 luabind 将带有一个参数的函子绑定到 lua,以下代码可能会有所帮助:

但是如何绑定一个具有多个参数的函子,例如:

0 投票
1 回答
2111 浏览

boost - 无法确定 lua 包含目录

我正在尝试在我的 Windows 8 RP 中安装 Luabind。这是我到目前为止所做的。

  • 我的 Visual Studio 是 2012 RC 版本。
  • 我已经安装了 LuaforWindows 5.1.4
  • 我已经下载了 luabind-0.9.1
  • 我已经下载了 luabind 需要的 boost_1_51_0
  • 我已经成功安装了 BOOST
  • 我在 BOOST_ROOT 环境变量中设置了 Bjam 的路径
  • 我在 LUA_PATH 环境变量中设置了 Lua 的路径

现在,当我尝试在 Luabind 目录中运行 bjam 时,会出现以下错误。

我不明白为什么 Jamroot 很难找到 Lua 目录的路径。我还尝试在我的 PATH 环境变量中包含路径,而不仅仅是在 LUA_PATH 环境变量中。

我已经连续搜索了三天。我也尝试过这种方法,但它仍然没有帮助。

如果有人知道我做错了什么,请让我知道我做错了什么。

0 投票
1 回答
2134 浏览

c++ - Lua 项目编译出错 (luabind)

我试图在 Visual Studio 2010 中使用 Lua + Luabind 制作一些 HelloWorld。我从这里下载了 Lua src并将它的源文件添加到项目中。然后我下载并添加了luabind的源代码。最后添加了 main.cpp。因此,在那之后尝试编译项目并在大多数 luabind 文件中出现错误:

请帮助我我做错了什么?我必须将哪些文件添加到项目中?也许一些额外的图书馆?组织 lua 项目的最佳实践是什么?

0 投票
1 回答
311 浏览

luabind - 使用 luabind 绑定返回 btVector3 的函数

我正在尝试使用 btVector3 绑定类。将 btVector3 与构造函数绑定可以正常工作。绑定函数如:

工作正常,但绑定这个:

给我以下错误:

错误 C2719:“未命名参数”:带有 __declspec(align('16')) 的形式参数不会对齐

我了解 btVector3 已对齐,如何修复/解决此问题?

0 投票
1 回答
157 浏览

c++ - LuaBind 获取函数名

如何找出哪个 Lua 函数调用了我的 C++ 函数,如果 C++ 函数由 luabind 在脚本中导出,使用 MVS 中的调用堆栈?

0 投票
2 回答
275 浏览

lua - Luabind 调用约定问题

我遇到了 Luabind 的问题,如果没有一些过于简化的解决方案,我不确定如何解决。

Luabind 似乎只允许使用__cdecl调用约定绑定到函数。在我当前的项目中,所有暴露给扩展/插件的功能都是使用__stdcall. 这使我无法直接绑定暴露的对象,而是必须为暴露的对象制作包装器。这很好,但有很多对象需要包装。

例如,一个对象可能如下所示:

我目前没有更改整个项目调用约定的选项,因此我正在查看是否有人有解决方案来修补 Luabind 以使用__stdcall函数。我在模板和增强功能方面不是最好的,所以我个人不确定从哪里开始尝试添加使用__stdcall功能的能力。

作为参考,我正在使用:

  • 路亚 5.1.4
  • Luabind 0.9.1
  • VS2010

Lua 和 Luabind 都是其版本的最新版本。(出于项目限制的原因,不使用 Lua 5.2,但如果__stdcall5.2/Luabind 有修复,我也很乐意接受。)

我只能找到一个非常旧版本的 Luabind 的修复程序来执行此操作,但网上浮动的补丁仍然与当前的 Luabind 代码完全不符。

如果需要任何其他信息,请随时询问。

0 投票
1 回答
384 浏览

luabind - luabind 成员函数需要对象作为第一个参数

我在luabind使用 g++ 4.7 ( ) 和 Boost 1.51 的 v0.9.1中遇到了一个非常微妙的问题--std=c++11,可以在以下代码中重现:

编译并执行此代码会导致:

但是,如果我将第二次调用更改为luaExecto luaExec(L, "obj.increment(obj)");,则代码执行得很好。这种行为很奇怪。我在这里做错了什么?

0 投票
1 回答
369 浏览

inheritance - Luabind 继承:未定义自我

我刚刚让自己陷入了与 Luabind 的奇怪问题。我想从 Lua 继承 C++ 类,但是 Luabind 文档中描述的方式不起作用。

这段代码只是使应用程序崩溃,因为self似乎未定义(nil如果打印出来则返回)。

我正在使用文档中描述的包装器结构。

有什么想法我可能做错了吗?

0 投票
2 回答
2962 浏览

pointers - Lua 如何在 C++ 中将 void* 指针传递给 lua && 将其传递回 C++

现在我想传递一个void*指向 Lua 的指针,使用 userdata?这该怎么做?

顺便说一句,我使用了 luabind,但它不能将void*指针传递给 Lua 堆栈,这很烦人!你们能帮帮我吗?