在项目开发中,为了提高开发效率往往需要开发一些辅助工具。最近在公司用lua帮拓展了一个资源扫描的工具,这个工具的功能就是从原始demo下指定目标资源文件,对该文件进行读取并筛选过滤一遍然后拷贝到最终demo对应的文件目录下。我们知道要读取一个文件必须指定对应路径,而我们在一个大型游戏软件开发中每个人所提交上去的资源都是在不同文件目录下的。所以原先的做法就是手动去把路径一个一个贴出来,整合记录到一个
转载
2024-04-23 20:37:01
64阅读
Lua调用C的动态库C语言可以完成一些lua不好实现的功能,当程序主体使用lua完成时,便需要掌握该技巧调用C来帮助我们达到目的,通过调用C的动态库简化操作流程。大致流程如下:使用C语言编写方法提供给lua调用将C文件打包成动态库lua导入动态库,直接调用里面的函数 文章目录Lua调用C的动态库准备工作使用C语言编写方法将C文件打包成动态库lua文件中导入动态库并调用其中函数多个返回值方法编写示例
转载
2024-04-01 22:38:56
61阅读
在项目开发中,为了提高开发效率往往需要开发一些辅助工具。最近在公司用lua帮拓展了一个资源扫描的工具,这个工具的功能就是从原始demo下指定目标资源文件,对该文件进行读取并筛选过滤一遍然后拷贝到最终demo对应的文件目录下。我们知道要读取一个文件必须指定对应路径,而我们在一个大型游戏软件开发中每个人所提交上去的资源都是在不同文件目录下的。所以原先的做法就是手动去把路径一个一个贴出来,整合记录到一个
转载
2024-04-28 01:03:37
269阅读
大多数计算机命令由两部分组成:命令和参数。命令是要执行的程序,而参数可能是命令选项或用户输入。如果没有这种结构,用户将不得不编辑命令的代码,以改变命令所处理的数据。想象一下重写 printf 命令只是为了让你的计算机用 “hello world” 消息问候你。参数对于交互式计算至关重要,Lua 编程语言 提供了 {...} 表达式来封装在启动 Lua 脚本时
转载
2024-03-10 20:32:40
177阅读
前端时间需要一个嵌入式的webserver,但最终没有一个比较满意的。最近就在想是否自己写一个支持lua脚本的服务器版本,可以嵌入到各种webserver中,且是与webserver集成在一起,而非单独进程方式(类似cgi)。想到那么就开始动手写,由于之前利用的是cgilua,那么就做一个cgilua的子集吧,尽量兼容。需求兼容cgilua,其网页格式仍然以.lp为后缀 lp文件格式通cgilua
转载
2024-05-27 09:52:11
65阅读
在 OpenResty 或 Nginx 服务器中运行 Lua 代码如今已经变得越来越常见,因为人们希望他们的非阻塞的 Web 服务器能够兼具超高的性能和很大的灵活性。有些人使用 Lua 完成一些非常简单的任务,比如检查和修改某些请求头和响应体数据,而有些人则利用 Lua 创建非常复杂的 Web 应用、 CDN 软件和 API 网关等等。Lua 以简单、内存占用小和运行效率高而著称,尤其是在使用Lu
转载
2024-08-18 15:32:06
39阅读
1 lua vs C/C++lua是脚本语言,优点是门槛低,可以热更新,缺点当然就是性能。C/C++是编译型语言,有点是性能高,但是相对的,门槛高,技术不好的人写的代码可能还没有lua的性能高,容易出现core,不能热更新。不过,lua语言本身就是用C实现的,而且,可以将很多能力封装成lua的接口供lua调用。2 C/C++如何给lua提供接口查看一个lua模块的源代码会发现,lua模块的实现中既
转载
2024-07-30 14:30:19
171阅读
本博客采用vs2015以及lua5.3版本进行lua动态库以及使用 工具这里就不赘述了,网上很多生成lua动态库的步骤一.建立vs c++控制台 dll程序二.设置编译相对输出路径…/…/…/bin三.设置输出 导入库相对路径…/…/…/lib四.添加LUA_BUILD_AS_DLL宏(确认一定添加了)相对路径指的是 目录结构很清晰,如果和我不一样,自行调整相对路径即可。第一步 创建工程目录结构如
Spring、SpringMVC持续介绍中,基础配置前面已经介绍了很多,如果小伙伴们还不熟悉可以参考前面几篇博客。OK ,那么这里我想说另外一个话题,那就是文件上传,我之前在做Android开发的时候,文件上传我们一般会有两种策略,一种是通过IO流上传,还有一种是通过表单上传,其实这两种在客户端实现起来都是很简单的,在服务端处理会略有差别,个人感觉IO上传代码简单,但是也有很多硬伤,还是表单上传更
将Lua加入到C++项目:
方法有2个,第一个就是直接把lua的src源代码直接加入到项目里,方便,快捷。
方案二就是把lua编译成lib库,然后其他项目链接进来,就是了。
方案一:拷贝代码
直接把D:\soft_framework_utiles\lua\lua-5.2.3\src下面的代码拷贝到自己项目里面(除了lua.c和luac.c),
转载
2024-03-28 08:40:31
44阅读
在lua中是以函数指针的形式调用函数, 并且所有的函数指针都必须满足如下此种类型:typedef int (*lua_CFunction) (lua_State *L); 也就是说, 我们在C++中定义函数时必须以lua_State为参数, 以int为返回值才能被Lua所调用。但是不要忘记了, 我们的lua_State是支持栈的, 所以通过栈可以传递无穷个参数, 大小只受内存大小限
转载
2024-04-02 16:09:26
25阅读
内容会持续更新,有错误的地方欢迎指正,谢谢!Lua 文件 I/OLua I/O 库用于读取和处理文件。分为简单模式(和C一样)、完全模式(以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法)。如果同时读取多个文件的话,使用完全模式则较为合适。简单模式以下为 file.lua 文件代码,操作的文件为test.lua(如果没有你需要创建该文件),代码如下:-- 以只读方式打开文件
file =
转载
2024-04-01 11:18:36
80阅读
在lua中写个试验性质的小程序可能只要一个脚本文件就搞定了,不过一旦程序上了一定规模,为了方便阅读和维护,分开多个文件就很有必要了。那么如何才能在一个lua脚本文件中调用另一个文件呢?这个就是今天的研究课题。 首先出场的就是dofile。我们知道一
转载
2024-04-07 14:32:34
547阅读
lua文件处理有两种模式:简单模式:拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作,适用于简单的文件操作 完全模式:使用外部的文件句柄来实现。它以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法,适用于高级文件操作,例如同时读取多个文件简单模式file = io.open (filename [, mode])mode作用r读,文件不存在则报错w写,若文件存在则覆盖
转载
2024-02-21 13:22:10
91阅读
今天继续学习Lua和C#的交互,今天要讲的是加载Lua文件。 之后的例子都会使用tolua来写,因为tolua提供的lua原生api比xlua更多。当然你也可以自己编译lua的dll放到unity里面。加载文件使用的是luaL_loadfile这个api,案例如下: 结果是先打印100,再打印200 var Lua代码如下: a = 100
b = 200 Lua里面暂时不写函数,关于函数
转载
2024-09-26 19:56:32
38阅读
简单说说Lua中的面向对象Lua中的table就是一种对象,看以下一段简单的代码: local tb1 = {a = 1, b = 2}
local tb2 = {a = 1, b = 2}
local tb3 = tb1
转载
2024-05-24 20:11:38
56阅读
命名参数,有的翻译为具名参数,顾名思义就是给带入函数的参数起个名字,注意这个名字是固定的。我们知道一般的语言,比如c/c++,java等参数只有在函数定义的时候才有类型和变量名,在函数调用时传入的是变量名或者实际值,这里的变量名可以相同也可以不同。// 假定有函数squire
int squire(int length, int width);
// 我们调用是可以如下调用,带入的变量名可以使a
转载
2024-03-22 06:43:31
37阅读
今天继续学习Lua和C#的交互,今天要讲的是加载Lua文件。 之后的例子都会使用tolua来写,因为tolua提供的lua原生api比xlua更多。当然你也可以自己编译lua的dll放到unity里面。加载文件使用的是luaL_loadfile这个api,案例如下: 结果是先打印100,再打印200var L = LuaDLL.luaL_newstate();
var path = Applica
转载
2024-02-25 07:47:24
216阅读
Lua的目标是成为一个很容易嵌入其它语言中使用的语言。很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性,以便程序更灵活和更好的扩展。 一、在Xcode中配置Lua 从http://www.lua.org 下载Lua ,解压缩 打开你要添加使用lua的项目工程,选择点击左侧工程管理文件,点击右边资源栏下方Add Target,选择添加一个 static Libarar
Q:“引用”和“引用计数”?A:“引用”既为对象的名字。比如a = {},名叫a的变量存储的值是一个”table”,”table”的名字是a;同时还可以说变量a存储着”table”的“引用”。 当“(强)引用”被创建时,对象的“引用计数”加1,只要对象的“引用计数”不为0,对象就不会被销毁,Lua的“垃圾回收系统”只回收那些“引用计数”为0的对象。Q:“强引用”和“弱引用”?A:当对象被创建时会
转载
2024-08-16 09:19:50
41阅读