lua的C库
2024-08-25 06:05:39
在云风的ejoy2d里是没有dll和so之类的东西的, 所有的C扩展都是类似这样写的:
intejoy2d_shader(lua_State *L) {luaL_Reg l[] = {{"load", lload},{"unload", lunload},{"draw", ldraw},{"blend", lblend},{"version", lversion},{NULL,NULL},};luaL_newlib(L,l);return 1;}
调用的时候需要先在C程序里:
luaL_requiref(L, "ejoy2d.shader.c", ejoy2d_shader, 0);
这样就相当于把ejoy2d_shader里注册的函数都绑定到ejoy2d.shader.c这个模块上了.
在lua里要调用的时候, 形式与一般C库的调用一样:
local s = require "ejoy2d.shader.c"
我觉得这样的C库写法也有其好处:
- 不需要导出为dll或so
- 初始化函数名可以不为 luaopen_*
- 库名的定义直接写在c代码里, 而且比较自由, 可以加'.'
最新文章
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- 前端模板之EasyUI常用控件及参数
- [C++基础]关于对象的创建及内存分配
- hdu3308 线段树 区间合并
- Http响应code
- LINUX系统怎么关闭防火墙?
- JSP基础学习(一)
- java selenium webdriver实战 seleniumIDE
- hdu1217Arbitrage--解题报告
- hibernate里的generator中class =value介绍
- C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名
- @Autowired和@Resource的区别是什么?
- JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算
- Java for Android 学习第一周
- 初识Hibernate框架,进行简单的增删改查操作
- Why Lua?
- 高仿QQ、微信效果的图片浏览器(支持原图和缩略图、多种手势、CocoaPods)
- mysql 判断字符串是否有某个字符
- nodejs学习笔记<;七>; 路由
- js中 xpath 使用
热门文章
- word20161222
- [mark] Linux下如何批量删除空文件
- CSS3中的px,em,rem,vh,vw辨析
- 48. 二叉树两结点的最低共同父结点(3种变种情况)[Get lowest common ancestor of binary tree]
- 适配各种Windows分辨率,为DPI添加感知,当在高DPI时,禁用WINFORM缩放等。
- Mosquitto搭建Android推送服务(二)Mosquitto简介及搭建
- Redis的入门及注意事项
- 自定义类似MessageBox小窗体操作
- ";传成老树白茶";献礼母亲节 邀市民品茗感受茶文化
- Clang与libc++abi库安装