lua系列
fgh431
非淡泊无以明志
展开
-
lua table系列
这也是对的mytable = {}mytable.key1=123mytable.key2=223print(mytable.key1,mytable.key2)原创 2020-10-15 08:44:55 · 136 阅读 · 0 评论 -
8.3.12 Class extension with %extend
8.3.12 Class extension with %extendSWIG can extend structures and classes with new methods.原本的类长这个样子class Complex {private: double rpart, ipart;public: Complex(double r = 0, double i = 0) : rpart(r), ipart(i) { } Complex(const Complex &原创 2020-09-24 11:09:18 · 170 阅读 · 0 评论 -
lua支持传引用啦!+ 返回int &却出错了
文章目录lua支持传引用啦!返回int &却出错了lua支持传引用啦!并且lua中函数到底是值传递还是引用传递取决于啥?取决于这个函数在cpp里面到底是值传递还是引用传递example.h#include <vector>struct haha{ int a=1; int b=2;};class Vector{public: Vector(int,int); double abs(); void display原创 2020-09-23 16:10:42 · 480 阅读 · 1 评论 -
在lua脚本里面设置require的搜索路径
文章目录在lua脚本里面设置require的搜索路径在lua脚本里面设置require的搜索路径有时候requite错了的话就这样干package.cpath = “D:/kdsf/?.dll”package.path = “/usr/local/lib/lua/5.1/?.lua;”原创 2020-09-16 18:27:49 · 1146 阅读 · 0 评论 -
windows 搞搞SWIG系列
windows下安装SWIG地址https://sourceforge.net/projects/swig/files/ 我进入swigwin,下载了swigwin-4.0.1.zip解压之后这个样子 然后直接配置环境变量就好了根本不需要安装 还可以输入swig --help看看成功了没有...原创 2020-09-14 09:36:18 · 409 阅读 · 0 评论 -
把lua搞成面向对象吧!
mytable = setmetatable({key1 = “value1”}, {__index = function(mytable, key)if key == “key2” thenreturn “metatablevalue”elsereturn nilendend})function mytable.withdraw ()print(“dfsg”)endmytable.withdraw()原创 2020-09-12 19:38:41 · 163 阅读 · 0 评论 -
lua的for和wile
文章目录for循环whiel一个例子for循环for var=exp1,exp2,exp3 do <执行体> endvar 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 varexp3 可选的,如果不指定,默认1whiel一个例子index = 1while index <= 100 do print(index) index = index + 1end...原创 2020-09-12 12:11:22 · 156 阅读 · 0 评论 -
a=123,a是啥类型
文章目录a=123,a是啥类型a=123,a是啥类型a=123;print (type(a))if(a==123)then print("dsfsdf")end--[[numberdsfsdf--]]原创 2020-09-12 11:39:57 · 2090 阅读 · 0 评论 -
lua中的表是引用传递哦!
文章目录lua中的表是引用传递哦!lua中的表是引用传递哦!L={a=3,b=4}function haha(L)L.a =99endhaha(L)print(L.a)--jie guo shi 99原创 2020-09-12 11:13:38 · 618 阅读 · 0 评论 -
lua_tonumber不自动出栈哦!
文章目录lua_tonumberlua_tonumber特码的好像lua_tonumber不自动出栈哦!哎,不出就不出把lua_tonumber(L, 1);lua_tonumber(L, 2);分别代表从左到右的参数!#include <stdio.h>extern "C" {#include "lua.h"#include "lualib.h"#include "lauxlib.h"}/* 指向lua解释器的指针 */lua_State* L;原创 2020-09-11 16:05:34 · 1009 阅读 · 0 评论 -
把C的结构体传送给lua使用
文章目录把C的结构体传送给lua使用把C的结构体传送给lua使用#include <stdio.h>extern "C" {#include "lua.h"#include "lualib.h"#include "lauxlib.h"}typedef struct haha{int a;int b;}haha;/* 指向lua解释器的指针 */lua_State* L;int main ( int argc, char *argv[] ){ /* 初原创 2020-09-03 21:30:30 · 1199 阅读 · 0 评论 -
lua 调用 c++的最简单例子+lua咋调用C
文章目录Lua与C交互之函数注册1 实现实际操作的C函数2 实现Lua与C的数据转换函数canciLua与C交互之函数注册前面讲C与Lua交互的原理,讲到了Lua调用C的接口时,需要C将函数通过注册机制注册到当前lua_State全局变量,实例具体介绍怎么注册并调用到C的函数接口。1 实现实际操作的C函数static int add(int a, int b){ return a+b;}static int sub(int a, int b){ return a - b;}s原创 2020-09-03 20:00:26 · 643 阅读 · 1 评论 -
windows下载lua系列
文章目录windows下载lua系列windows下载lua系列地址https://sourceforge.net/projects/luabinaries/files/5.4.0/Windows%20Libraries/这里有静态库也有动态库俺喜欢用静态库。 虽然有了这个好像没有exe啊,也就是没法直接用lua执行lua脚本但是可以借助C++呀比如int err = luaL_dostring(L, “print(‘Hello World’)”); ...原创 2020-09-03 19:57:35 · 545 阅读 · 0 评论 -
俺老刘终于可以将指针传递给lua了!
文章目录俺老孙终于可以将指针传递给lua了!俺老孙终于可以将指针传递给lua了!希望把指针传给lua但是lua拿到了它还要通过这个指针去访问他指向的东西那咋办 首先,是用lua_pushlightuserdata(L,&a);将指针传给lua 老子不想说了哈哈#include <stdio.h>extern "C" {#include "lua.h"#include "lualib.h"#include "lauxlib.h"}typed原创 2020-08-28 14:31:33 · 2117 阅读 · 0 评论 -
Lua绑定C++类+lua常用api+C与Lua交互之将C结构体组成table传递到Lua+Lua与C交互之函数注册
文章目录Lua绑定C++类canciLua绑定C++类canci添加链接描述原创 2020-08-27 22:42:28 · 377 阅读 · 0 评论 -
Lua和C++交互详细总结
文章目录Lua和C++交互详细总结cacnciLua和C++交互详细总结要理解Lua和C++交互,首先要理解Lua堆栈。Lua和C/C++语言通信的主要方法是虚拟栈在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数,正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图: lua的栈类似于以下定义,是在创建lua_State的时候创建的:TValue stack[max_stack_len] // 欲知内情可以查 lstat原创 2020-09-02 09:52:16 · 760 阅读 · 0 评论 -
本大王亲自实践如何下载lua
文章目录本大王亲自实践如何下载lua本大王亲自实践如何下载lua官网添加链接描述宿主机上下载源码 然后拖到虚拟机桌面输入tar zxf lua-5.4.0.tar.gzcd lua-5.4.0make all test 然后lua就搞好了它安装在哪里呢?结果就在桌面上的那个文件里就是就是在src文件夹下面都是的 如何永远搞到环境变量呢linux 设置环境变量+ 牛逼的ctrl+r...原创 2020-08-26 23:46:51 · 429 阅读 · 0 评论 -
睬脲的Lua系列
文章目录Lua 教程设计目的Lua 特性Lua 应用场景第一个 Lua 程序Lua 教程轻量小巧的脚本语言用标准C编写并以源代码形式开放里约热内卢天主教大学研究小组93年设计目的为了嵌入应用程序中从而为应用程序提供灵活扩展和定制功能Lua 特性轻量级:用标准C编写并以源代码形式开放编译后仅仅一百余K可方便的嵌入别的程序可扩展: Lua提供易于使用的扩展接口和机制由宿主语言(通常C或C++)提供这些功能,Lua可用它们就像是本来就内置的功能其它:支原创 2020-08-26 12:24:30 · 501 阅读 · 0 评论 -
SWIG系列
文章目录SWIG 基本概念和入门用SWIG编写 Hello WorldcanciSWIG 基本概念和入门C/C++公认为创建高性能代码首选平台向脚本语言接口公开C/C++代码Simplified Wrapper and Interface Generator的用武之地SWIG允许您向脚本语言公开 C/C++ 代码包括 Ruby、Perl、Tcl 和 Python本文用 Ruby 作为公开 C/C++ 功能的首选脚本接口。要理解本文,您必须具备 C/C++ 与 Ruby的相应知识原创 2020-08-26 18:56:43 · 223 阅读 · 0 评论 -
二:lua滴数据类型
文章目录2.1 C中实现通用数据结构一般做法2.2 Lua通用数据结构的实现Lua是动态类型脚本语言,同一个变量可以在不同时刻指向不同类型的数据。 用一个通用的数据结构lua_Tvalue统一表示所有在Lua虚拟机中需要保存的数据类型,这里将这个通用数据结构一层一层地拆解开来介绍。C中实现相似的功能,一般做法是怎样2.1 C中实现通用数据结构一般做法如果要用一个通用的数据结构来表示不同数据类型,一般的做法应该是这样的。 一个字段来存储数据类型需存储不同的数原创 2020-09-13 17:20:01 · 1494 阅读 · 0 评论 -
八:env和module
文章目录8.2.3模块的热更新原理8.2.3模块的热更新原理很好支持代码热更新机制,是开发时选择使用脚本语言的原因之一。热更新的好处不重启程序或发布新版本情况下更新脚本,给调试和线上解决问题带来便利对开发效率有很大的提升。 谈谈如何实现热更新。 简单回顾之前提过的模块和require机制。Lua内部提供require函数来实现模块加载,它做的事情主要有以下几个。 registry["_LOADED"]表中判断该模块是否已经加载过依次调用注册的loader来加载原创 2020-09-17 19:11:48 · 254 阅读 · 0 评论 -
1 准备工作
文章目录1.1准备开发环境1.1.1操作系统1.1.2安装Lua本书目标带领读者从零开始自己动手学会Lua,要做的第一件事就是把开发环境准备好本章分:本书编写代码所需的环境和工具本书源代码目录结构1.1准备开发环境一台安装着现代操作系统(Windows、 Linux、 macos等)的电脑,文本编辑器Lua语言编译器Go语言编译器1.1.1操作系统Lua和Go也都是跨平台,读者可选择自己喜欢的OS笔者用Mac Book编写本书代码和文字,书中命令和路径等原创 2020-08-26 21:33:21 · 181 阅读 · 0 评论