• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > Lua中的动态链接实例

Lua中的动态链接实例

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了Lua中的源代码预编译浅析等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

C语言应用程序中经常使用动态链接机制集成各个模块;不过,动态链接机制并不是ANSI C标准的一部分,也就是说实现方法是不可以移植的。

Lua通常不会包含任何无法通过ANSI C来实现的机制,如果动态链接是一个例外。Lua打破了对可移植性的准则,为几种平台实现了一套动态链接机制。

package.loadlib是动态链接功能的核心函数,接收两个参数:动态库的完整路径名、函数名称。

loadlib函数加载指定的库,并将其链接入Lua;如你所想,并不会调用库中的任何函数,而是将一个C函数作为Lua函数返回;如果load过程中发生任何错误,返回nil。

loadlib是一个比较底层的函数,通常使用require来加载C程序库,这个函数会搜索指定的程序库,然后调用loadlib来加载库,并返回初始化函数,这个初始化函数应将库中提供的函数注册到Lua中。

 作为一个简单的实例:

hello.c
#include<stdio.h>
 
void hello(){
printf("hello,world\n");
}
</div>
编译:gcc -o libhello.so -fPIC -shared hello.c
> f = package.loadlib('${pathhere}/libhello.so', 'hello')
> f()
hello,world
</div>

hello()函数比较简单,没有参数,没有返回值,具体的接口规范还需研究。

</div>

您可能想查找下面的文章:

相关文章

  • Lua教程(五):C/C++操作Lua数组和字符串示例
  • Lua字符串库中的几个重点函数介绍
  • Lua中os库详细介绍
  • Nginx+lua 实现调用.so文件
  • Lua学习笔记之运算符和表达式
  • Lua教程(三):C语言、C++中调用Lua的Table示例
  • Lua极简入门指南:全局变量
  • Lua教程(十): 全局变量和非全局的环境
  • Lua性能优化技巧(二):基本事实
  • Lua中的repeat...until循环语句使用教程

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 浅谈Lua的面向对象特性
    • Lua中的协同程序详解
    • Lua极简入门指南(一):基础知识篇
    • 详解Lua中的数据类型
    • Lua中字符串(string)浅析
    • Lua 操作 MongoDB 数据库实例
    • Lua中类的实现原理探讨(Lua中实现类的方法)
    • Lua的堆栈浅析
    • 用sysbench来测试MySQL的性能的教程
    • lua中使用packagepath解决多个项目的路径冲突问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有