Lua 与C/C++ 交互系列
文章平均质量分 81
高效能人生
这个作者很懒,什么都没留下…
展开
-
Lua 与C/C++ 交互系列: Lua调用C/C++函数(3)
1、Lua API中提供注册C函数关键在lua_pushcclouse()函数。该函数可以在Lua Code中定义C函数。 但是Lua 提供了几个常用的宏定义,用于注册C函数。这几个宏定义为:/#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0)#define lua_register(L,n,f) (lua_pu原创 2015-06-20 23:01:52 · 1002 阅读 · 1 评论 -
Lua BitOp 提供5.1和5.2版本位操作运算 (跨平台C语言实现 说明部分1)
BitOp作为The LuaJIT Project中的一个子项目。Lua BitOp is a C extension module for Lua 5.1/5.2 which adds bitwise operations on numbers.Features 特点:支持的位运算符:Supported functions: bit.tobit, bit.tohex, bit.b原创 2015-06-08 23:39:17 · 3157 阅读 · 0 评论 -
Incompatibilities with Lua 5.2
You can avoid some incompatibilities by compiling Lua with appropriate options luaconf.h. However, all these compatibility options will be removed in the next version of Lua.Similarly, all features翻译 2015-06-14 08:56:33 · 755 阅读 · 0 评论 -
LUA5.2版本中提供的位运算
Bitwise OperationsThis library provides bitwise operations. It provides all its functions inside the table bit32.all functions accept numeric arguments in the range (-2^51,+2^51); each argumen原创 2015-06-07 22:47:42 · 4491 阅读 · 0 评论 -
Lua: an extensible embedded language 部分翻译
来源http://www.lua.org/ddj.htmlLua provides the types nil, string, number, user data, function, and table.nil is the type of the value nil;its main property is that it is different from any other翻译 2015-06-05 13:13:19 · 420 阅读 · 0 评论 -
LuaBit 对于LUA语言位操作符LUA语言实现,依赖于LUA Number的定义。(可参看未定义的实现部分)
//位操作运算不能对浮点型进行操作。在进行位操作时进行检查local function check_int(n) -- checking not float if(n - math.floor(n) > 0) then error("trying to use bitwise operation on non-integer!") endend//把LUA Number转换成位模原创 2015-06-09 00:01:08 · 1530 阅读 · 0 评论 -
Number类型在LUA语言中的演化1
Numbers in Lua ● Since its first version (1993), Lua has had one single kind of number ● First versions used float ● Changed to double in version 3.1 (1998) ● mainly because progr翻译 2015-06-05 17:15:02 · 602 阅读 · 0 评论 -
LUA Registry
Storing State in C FunctionsC functions need to keep some non-local data, that is, data thatoutlive their invocation.The C API also offers two basic places to store non-localdata: the翻译 2015-05-02 08:44:11 · 2138 阅读 · 0 评论 -
C APIs in extension and extensible languages by Roberto 部分翻译
C APIs in extension and extensible languages by Roberto 部分翻译Data transferThe basic set of functions for manipulating data in scripting language APIs is usuallythe same: they provide functi翻译 2015-06-09 23:50:27 · 504 阅读 · 0 评论 -
bitlib提供5.1版本下位操作符(c 语言实现,跨平台)
在LuaForge中提供bitlib可以在lua5.1版本中提高为操作符运算。bitlib通过c语言来实现跨平台位操作符。Lua functions provided:bit.bnot(a) returns the one's complement of abit.band(w1,...) returns the bitwise and of the原创 2015-06-08 08:19:46 · 2125 阅读 · 0 评论 -
Luainterface
1. Introduction The Microsoft .NET Framework aims to provide interoperability among several different languages through its Common Language Runtime (CLR) [13].The CLR specification is being翻译 2015-05-23 21:41:21 · 551 阅读 · 0 评论 -
Lua 与C/C++ 交互系列:注册枚举enum到Lua Code中
在Lua Code中注册C/C++的枚举非常容易,就像注册全局变量一样。我们使用枚举名称作为命名空间,来避免注册的枚举发生冲突。注册的枚举存储在全局环境(线程环境)中。当在Lua Code中访问枚举时,通过名称来访问对应的值。原创 2015-06-27 09:51:02 · 3814 阅读 · 0 评论 -
Lua 与C/C++ 交互系列:动态注册枚举enum到Lua Code中,在运行时在Lua Code中获取内省信息
在C语言特征本身,不提供运行时信息。C语言的拓展集,C++语言特征本身对运行时提供支持。在C++语言中通过typeid(),dynamic_case()等函数可以获取类型的内省信息。在Java语言中,对内省信息支持强大,spring 等库就是通过内省信息来实现的强大库。在actionscript3.0中也提供了对类的内省信息。在游戏开发中,可以利用内省信息反射出类对象,包括游戏UI编辑器都是通过内省类信息来实现的。C# 是在C++,Java语言发展而来,同时也对运行时内省提供强大支持。对于这些语言的内省信原创 2015-06-28 13:20:44 · 3418 阅读 · 0 评论 -
Lua 与C/C++ 交互系列: Lua调用C/C++函数(1).
在学习Lua和C/C++过程中,在这个过程花费了不少时间。总是在几个地方卡住。Programming In Lua 和Lua 5.1 Reference Manual 为主要学习资料。但是Lua 5.1 Reference Manual 在演化过程中,把对虚拟栈管理部分分散在不同的章节里面。Lua 5.0 Reference Manual 版本却有这一个章节。然后,后来在lua 源代码中找原创 2015-06-20 11:45:14 · 1061 阅读 · 0 评论 -
Lua 与C/C++ 交互系列:通过C调用Lua函数(1)
1、Lua通过ANSI C 进行编写,Lua与C交互要遵循一定的协议规则。在Lua 5.1 Reference Manual中明确规定如何通过C Code调用Lua 编写的函数。 C code可以调用Lua Code编写的任何函数.本文主要以全局函数来做演示。2、首先把C语言调用Lua 函数的协议规则说明。Lua 5.1 Reference Manual 中关于void原创 2015-06-20 06:21:56 · 1282 阅读 · 0 评论 -
Lua 与C/C++ 交互系列: Lua调用C/C++函数(2).
1、本文将使用void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n); 来讲解在Lua Code中注册C函数,其他注册方式将在下一篇文章中讲解。When a C function is created, it is possible to associate some values with it, thus crea原创 2015-06-20 15:38:16 · 2852 阅读 · 0 评论 -
Lua 与C/C++ 交互系列:通过C++调用Lua函数(2)
在Lua和C/C++库,lua user org上面有罗列,但是代码量小,代码容易读,容易学习的库很少.要么提供功能少,例如autoToC 仅仅提供struct绑定。luabind 必须使用Boost库,代码量大,增加了学习难点,同时,luabind库本身代码量就多。在筛选过程中,我选择了luabrige lua_tinker 以及luna作为学习的选择。通过lua_call(原创 2015-06-20 11:09:40 · 1197 阅读 · 0 评论 -
Lua 与C/C++ 交互系列: Lua调用C/C++函数(4-1)
1、本文将继续讲解在Lua Code中调用注册的C函数.偶在学习本文知识点时,由于知识点的遗漏,在这个上面浪费了大量时间和精力。一直都没有没明白,Lua 通过面向对象的方式是如果调用注册的C函数。在Programming In Lua一书,有对这个方面的讲解。但是当时看书,就是不理解。因为在前面的章节中,有一个重要的知识点被遗漏。在Lua 元方法中,有两个特别重要的.__index 和__newi原创 2015-06-21 07:27:47 · 998 阅读 · 0 评论 -
Lua 与C/C++ 交互系列: Lua调用C/C++函数(4-2)
1、本文继续讲解Lua调用C/C++函数,本文的重点是通过metatable来实现Lua Code面向对象调用注册的C函数。本文中涉及的Environment 伪索引,userdata 以及GC 垃圾回收器的内容,都是简单的讲解。不作为本文的重点,这些内容都将在以后的章节中继续讲解。2、本文涉及的到主要知识点补充说明。2.1 void *lua_newuserdata (lua_State原创 2015-06-22 07:59:11 · 1146 阅读 · 0 评论 -
Lua 与C/C++ 交互系列:Userdata知识点翻译
1、来自Lua 5.0Reference Manual -The Applicatioin Program Interface -UserdataUserdata represents C values in Lua. Lua supports two types of userdata: full userdata and lightuserdata.A full userda翻译 2015-06-22 11:17:53 · 2803 阅读 · 0 评论 -
Lua 与C/C++ 交互系列:Light userdata翻译
利用零碎的时间,先把以后用的知识点提前准备好。最近比较忙,正在准备一篇绑定C++对象到Lua中。但是,不想轻易下手,希望做足准备。这篇翻译来自于lua-users.org ,原文地址。Light User DataLight userdata, like heavy userdata, are a form of userdata, which is one of the basi翻译 2015-06-23 20:36:14 · 4463 阅读 · 0 评论 -
Lua 与C/C++ 交互系列:Lua面向对象编程翻译
本文翻译来自:Programming with Multiple Paradigms in Lua原文如下:Object-Oriented ProgrammingLua has only one data-structure mechanism, the table. Tables are first-class,dynamically created associat翻译 2015-06-22 19:26:07 · 829 阅读 · 0 评论 -
Lua 与C/C++ 交互系列:利用模板技术在Lua Code中注册C++类
通过C++模板绑定类到Lua Code中。 Lua C API为C语言而设计,所有Lua不直接支持绑定C++函数。但是,Lua提供底层机制来实现绑定C++类。本文通过一个简单,高效的静态模板类来提供注册C++类的服务。只有c++类严格遵循一定的规则才能注册类,并且成员函数必须遵循lua_CFunction才能被注册。Lua API 并不是为了注册C++ 类而设计,仅仅lua_CFuncti原创 2015-06-24 22:32:43 · 2545 阅读 · 0 评论 -
LUA 学习1
Lua is a dynamically-typed language: types are attached to values rather than tovariables. Lua has eight basic types:nil,boolean,number,string,table,function,userdata,原创 2015-04-19 22:37:07 · 751 阅读 · 0 评论