基于上述文章,做一些补充:将C代码编译为DLL文件,让LUA代码调用://mytestlib.cpp #include <stdio.h> #include <string.h> #include <lua.hpp> #include <lauxlib.h> #include <lualib.h> //待注册的C函数,该函数的声明形式
转载 2024-05-08 15:53:48
40阅读
本文主要介绍lua绑定C++对象的原理和方法,并能在C/C++定义类和方法,在lua中创建C++类的句柄实例,像面向对象一样去使用C++类实例。为了便于大家理解,系列文章会从基础知识讲解,并通过多个版本的进化,一步步完成从基础到多版本实践的完美结合和深入,彻底理解lua绑定C++对象的原理方法。在阅读本系列文章前,需要具备一定的lua开发经验以及luaC/C++相互调用操作的知识。1、基础C/C
转载 2024-04-06 09:15:49
34阅读
各位看官们,大家好,上一回中咱们说的是main函数参数的例子,这一回咱们说的例子是:获取程序当前的工作路径。闲话休提,言归正转。让我们一起talk C栗子吧!我们在工作的时候,有时候需要获取当前程序的工作路径。看官们还记得咱们以前说过的Linux命令吗?在Linux命令中有一个叫作pwd的命令可以显示当前的工作路径。下面我们做个演示:打开终端,在当前工作路径中输入:pwd命令,然后敲下回车执行该命
委托回调是刚接触c#时最头疼的东西,老看老忘,遂整理一下现在对委托回调的理解。如有错误,请指出,感谢。委托C# 中的委托(Delegate)类似于 CC++ 中函数的指针。委托是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。 回调函数回调函数就是允许用户把需要调用的方法的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。注意:定义的
1.农历Rime是一款可以高度自定义的输入法,前文讲述了time,date,week的定义方式现介绍获取当前农历时间的配置,效果如下(我定义了lunar关键字):实现如下:①在用户文件夹中新建一个rime.lua文件加入如下代码lunar_translator = require("lunar")②在文件夹Lua中新建文件lunar.lua(此处的文件名必需与上文require中的内容相同),加入
网上看到这篇文章,很喜欢这种分析思路,这里学习记录一下。最近小了解了下cookie. 以前觉得cookie无非就是一连串键值对, 在深入了解之后发现 远没自己想的那么简单, 自己果真太肤浅了….好吧, 这里主要探讨一下以下几个问题:如何正确设置cookiecookie的作用域以及超时时间第一方cookie以及第三方cookie为了获得简单直观的感受, 这里我们使用以下工具进行探索:openrest
转载 2024-02-26 20:16:03
243阅读
说明:openresty可以理解为一个服务器它将nginx的核心包含了过来,并结合lua脚本语言实现一些对性能要求高的功能,该篇文章介绍了使用openresty1.purview.lua--调用json公共组件 cjson = require("cjson") fun = require("ttq.fun") -- 引用公用方法文件 conf = require("ttq.ini") --引用配置
转载 2024-04-14 16:02:56
30阅读
游戏存盘的时候经常需要将一个lua table序列化为一个字符串,方便读取。序列化是一个蛮耗CPU的操作,因此如果可以将这部分的工作单独为一个线程,就能显著降低主工作线程的消耗,提高效率。本系列文章介绍用一个自己实现的数据结构lighttable来替代lua 原生的table,通过自己管理这个数据结构,来实现序列化多线程。 1. lua table简介及其原理   &nbs
转载 2024-08-08 20:11:25
54阅读
Clua交互解释CLua的交互部分称为C API,C API是一个C代码和Lua代码进行交互的函数集,主要由以下部分组成:1、读取Lua全局变量的函数;2、调用Lua函数的函数;3、运行Lua代码片段的函数;4、注册C函数然后可以在Lua中被调用的函数;C语言和Lua之间的数据通信交换,是通过在CLua之间建立一个虚拟的栈,几乎所有的API调用都是对栈上的值进行操作,所有的数据交换也是通过这
转载 2024-03-18 17:23:14
49阅读
Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,该函数类型仅仅包含一个表示Lua环境的指针作
1.c调用lua的实现原理lua语言是c语言实现的,而且是非常轻量级的,非常适合内存受限的嵌入式产品c调用lua,需要在c程序中模拟出lua解释器环境,所以需要调用lua的函数,即生成c程序必定要链接lua库,lua解释器和C是通过一个虚拟栈来交换数据的栈的大小可以设置,通过查看lua的源码,可以知道这个栈的大小,在luaconf.h的LUAI_MAXSTACK,还可以通过lua_checksta
转载 2024-05-16 11:30:01
219阅读
  作者:周玉杰 自从ulua在官网上出来后,lua 就被u3d开发人员喜爱。国内有几个高手把lua拿过来 接着进行了封装。很多都是新手转过来。lua语法一看遍知,但是大多数人还是不明白两个语言之间的互相调用是怎么一回事,这也是难点和重点。 所以今天想跟大家分享一下这方面的知识,让大家少走弯路吧。 先看看u3d 里面c# 调用luac# 先调用了lua的dll它是一个C库这个C
