问题标签 [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 投票
1 回答
2678 浏览

c++ - 当 Lua 绑定在那个类中时,使用 LuaBind 在一个类中调用 Lua 函数

基本上,我只想能够在我的 Manager 类中创建一个干净的 Lua 实例,然后将类中的函数导出到 Lua,这样我就可以在 Lua 中已经创建的 C++ 类上调用函数。

这是我正在考虑解决问题的当前方式。它可以编译,但在 Lua 中没有任何反应。

有谁知道我做错了什么,或者有没有人有任何其他建议?

管理器.lua

经理.h

管理器.cpp

0 投票
1 回答
4436 浏览

c++ - LuaBind:如何将类的特定实例绑定到 Lua?

(旁注:这是游戏编程)

使用 LuaBind 将整个类绑定到 Lua 很简单:

//别的地方

现在我可以在 Lua 中创建类的实例并使用它:

lua_example.lua

但是,现在我想将特定的测试实例绑定到 Lua。这将使我能够将对象传递给 Lua,例如 Player 类的实例并执行以下操作:

与其走艰难的路并拥有类似的东西

其中相应的 C++ SetPosition 函数需要查找一个 std::map 才能找到播放器。

这甚至可能吗?如果可以,我怎么能在 LuaBind 中做到这一点?

0 投票
2 回答
921 浏览

lua - Luabind 中的自定义构造函数

我正在使用 Luabind 将 C++ API 绑定到 Lua。我有一些对象不能直接创建,而是必须在另一个线程上创建。我目前正在通过定义一个名为“静态”的成员来处理这个问题,该成员create在创建对象之前会产生:

这可行,但缺点是使客户端 API 复杂化。对于这些类,您不能正常创建它们(例如local f = Foo()),而是需要创建它们local f = Foo.create()

是否可以定义一个实际上不调用 C++ 构造函数的 Luabind 构造函数,而是另一个返回构造对象的函数(同时可以产生)?我已经尝试为__initand定义绑定__call(后者在 a 下scope,以在类上定义它,而不是它的实例),但是这两种方法都没有成功。

0 投票
1 回答
538 浏览

lua - Luabind 属性 getter 和 setter 可以产生吗?

是否可以创建一个带有 getter 和 setter 的 Luabind 属性,它们在等待查询在不同线程中执行时产生?以下语法编译但似乎不起作用:

在 Lua 端包装对象并在常规函数周围添加属性包装器不是一个好的选择,因为我需要在基类上定义这些属性,这需要为每个派生类重复很多包装器代码。

0 投票
1 回答
1447 浏览

c++ - 如何解决 LNK2005:已定义

我正在开发一个使用 Lua 和 Luabind 到 C++ 的项目。现在,在我想导出到 C++ 的每个类中,我都编写了一个静态方法 Register,如下所示:

在 Button.h 中:

在 Button.cpp 中:

对于我已经导出到 Lua 的每个类,这都很好。但是对于 Button.cpp,这似乎不起作用。

我收到以下链接器错误:

有人有什么想法吗?

0 投票
1 回答
1377 浏览

c++ - luabind: Can't call basic lua functions like print, tostring

A very basic question i guess:

The C++ code, calling lua looks like this:

now test.lua has the following contents:

Upon execution I receive the error:

What is the problem? It has something to do with environments? I thought functions like print are defined in the global environment. Why is it not found then?

Thank you very much.

0 投票
1 回答
1377 浏览

c++ - luabind 和静态字段

我正在尝试从类中导出静态字段:

我错过了什么?

0 投票
1 回答
12272 浏览

c++ - 错误:在标记“(”之前缺少二元运算符

在 gcc 升级后,我的项目由于错误而无法构建:

会是什么呢?我也尝试过最新的 gcc (4.8) 快照,但没有帮助。

ps

0 投票
1 回答
387 浏览

c++ - 将一些数据推送到 Lua 调用函数

我有两个文件 - 一个用于执行 Lua 脚本和脚本本身。

他们来了:

主机.cpp

脚本.lua

用. host.cpp_g++ host.cpp -o host.elf -I/usr/include/lua5.1 -llua5.1

运行的结果host.elf是:

虽然它应该是:

我做错了什么?

0 投票
1 回答
229 浏览

lua - 需要分配一个全局作为指针并在lua中使用

我正在使用 luabind,我想让这个 lua 代码工作。

在 c++ 中,我想将 lua 全局变量“base”分配为指向“Base”类的指针。

使用 Luabind 我可以绑定 Base 类。我正在用 C++ 创建一个基类对象。我想将此指针推送到 lua 并将其用作 lua 全局变量“base”,如上面的 lua 代码所示。

有人可以帮我吗,最简单的方法(如果可能的话,使用 luabind 本身)?我尝试将它作为 lightuserdata 推送,但没有从 lua 调用 PrintMe。