
Lua
文章平均质量分 59
mydriverc2
这个作者很懒,什么都没留下…
展开
-
如何强行退出Mac上应用程序
在使用苹果智能设备的时候,有时候程序运行太多的情况下,系统显得很卡,有网友说,当 Mac OS X 的应用开始“无敌风火轮(转菊花)”时可真让人无奈啊,它就这么卡死了。这时要么等应用恢复响应,或者干脆强制退出它,这里介绍 6 种强制退出应用的快捷键操作,有时候能省不少时间。希望对您有所帮助! 1、通过键盘强制退出当前能够响应的 Mac 应用 按住 Command + Option +转载 2013-02-04 22:55:28 · 2035 阅读 · 0 评论 -
Lua注册回调到C++
http://cn.cocos2d-x.org/tutorial/show?id=1896思路像所有语言一样,绑定回调主要是执行的任务执行到特定情形的时候,调用对用回调方法。 本文也一样,Lua注册回调到C++的核心思路是,当C代码执行到特定特定情形的时候,调用Lua的方法。我这里使用的是用lua_stack直接调用lua的方法,没有使用Cocos2d-x封装的那个dispat转载 2016-04-12 17:39:12 · 956 阅读 · 0 评论 -
Lua中的userdata
http://www.jellythink.com/archives/587话从这里说起在我发表《Lua中的类型与值》这篇文章时,就有读者给我留言了,说:你应该好好总结一下Lua中的function和userdata类型。现在是时候总结了。对于function,我在《Lua中的函数》这篇文章中进行了总结,而这篇文章将会对Lua中的userdata进行仔细的总结。对于文章,大转载 2016-04-12 17:36:46 · 658 阅读 · 0 评论 -
lua-5.1 和 lua-5.2 之间的一些差异
1. luaL_register 2 luaL_setfuncslua5.1 之中有一个luaL_register,用于把luaL_Reg 数组中的所有函数注册到lua中。但在lua5.2中已经不支持这一函数了,lua5.2的手册中建议使用luaL_setfuncs来替代luaL_register.使用如下。int luaopen转载 2016-04-12 17:32:48 · 1128 阅读 · 0 评论 -
lua 和 C 语言进行交互 —— 如何传递table
http://blog.youkuaiyun.com/cjfeii/article/details/25593509方法1:采用 lua_pushstring/lua_pushnumber 传递key、value,然后通过 lua_settable 设置 table 中的kv对,like this:[cpp] view plain copy print?转载 2016-04-12 17:00:01 · 1044 阅读 · 0 评论 -
C++和Lua相互传递数据
本篇文章主要介绍C++和Lua相互传递数据。如果你还不知道怎么在C/C++里面调用Lua脚本的话,请参考这篇文章。本文主要介绍基本数据类型的传递,比如整型(int),字符串(string)、数字(number)及bool值。加载并运行Lua脚本由于在上一个教程里面已经介绍过如何在C/C++里面嵌入Lua,所以这一节就简单的介绍一下程序怎么用,配置就略过啦。转载 2016-04-12 16:43:27 · 1005 阅读 · 0 评论 -
Lua的栈及基本栈操作
理解Lua栈Lua通过一个“虚拟栈”与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信。Lua的这个“虚拟栈”解决了C/C++程序与Lua程序通信的两大问题:Lua使用垃圾回收,而C/C++需要手动管理内存。Lua使用动态类型,而C/C++使用的是静态类型。因 为这个栈在Lua转载 2016-04-12 16:38:55 · 5233 阅读 · 0 评论 -
Lua 与 C混合编程
http://blog.youkuaiyun.com/pbymw8iwm/article/details/7894141本文通过程序实例说明C调用lua脚本和lua调用C的方法:先建立一个 test.c文件:#include #include #include "lua.h"#include "lualib.h"#include "lauxlib.h"#prag转载 2016-04-11 15:55:39 · 1430 阅读 · 0 评论 -
从lua调用C函数
http://www.cnblogs.com/Lifehacker/archive/2013/05/26/calling_C_function_from_Lua.html最近在进入Lua编程的状态,一度令我困惑的是,Lua提供的功能少的可怜,跟自备电池的python相比,可说是简陋了。连table的打印,都需要自己实现,也因此有了一打的第三方方案。后来我想明白了,以Lua和C如此紧密的转载 2016-04-12 14:55:34 · 438 阅读 · 0 评论 -
如何将c结构数据传给lua(转)
最近需要使用lua来让策划那些配置一些逻辑,于是调研了一下lua是如何实现这部分工作的,最终发现一个通常的策划是利用lightuserdata和metatable来协调解决这个问题。也即将数据指针给lua,另外告诉它一个如何操作这些数据的metamethods即可。 请看下面的示例代码:[cpp] view plaincopytypedef struct转载 2016-04-12 17:46:34 · 1676 阅读 · 0 评论 -
纯源码包安装 lua 的时候遇到的错误和解决办法
http://storysky.blog.51cto.com/628458/345982/昨天晚上磕磕绊绊的把nginx 装好了(所有需要的包都是源码包),今天开始部署数据库,因为需要lua 语言环境支持,所以需要先安装lua,结果这东西安装也不是那么顺利,第一步是 make第二步 make linux这里出错了,提示如下luaconf.h:275:31: erro转载 2016-03-28 15:21:39 · 1173 阅读 · 0 评论 -
找不到lua_open lua_openlib
http://blog.youkuaiyun.com/x356982611/article/details/47405351 使用lua5.2发现编译器找不到lua_open函数,最后发现这个函数在5.2中已经被遗弃,被新的函数luaL_newstate和lua_newstate替代。lua_newstate可自定义内存分配函数,luaL_newstate使用默认的内存分配方式。转载 2016-08-17 17:27:26 · 1359 阅读 · 0 评论 -
Luajit笔记---关于如何FFI与C++代码交互
http://blog.youkuaiyun.com/fg5823820/article/details/8266638Luajit最吸引的大概就是FFI,想知道这是什么就去官网上看,简单来说就是一个能让你在LUA里写C代码的东西,所以感觉很强大,这样与C交互的时候就不比去操作恶心的LUA堆栈。不过FFI就目前我的认知来说,没有看起来的那么美好,首先一点就是无法注册宿主程序里的函数,最早我转载 2016-04-11 14:59:11 · 865 阅读 · 0 评论 -
LuaJIT之callback大坑绕路记
http://www.360doc.com/content/13/0226/15/9200790_268017030.shtml近期在做node.js的LuaJIT port。LuaJIT是当前已知最快的脚本JIT编译器,拿来做服务器再好不过。发现node.js底层所用的库libuv简直是个神器,包含了网络、文件系统、计时器等等一堆堆的有用功能,windows、linux、MacO转载 2016-04-11 13:58:06 · 866 阅读 · 0 评论 -
luajit笔记---编译成静态库以及FFI绑定宿主程序函数
http://blog.youkuaiyun.com/fg5823820/article/details/8888207本以为可以像lua一样把代码丢进去直接编译就好了,结果发现luajit有一堆汇编代码,不知道怎么处理,后来一搜索才知道luajit本身提高的批处理也可以编译成静态库,就是在后面加个static,郁闷到了。http://blog.youkuaiyun.com/whitehack/article转载 2016-04-11 11:21:34 · 892 阅读 · 0 评论 -
luajit ffi 访问C动态库
luajit ffi so原创 2016-04-11 10:55:00 · 2958 阅读 · 0 评论 -
LuaJit ffi 访问C中的结构体
LuaJit是另一个Lua语言的解析器。LuaJIT 是采用 C 和汇编语言编写的 Lua 解释器与即时编译器。LuaJIT 被设计成全兼容标准的 Lua 5.1 语言,同时可选地支持 Lua 5.2 和 Lua 5.3 中的一些不破坏向后兼容性的有用特性。因此,标准 Lua 语言的代码可以不加修改地运行在 LuaJIT 之上。LuaJIT 和标准 Lua 解释器的一大区别是,LuaJIT 的原创 2016-04-08 13:18:19 · 3624 阅读 · 0 评论 -
应用程序中的错误处理
典型的情况是应用的代码运行在非保护模式下。由于应用的代码不是被Lua调用的,Lua根据上下文情况来捕捉错误的发生(也就是说,Lua不能调用setjmp)。在这些情况下,当Lua遇到像"not enough memory" 的错误,他不知道如何处理。他只能调用一个panic函数退出应用。(你可以使用lua_atpanic函数设置你自己的panic函数)不是所有的API函数都会抛出异常,lua转载 2016-04-13 21:06:17 · 561 阅读 · 0 评论 -
lua手工编译遇到的问题
第一步是 make第二步 make linux这里出错了,提示如下luaconf.h:275:31: error: readline/readline.h: No such file or directoryluaconf.h:276:30: error: readline/history.h: No such file or directorylua.c: In func转载 2016-03-28 16:28:10 · 944 阅读 · 0 评论 -
lua ffi access to alien static or global variables
http://www.freelists.org/post/luajit/lua-ffi-access-to-alien-static-or-global-variables,5The symbols must be extern and not static. On Windows, the symbolson the C side must be declared as __decl转载 2016-04-08 14:26:58 · 403 阅读 · 0 评论 -
Extending Lua to C using the LuaJIT FFI library
https://knowledge.autodesk.com/support/stingray/learn-explore/caas/CloudHelp/cloudhelp/ENU/Stingray-Help/stingray-help/creating-gameplay/scripting-with-lua/calling-c-from-lua/using-luajit-ffi-html.htm转载 2016-04-08 14:21:27 · 576 阅读 · 0 评论 -
luajit笔记---编译成静态库以及FFI绑定宿主程序函数
local ffi = require("ffi")ffi.cdef[[ typedef struct { uint8_t id; char * name; } stuInfo;]]--新建一个结构体local n = 1local stu = ffi.new("stuInfo[?]", n)--新建变长的结构体变量for i=0, n-1 do转载 2016-03-31 09:23:19 · 1323 阅读 · 0 评论 -
Lua FFI 实战
http://www.360doc.com/content/14/0113/15/9200790_344867499.shtml由来FFI库,是LuaJIT中最重要的一个扩展库。它允许从纯Lua代码调用外部C函数,使用C数据结构。有了它,就不用再像Lua标准math库一样,编写Lua扩展库。把开发者从开发Lua扩展C库(语言/功能绑定库)的繁重工作中释放出来。FFI简介FFI库转载 2016-03-31 09:09:51 · 812 阅读 · 0 评论 -
如何将c结构数据传给lua
http://blog.youkuaiyun.com/hopingwhite/article/details/6681826最近需要使用lua来让策划那些配置一些逻辑,于是调研了一下lua是如何实现这部分工作的,最终发现一个通常的策划是利用lightuserdata和metatable来协调解决这个问题。也即将数据指针给lua,另外告诉它一个如何操作这些数据的metamet转载 2016-03-29 17:34:41 · 957 阅读 · 0 评论 -
Lua中的loadfile、dofile、require详解
1.loadfile——只编译,不运行loadfile故名思议,它只会加载文件,编译代码,不会运行文件里的代码。比如,我们有一个hellofile.lua文件:复制代码代码如下:print(“hello”);function hehe()print(“hello”);end这个文件里有一句代码,和一个函数。试试用loadfile加载这个文转载 2016-03-29 15:22:43 · 738 阅读 · 0 评论 -
Lua: lua_call/lua_pcall/lua_cpcall的用法
函数原型:1)void lua_call (lua_State *L, int nargs, int nresults);L是执行环境,可以理解为当前栈,nargs参数个数,nresults返回值个数。2)void lua_pcall(lua_State *L,int nargs, int nresults,int nerrfunc);lua_pcall和该函数区别是多一个转载 2016-03-29 14:58:59 · 3769 阅读 · 0 评论 -
深入理解关于Lua与C数据通信的栈
http://www.tuicool.com/articles/QFzIreLua与C交互的栈是一个重要的概念。文章首先解释了为什么要引入Lua栈,然后对访问栈常用的API进行了总结,并使用这些API的注意事项,最后从Lua源代码来看栈的实现原理。Lua栈概述 我们知道Lua是一种嵌入式语言,所有的Lua程序最后都需要通过Lua解释器(即Lua转载 2016-03-29 14:13:18 · 989 阅读 · 0 评论 -
c++向Lua中传递复杂的结构该如何做?
http://www.zhihu.com/question/32195614用userdata, 参考 Programming in Lua : 28.1还可以考虑直接ffi,参考FFI Tutorial如果在应用中这种需求比较频繁,你需要使用一个lua binder。Binder的作用就是将宿主语言的数据包装成Lua可访问的对象(table或userdat转载 2016-03-29 14:23:31 · 2912 阅读 · 0 评论 -
lua gc
Lua 提供了一个自动的内存管理。这就是说你不需要关心创建新对象的分配内存操作,也不需要在这些对象不再需要时的主动释放内存。 Lua 通过运行一个垃圾收集器来自动管理内存,以此一遍又一遍的回收死掉的对象(这是指 Lua 中不再访问的到的对象)占用的内存。 Lua 中所有对象都被自动管理,包括: table, userdata、 函数、线程、和字符串。Lua 实现了一个增量标记清除的收集器。转载 2016-03-29 14:21:18 · 557 阅读 · 0 评论 -
no field package.preload[‘ffi’]
http://lurenzhi.org/luajit-%E4%B8%8Elua-%E7%9A%84%E5%8C%BA%E5%88%AB/在openresty中使用luajit,如果出现以下错误,一般是由下面原因造成的。lua: resty_uid.lua:1: module ‘ffi’ not found: no field package.preload[‘ffi’转载 2016-04-06 17:14:12 · 9374 阅读 · 0 评论 -
lua加载函数require和dofile
http://www.tuicool.com/articles/uyMRV3NLua提供高级的 require函数 来加载运行库。粗略的说require和 dofile 完成同样的功能但有两点不同:1. require会搜索目录加载文件2. require会判断是否文件已经加载避免重复加载同一文件 。由于上述特征,require在Lua中是加载库的更好的函数。转载 2016-04-06 17:33:51 · 803 阅读 · 0 评论 -
在C中使用LuaJit FFI
.cpp代码如下extern "C" { #include #include #include #include "/data/project/LuaJIT-2.1.0-beta2/src/lua.h" #include "/data/project/LuaJIT-2.1.0-beta2/src/lualib.h" #include "/data/proje原创 2016-04-08 14:04:02 · 1799 阅读 · 0 评论 -
tolua++简介
tolua++是一种第三方的软件包,可以为Lua提供面向对象的特性,这样我们就可以使用Lua来编写使用C++语言库的脚本文件.FFI 只能绑定 C 的结构和函数,所以要用 FFI 来绑定 C++ 接口,那么需要编写一个 C++ -> C 的封装层。现在 cocos2d-x 3.0 引入的 binding-generator 已经部分替代了 tolua++ 的功能,但仍然需要依赖 t转载 2016-04-08 13:30:23 · 3232 阅读 · 0 评论 -
linux gcc
-Wl选项告诉编译器将后面的参数传递给链接器。gcc的-E选项,可以让编译器在预处理后停止,并输出预处理结果。在本例中,预处理结果就是将stdio.h 文件中的内容插入到test.c中了。-ldl选项,表示生成的对象模块需要使用共享库-L 只是加入搜索库的路径,-l指定要链接的库 -ldl, dl就是库的名字-lm-l specifies the library you w转载 2016-04-08 11:24:53 · 327 阅读 · 0 评论 -
Lua学习笔记六——package
http://blog.youkuaiyun.com/hong201/article/details/4163378lua和其他语言一样,也有模块/包的概念,稍微有点不同的是,默认先从环境变量LUA_PATH中搜索lua文件,如果搜索不到,则从LUA_CPATH中搜索C文件。 对于我来说,时而去改变环境变量,则显得麻烦,并且在另外的环境中部署时还要修改环境变量,则显得不人转载 2016-04-07 17:30:15 · 263 阅读 · 0 评论 -
LUA require 搜索路径指定方法
http://blog.youkuaiyun.com/langeldep/article/details/8289199如果是一个 *.LUA 的文件, 里面用到了自己写的库, 或者第三方写的库, 但是你不想把它放到 lua 的安装目录里, 则在代码里面可以指定require搜索的路径。 package.path = '/usr/local/share/lua/5.1转载 2016-04-07 17:25:39 · 3165 阅读 · 0 评论 -
Programming in Lua
http://www.lua.org/pil/contents.html转载 2016-04-07 12:00:39 · 315 阅读 · 0 评论 -
Embedding LuaJIT in 30 minutes (or so)
https://en.blog.nic.cz/2015/08/12/embedding-luajit-in-30-minutes-or-so/Embedding LuaJIT in 30 minutes (or so)12.8.Since you’re reading this, you probably know Lua, the world’s most inf转载 2016-04-07 11:36:33 · 823 阅读 · 0 评论 -
lua的FFI库--alien
http://blog.sina.com.cn/s/blog_44702ec60100bogh.html 所谓FFI就是Foreign Function Interfaces。 最近的一个工作,是搞一个基于lua的开发中间件框架,希望通过lua来粘合其他厂商提供的开发库,最后统一开发接口。alien刚好能满足条件,而且体积也不大,兼容Windows和Unix系统转载 2016-04-06 17:40:01 · 2320 阅读 · 0 评论 -
array element has incomplete type
http://stackoverflow.com/search?q=luaL_reg+incomplete+typelibs/edje_lua2.o edje_lua2.c:183: error: array type has incomplete element typeI guess it's not compiling because lua-5.2 doesn't ha转载 2016-08-09 17:30:17 · 1420 阅读 · 0 评论