随笔分类 - 编程语言
摘要:项目lua库升级到5.3版本后,最头疼的就是原先的一些第三方库原先只是基于lua5.1设计的,比如protobuff 相关的的. 之前项目引入 "Lua pb" 实现protobuf的解析和使用,但是这个库对64位的数据大多是基于32位,有些地方需要修改下。 替换 Struct pack/unpac
阅读全文
摘要:"xlua 下载包" 中提供lua5.3的库文件,如果需要luajit或者自己添加删除的就需要自己进行编译。 Lua53版本没那么多事,主要是LuaJIt版本折腾的比较久。 工具 Xlua使用 CMake 进行编译,不管是哪个平台都需要提前安装 Windows 下 Visual Studio 201
阅读全文
摘要:Lua的版本差异确实是比较让人头疼的事情,之前在移动端一直采用Android下使用LuaJit,Ios下使用Lua5.1。这次升级到Xlua(lua5.3版本)主要有两方面的原因:一是ulua后续维护比价差,决定要升级到xlua,另一方面是公司在上线检查中提示禁止Luajit的使用(一些Crash无
阅读全文
摘要:从Lua5.1开始官方给出的文件只有源代码和makefile文件了,官网给出的bulid方式也是在linux平台,如果只是想找个库使用下可以到这里来下载:http://joedf.ahkscript.org/LuaBuilds/ ,如果需要自定修改库配置的话,就需要自己编译。这里主要参考文章 "在W
阅读全文
摘要:Lua基础之MetaTable(6) 转载地址:http://nova fusion.com/2011/06/30/lua metatables tutorial/ 关于MetaTable的补充:http://www.cnblogs.com/JesseFang/archive/2012/12/27/
阅读全文
摘要:Lua垃圾收集策略 Lua自动进行内存的管理。程序只能创建对象,而没有执行删除对象的函数。通过使用垃圾收集技术,Lua会自动删除那些失效的对象,也就是引用为0 的对象。但是呢?有些对象,引用没有指向它,就没办法引用到他,就相当于没法回收的垃圾内存。 一个典型的例子就是堆栈:有一个数组和指向栈顶的索引
阅读全文
摘要:lua作为脚本于要能够使用宿主语言的类型,不管是宿主基本的或者扩展的类型结构,所以Lua提供的UserData来满足扩展的需求。在Lua中使用宿主语言的类型至少要考虑到几个方面: 1. 数据内存 2. 生命周期 3. 数据操作 下面的内容主要参考《Lua程序设计》,数据保存在Lua堆栈中,通过Met
阅读全文
摘要:通常来说,C函数需要保留一些非局部的数据,也就是指那些超过他们作用范围的数据。C语言中我们使用全局变量或者static变量来满足这种需要。然而当你为Lua设计一个程序库的时候,全局变量和static变量不是一个好的方法。首先,不能将所有的Lua值保存到一个C变量中。第二,使用这种变量的库不能在多个L
阅读全文
摘要:@(语言) Lua和C 函数间的使用,都是通过栈来交互,并且基于遵守一定的规则,按照这个规则来就可以了。 1. 调用Lua函数 调用Lua方法过程 1. 将被调用的函数入栈; 2. 依次将所有参数入栈; 3. 使用 lua_pcall 调用函数; 4. 从栈中获取函数执行返回的结果。 lua_pca
阅读全文
摘要:@(语言) Lua是一个嵌入式的语言,可以Lua可以作为程序库用来扩展应用的功能,也可以注册有其他语言实现的函数,这些函数可能由C语言(或其他语言)实现,可以增加一些不容易由Lua实现的功能。这就是Lua这几年在收集游戏开发领域飞速的发展使用的原因,便于热更新,尤其使在IOS平台上。这篇文章主要是自
阅读全文
摘要:问题:对可变参数传递的时候,采用如下方案: local cellData {MsgText = msgText,Param = ...,CallBackFunc = callBackFunc,CallBackContext = callBackContext,Index = newIndex,} 这
阅读全文
摘要:C#读写Excel的方式有好几种,具体参考文章: http://www.cnblogs.com/huipengkankan/archive/2011/07/28/2120407.html 昨天大致研究了一下,项目中使用LibXl库进行读写,官方网址:http://libxl.com/home.htm
阅读全文
摘要:当我们在初学使用C#时,常常会不知道该用StringBuilder合适还是用String高效,下面是我在学习当中对StringBuilder和String的区别总结,分享给大家。 String类有不可改变性。每次执行字符操作时,都会创建一个新的String对象。 StringBuilder 类解决了
阅读全文
摘要:如何获取指定目录包含的文件和子目录 1. DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找; 2. DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为Direct
阅读全文
摘要:1、int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型); 2、int.Parse(string sParameter)是个构造函数,参数类型只支持string类型; 3、Convert.ToInt32()适合将Object类型转换为int型; 4、Convert.ToInt32()和int.Parse()的细微差别: 对于空值(null)的处理不 同,Convert....
阅读全文
摘要:纠正自己的命名方法
阅读全文
摘要:替代双指针的参数传递 如:void func(int ** pArray) ; 可以替换为:void func(int* & pArray);
阅读全文
摘要:#include #include int main () { char buf[10] = {0}; sprintf(buf,"%02x",-3); printf("%s\r\n",buf); char buf2[10] = {0}; sprintf(buf2,"%02x",(unsigned char)-3); printf("%s\r\n",buf2); return 1 ; }这是在云风的博客上看到的,前者输出ffffffd后者输出fd如果前者的buf空间小一点就会溢出
阅读全文
摘要:游戏中F键NPC列表搜索,M键地图中NPC搜索以及汉字渲染字库的查询都会应用到汉字编码问题,F键,M键中根据输入的字母在汉字名称的NPC列表中进行搜索,字库渲染采用汉字的编码定位该汉字在游戏字库中的位置。本文主要阐述游戏中关于文字使用的方法 1 GB2312 编码 windows系统下汉字编码大多采用GB2312编码,GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字300...
阅读全文