Lua / C ++从头开始绑定

时间:2013-12-11 14:44:25

标签: c++ c oop binding lua

我是Lua的新手,并试图理解一些基本原理。我想要理解的是将Lua绑定到C ++实例。

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

以下是我的问题:

  1. 我基于我所读过的假设是,Lua只能绑定到静态C函数。这是对的吗?
  2. 这是否意味着要绑定C ++类的实例,我首先需要为每个方法和属性getter / setter编写静态函数,接受实例指针作为参数。
  3. 我将这些功能注册到Lua。
  4. 我向Lua传递一个指向C ++类实例的指针。
  5. 从Lua我调用其中一个注册函数,传递C ++实例指针。
  6. 静态函数取消引用指针,调用等效方法。
  7. 这有意义吗?或者我弄错了什么?

    感谢您阅读此内容。

1 个答案:

答案 0 :(得分:4)

这是我的盟友。

1)Lua ......它并不真正与东西绑定,你需要做的是"与Lua"这需要了解Lua的工作原理。

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

这告诉你Lua实际上能做的一切。所以Lua给你的功能让你可以操纵那些结构。

之后,一切都变得更有意义。

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

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

2)不是真的,记住你有那么好的自我" /"这个"与对象的身份(以及带有表/元表的lua) - 你不会绑定到方法。

你希望Lua使用" self"来调用你的某些功能。论证,那是"自我" (不管它是什么,一个简单的整数ID,或者如果你感觉很危险的话,那么它应该告诉你你正在使用什么样的ojbect。)

3/4/5/6真的没有意义,请阅读该文件:)如果你需要更多或者有更具体的东西,请回复此评论,这不是一个坏问题。 #39; s只是天真的