Lua/C++从头开始绑定
Lua/C++ binding from scratch
我是Lua的新手,正在努力了解一些基本知识。我想了解的是将Lua绑定到C++实例。
我对第三方图书馆不感兴趣,我想从更基本的层面了解这一点-谢谢:)
以下是我的问题:
- 根据我所读到的内容,我的假设是Lua只能绑定到静态C函数。这是正确的吗
- 这是否意味着,要绑定C++类的实例,我首先需要为我想要的每个方法和属性getter/setter编写静态函数,并接受实例指针作为参数
- 我会向Lua注册这些函数
- 我会向Lua传递一个指向C++类实例的指针
- 在Lua中,我会调用其中一个已注册的函数,传递C++实例指针
- 静态函数取消引用指针,调用等效的方法
这有道理吗?或者我做错了什么?
谢谢你读到这里。
这是我的盟友。
1) Lua。。。它并没有真正绑定到东西上,你需要做的是"和Lua玩得好",这需要了解一些Lua是如何工作的。
我真的建议你读书http://luaforge.net/docman/83/98/ANoFrillsIntroToLua51VMInstructions.pdf那个
这告诉你Lua实际能做的一切。所以Lua给你的函数只允许你操纵这些结构。
在那之后,一切都变得更有意义了。
为什么这个答案应该在这里结束
你1点后的问题都错了。1在语义上是错误的,静态函数只是有内部/弱链接。我猜你的意思是"不是一种方法"
2) 不是这样,记住你对对象有很好的"self"/"this"标识(以及对表/元表的lua)——你不绑定到方法。
你想让Lua用"self"参数调用你的某个函数,"self(无论是什么,一个简单的整数ID,或者如果你觉得危险的话,一个void)应该告诉你正在使用什么ojbect。
3/4/5/6真的没有意义,请阅读该文档:)如果您需要更多或有更具体的内容,请对此进行回复,这不是一个坏问题,顺便说一句,这只是天真的
相关文章:
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 在基于范围的for循环中使用结构化绑定声明
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 视觉studo 2019中的漫画和静态/动态绑定
- 将自由函数绑定为类成员函数
- 将常量指针引用绑定到非常量指针
- 在派生类中绑定非静态模板化成员函数
- 如何从头开始创建 avi 文件?
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- 在 openGL 中多次绑定缓冲区
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 使用结构化绑定'Reflection'
- 为什么 std::绑定错误参数可以成功?
- 如何绑定 C++ gRPC 客户端的网络接口
- 在 openmp 中,omp_get_thread_num是否绑定到物理线程?
- Lua/C++从头开始绑定
- 如何开始为c++库编写Perl绑定
- OpenGL红皮书-如果枚举默认为整数,从0开始,glBindVertexArray如何绑定到保留值0