转载 2月前
382阅读
LUA调用C(一)-----CAPI一:为什么要使用Lua调用C函数在lua中调用C函数可以提高程序的运行效率。所以luaC的相互调用在工程中相当实用,本文就来讲解luaC相互调用的方法。二:LuaC函数实现原理 LuaC相互调用的首要问题是如何交换数据,lua API使用了一个抽象的栈与C语言交换数据,提供了压入元素,查询元素和弹出元素等功能的API操作栈,这里可以查看lua5.2中每个
转载 2024-02-16 17:53:24
314阅读
备注:最近的学习笔记均是以James Whitehead II, Bryan Mclemore及Matthew Orlando共同编写的《World of Warcraft Programming》为准的。 可以通过以下的链接获取开发相关的各种Lua Interpreter。Lua 5.1.2 for WindowsLua 5.1.2 for Mac OS X以插件形式内置于魔兽世界的WoWLua
转载 2024-06-17 20:27:48
40阅读
作者:糊涂小蜗牛 取长度使用到的函数/* ** Try to find a boundary in table 't'. A 'boundary' is an integer index ** such that t[i] is non-nil and t[i+1] is nil (and 0 if t[1] is nil). */ lua_Unsigned lua
转载 2024-02-26 12:42:12
177阅读
Q:如何在C中将Lua作为配置文件语言使用?A: “config.lua”文件中:-- window size width = 200 height = 300“main.c”文件中:#include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <lua.h> #includ
转载 2024-03-29 11:55:14
26阅读
  开始看 Lua 源码也有段时间了,由于尝试用各种方式切入,效果均不是很理想,应该是个人内功不做所致。加上先阶段个人时间有限,现记录下断点,待到来日能力足够有兴趣时再来看。初期探索:  0、由于第一次尝试读源码,开始时竟将源码按大小顺序排列,从小文件看起。  1、尝试从数据结构看起,看完了 Lua 的数据结构后对 Lua 的数据结构还是有种朦胧的感觉。然后尝试看 Lua 的 GC 终止。  2、
转载 2024-04-21 17:31:50
71阅读
基础知识:lua中函数主要有两种作用:1.完成指定的任务,这种情况下函数作为调用语句使用; 2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。函数的定义形式如下:optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body retu
--[[ 文件功能:读取CSV文件到table中,从返回的table中获取CSV的字段。 date:2013.7.18 author:JesseCen CSV文件的规则:          1.字符编码为UTF-8,否则不能正确处理中文字符。      
转载 2024-02-26 22:13:26
45阅读
lua环境lua环境由所有可操作的数据构成。 如编译好的函数,变量以及其他运行时内存。 这些数据保存在一个称作lua_State的结构中。所有lua应用程序都要求至少有一个lua_State。 如果需要还可多个(如需要为两个不同的系统保存不同的数据时)。Lua环境是用来发送和接受数据的地方,它利用栈来达到该目的。 Lua栈不同于系统栈,它只能通过Lua的API函数访问。元表Lua中得每个值
转载 2024-03-19 21:17:20
81阅读
  • 1
  • 2
  • 3
  • 4
  • 5