testlib.c[code="c"]#include #include char* fun_strcat(char* str1,char* str2){ return strcat(str1,str2);}[/code]生成动态库:gcc -g -o testLib.so -fpic -shared testlib.c[code="l...
原创 2023-04-11 00:18:46
257阅读
Lua调用C(二) ----ffi方式一、什么是ffiFFI 库,是 LuaJIT 中最重要的一个扩展库。 它允许从纯 Lua 代码调用外部 C 函数,使用 C 数据结构。有了它,就不用再像 Lua 标准 math 库一样,编写 Lua 扩展库。把开发者从开发 Lua 扩展 C 库(语言/功能绑定库)的繁重工作中释放出来。二、为什么使用ffiLua 扩展 C 库,使用Lua/C API方法
转载 10月前
110阅读
本文转自网络 由来 FFI库,是LuaJIT中最重要的一个扩展库。它允许从纯Lua代码调用外部C函数,使用C数据结构。有了它,就不用再像Lua标准math库一样,编写Lua扩展库。把开发者从开发Lua扩展C库(语言/功能绑定库)的繁重工作中释放出来。 FFI简介 FFI库,允许从纯Lua代码调用外部
转载 2022-01-11 17:44:13
1185阅读
  lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值相同(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然能定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1的内嵌,而f1的外包也一定是f2的外包。内嵌函数
转载 2024-05-07 09:03:44
86阅读
首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。而且OpenResty提供了大量组件如Mysql、Redis、Memcached等等,使在Nginx上开发Web应用更方便更简单。目前在京东如实时价格、秒
摘要:在使用C++做服务器开发中,经常会使用到脚本技术,Lua是最优秀的嵌入式脚本之一。Lua的轻量、小巧、概念之简单,都使他变得越来越受欢迎。本人也使用过python做嵌入式脚本,二者各有特点,关于python之后会写相关的文章,python对于我而言更喜欢用来编写工具,我前边一些相关的算法也是用python来实现的。今天主要讲Lua相关的开发技术。Lua具有如下特点:Lua 拥有虚拟机的概念,
转载 2024-09-18 20:38:15
61阅读
前言这篇文章将会来一些比较轻松的内容,就是简单的介绍一下Lua中几个常用的库。简单的说就是几个API的介绍。所以说,看起来比较容易,也没有多大 的分量。就是纯粹的总结。使用库就是为了方便我们的开发,提高开发效率,同时也能保证代码的质量。希望大家以后也不要重复造轮子了。数学库数学库(math)由一组标准的数学函数构成。这里主要介绍几个常用的函数,其它的大家可以自行百度解决。三角函数(sin,cos,
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。存储数据0x1234,大端小端模式存储如下:内存地址0x40000x4001大端模式 0x120x34小端模式0x340x122.为什么会有大小端:这是因为在计算机系统中,我们是以字节为单位的,每
转载 5月前
68阅读
.01.编写一个简单的模块Lua的模块是什么东西呢?通常我们可以理解为是一个table,这个table里有一些变量、一些函数…等等,这不就是我们所熟悉的类吗?没错,和类很像(实际上我说不出它们的区别)。 我们来看看一个简单的模块,新建一个文件,命名为game.lua,代码如下:game = {} function game.play() print("那么,开始吧"); end
转载 2024-05-11 19:33:49
157阅读
背景作为一个嵌入式软件从业者,近几年的工作经历渐渐感觉到了从事嵌入式软件开发,工作投入高而产出低。提高工作效率的方法,笔者认为其之一是尽量避免使用C/C++语言进行嵌入式系统层面的开发,而是根据开发的具体系统功能,选择适合语言来开发。通常而言,C/C++的运行效率高而开发效率低,大多数脚本语言则运行效率不及使用C/C++开发的应用,而开发效率要高很多。近来半载在“高人”的带领下,接触到了基于开源项
转载 2024-02-27 13:13:53
224阅读
大家直觉地认为".."操作符比string.format慢,这是个误解,实际上从连接字符串的效率来说".."比string.format快多了。先看看实验结果 10000000次实验,基础字符串11个字符 每次连接2个基础字符串 string.format 9秒; ".." 3秒 每次连接3个基础字符串 string.format 12秒; ".." 3秒 1000000次实验,基础字符串11个
转载 2024-05-05 16:09:11
68阅读
FFI(Foreign Function Interface)是这样一种机制:用一种编程语言写的程序能调用另
原创 2022-06-27 13:37:09
1662阅读
FFI(Foreign Function Interface)是这样一种机制:用一种编程语言写的程序能调用另一种编程语言写的函数(routines)。FFI 有两种内涵。一种是是在当前正在使用的语言(host)中,调用由其它语言(guest)提供的库。第二种内涵与第一种方向相反,即,使用当前语言(host)写库,供其它语言(guest)调用。不过,后者不是任何语言都能做到的,有些语言即使能做,也会
原创 2021-05-09 10:31:14
832阅读
完成支付的过程需要2步骤,1.支付请求 2.将支付返回的结果获取到(支付成功或者失败,失败的原因)因为是lua项目,所以除了java跟c++之间的一些交互外,还有c++跟lua之间的交互一.请求支付:1.在Class文件目录下面的AppDelegate.cpp文件里面注册一个函数,将lua和c++进行一个绑定,我直接在这个类里面的applicationDidFinishLaunchich()里面进
主要是一个简单试用,使用了napi-ffi 对于easytier ffi 包进行调用 包装代码 依赖 yarn add ffi-napi ref-napi ref-struct-di easytier.js
原创 1月前
49阅读
08 匿名内部类与 lambda —— lambda 表达式背后的字节码原理问:lambda 表达式是匿名内部类的语法糖吗一、测试匿名内部类二、测试 lambda 表达式核心的 metafactory 定义核心的 metafactory() 函数小结思考题回答 问:lambda 表达式是匿名内部类的语法糖吗答案在末尾一、测试匿名内部类public class Test { public
# 如何实现Python FFI ## 引言 您好,作为一名经验丰富的开发者,我将会教会您如何实现Python FFIFFI(Foreign Function Interface)是指跨语言函数调用接口,它允许Python调用其他语言编写的函数或库。在本文中,我将为您介绍整个实现Python FFI的流程,以及每一步需要做什么。 ## 实现流程 下表展示了实现Python FFI的主要步骤
原创 2024-06-25 05:47:24
68阅读
# 深入理解Java FFI:实现Java与其他语言互操作的步骤 在现代软件开发中,Java程序可能需要与用其他编程语言(如C或C++)编写的库进行交互。这种交互的一个常用方法是使用外部函数接口(FFI,Foreign Function Interface)。本文将带你了解如何实现Java FFI,帮助你更好地掌握这一概念和技巧。 ## 流程概述 下面是实现Java FFI的基本流程概述:
原创 2024-08-10 07:03:36
104阅读
npm install ffi Error: The specified module could not be found. npm rebuild var ffi = require('ffi');var iconv = require("iconv-lite");var str="中文不乱码"
原创 2022-05-19 21:19:38
652阅读
https://blog.csdn.net/liunan199481/article/details/84327515 ...
转载 2021-01-20 15:13:19
294阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5