C++与lua交互
主要是学习lua基础语法,以及和C++的交互过程
紫火桑葚
这个作者很懒,什么都没留下…
展开
-
C++ lua_pushnumber 压入长整型问题
C++ lua_pushnumber ULONGLONG 负数原创 2022-02-23 20:34:35 · 907 阅读 · 0 评论 -
Lua 表随机删除值
同样一个事情,处理流程不同,会造成效率上的极大差异先看一段代码local t = {}function CreateTable() for i=1,2000000 do table.insert(t,i) end --然后再对t进行打乱,前面的博客也有讲述endCreateTable()--每次从t中获取一个随机值并移除,此处直接从t中循环操作1000000次--每次删除第一个数据,效率极低,耗时几十秒!!!!!!!!local time1 = os.time()for i原创 2022-02-22 19:22:11 · 219 阅读 · 0 评论 -
lua attempt to index field ? a nil
不详细说,看例子local t = {}print(t[2].a) --t[2]本身是nil,所以是nil.alua: /usercode/file.lua:3: attempt to index field '?' (a nil value)stack traceback: /usercode/file.lua:3: in main chunk [C]: in ?原创 2021-12-18 10:36:54 · 7333 阅读 · 0 评论 -
lua 数组乱序处理,百万级别数组,瞬间完成乱序
目的:由于需要6位数值的不重复的,且可回收复用的key,需要生成0到999999的整型数组,且进行乱序;常规的C++实现,是相当简单的,但为了开发过程中,方便热更新,我们使用lua脚本来实现,但问题是lua中并没有提供类似于C++中的 rand_shuffle 乱序函数;作为程序员,很自然地到往上查找现有算法,基本都是以下代码--数组乱序function shuffle(t) if type(t)~="table" then return end local原创 2021-03-18 11:09:06 · 984 阅读 · 1 评论 -
关于近期遇到的 C++ 服务器 内存泄漏排查
前言:1.平台使用C++开发,底层基于MFC做的UI界面;2.为了便于平台更新,使用的C++ 结合 Lua 状态机 的模式,部分业务逻辑使用Lua脚本实现,好处就是可以热更;3.最近做了个排行数据库服务器,使用作为C++主程序,姑且简称程序X,所有的业务逻辑都用Lua实现,且平台很多底层都用到完全一样的程序X,可以说程序X是很稳定的;重点:然而,排行服务器上线之后,经过一段时间的观察,内存一直在涨;刚开始还以为是消息频率和业务复杂度的问题,可能会稍微比其他服务器高一些,但最多也.原创 2020-11-20 11:50:54 · 231 阅读 · 0 评论 -
go 成员可见性
Go没有像C++类中的private protected public关键字,而是根据成员的首字母大小写来决定是否对其他包(package)可见;首字母大写:公开,可见;首字母小写:私有,其他包不可访问;package "mytest"type Rect struct{ //公开,可被外部访问 Width,Height float64}func (r Rect) area() float64{ //方法私有,不可包外访问,只能本包访问 return..原创 2020-05-29 17:52:41 · 204 阅读 · 0 评论 -
写 lua 脚本时遇到的内存泄漏案例
从开始用lua到现在,也有一年多时间,作为脚本语言,很简单,基本属于1天入门,3天熟练,5天精通;从接触lua起,就有固定的思维模式:这是一门自动化内存管理的脚本语言;于是乎,我自然而然地认为,lua不会存在内存泄漏的问题;直到我自己写出内存泄漏的lua代码。。。--示例--先声明,我知道发生了内存泄漏,但我并不知道内部是什么原理导致泄漏--[[--表形式如下local t = { person={ name=xxx, age=xxx,原创 2020-05-22 14:45:08 · 721 阅读 · 0 评论 -
第一篇:关于lua源码编译lua静态和动态库
1.一般程序开发,会选择从官方网站下载源码,自己来编译相应的静态或动态库;我开发过程中使用的是比较稳定的5.1版本,需要注意的是,各个版本可能存在语法不兼容的问题,但整体操作流程是不变的。下载地址2.我在博客下载资源中有上传 5.1 5.3版本lua源码编译的动态库和静态库工程(Lua51Lib,Lua53Lib,Lua51DLL,Lua53DLL),以及如何从C++中导出lua自定义库(...原创 2020-03-31 17:34:06 · 533 阅读 · 0 评论