gpt4 book ai didi

c++ - 从零开始的 Lua/C++ 绑定(bind)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:11 26 4
gpt4 key购买 nike

我是 Lua 的新手,正在尝试了解一些基础知识。我想了解的是将 Lua 绑定(bind)到 C++ 实例。

我对第三方库不感兴趣,我想在更基础的层面上理解这一点 - 谢谢 :)

这是我的问题:

  1. 根据我所阅读的内容,我的假设是 Lua 只能绑定(bind)到静态 C 函数。这是正确的吗?
  2. 这是否意味着要绑定(bind) C++ 类的实例,我首先需要为我想要的每个方法和属性 getter/setter 编写静态函数,并接受实例指针作为参数。
  3. 我会在 Lua 中注册这些函数。
  4. 我会向 Lua 传递一个指向 C++ 类实例的指针。
  5. 我会从 Lua 调用其中一个注册函数,传递 C++ 实例指针。
  6. 静态函数取消引用指针,调用等效方法。

这有意义吗?还是我弄错了什么?

感谢您阅读到这里。

最佳答案

这正是我的盟友。

我真的建议阅读 http://luaforge.net/docman/83/98/ANoFrillsIntroToLua51VMInstructions.pdf那。

这告诉你 Lua 实际上能做的一切。所以 Lua 提供的函数让您可以操纵这些结构。

在那之后一切都变得更有意义了。

为什么这个答案应该在这里结束

你在1之后的问题都是错误的。并且 1 在语义上是错误的,静态函数只有内部/弱链接。我猜你的意思是“不是一种方法”

2) 不是真的,请记住您对对象(以及对表/元表的 lua)有很好的“self”/“this”身份 - 您不绑定(bind)到方法。

您希望 Lua 使用“self”参数调用您的某些函数,“self”(无论它是什么,一个简单的整数 ID,或者如果您觉得危险的话,也可以是一个 void*)应该告诉您什么 ojbect与您合作。

3/4/5/6 真的没有意义,请阅读该文档 :) 如果您需要更多或有更具体的内容,请评论回复此内容,这不是一个坏问题,顺便说一句,它只是天真

关于c++ - 从零开始的 Lua/C++ 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20522103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com