当前位置: 首页 > news >正文

lua与C++粘合层框架

lua调用C++

      在lua中是以函数指针的形式调用函数, 并且所有的函数指针都必须满足如下此种类型:
typedef int (*lua_CFunction) (lua_State *L);  
也就是说, 偶们在C++中定义函数时必须以lua_State为参数, 以int为返回值才能被Lua所调用. 但是不要忘记了, 偶们的lua_State是支持栈的, 所以通过栈可以传递无穷个参数, 大小只受内存大小限制. 而返回的int值也只是指返回值的个数真正的返回值都存储在
lua_State的栈中. 偶们通常的做法是做一个wrapper, 把所有需要调用的函数都wrap一下, 这样就可以调用任意的函数了.

#include<iostream>
using namespace std;
#include<stdio.h>
extern "C" {
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}
//#pragma comment(lib, "lua5.1.lib")
lua_State* L;
static int average(lua_State *L)
{//返回栈中元素的个数int n = lua_gettop(L);double sum = 0;int i;for (i = 1; i <= n; i++){if (!lua_isnumber(L, i)) {lua_pushstring(L, "Incorrect argument to 'average'");lua_error(L);}sum += lua_tonumber(L, i);}/* push the average */lua_pu

相关文章:

  • Clickhouse表引擎介绍
  • ARM单片机中程序在ROM空间和RAM空间的分布(分散加载文件,Scatter-Loading Description File)
  • Humanoid-Gym 开源人形机器人端到端强化学习训练框架!星动纪元联合清华大学、上海期智研究院发布!
  • 产品推荐 - 基于6U VPX的双TMS320C6678+Xilinx FPGA K7 XC7K420T的图像信号处理板
  • ORACLE基于归档号增量恢复
  • windows关闭copilot预览版
  • 分布式定时任务调度xxl-job
  • ElevenLabs用AI为Sora文生视频模型配音 ,景联文科技提供高质量真人音频数据集助力生成逼真音效
  • HTML—常用标签
  • Rust 语言的 async 关键字
  • Linux系统——Haproxy高性能负载均衡软件
  • 初阶数据结构之---二叉树的顺序结构-堆
  • 网站被插入虚假恶意链接怎么办?
  • 微软AI工程师向联邦贸易委员会(FTC)发出警告,对Copilot Designer的安全性表示担忧
  • Java高频面试之消息队列与分布式篇
  • 时间复杂度分析经典问题——最大子序列和
  • Android 架构优化~MVP 架构改造
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • MySQL数据库运维之数据恢复
  • Redis中的lru算法实现
  • 产品三维模型在线预览
  • 关于 Cirru Editor 存储格式
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 码农张的Bug人生 - 初来乍到
  • 删除表内多余的重复数据
  • 用jquery写贪吃蛇
  • 用简单代码看卷积组块发展
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 《码出高效》学习笔记与书中错误记录
  • C# - 为值类型重定义相等性
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • (02)vite环境变量配置
  • (04)odoo视图操作
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (C语言)fread与fwrite详解
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Oracle)SQL优化技巧(一):分页查询
  • (WSI分类)WSI分类文献小综述 2024
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (理论篇)httpmoudle和httphandler一览
  • (十一)图像的罗伯特梯度锐化
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core 成都线下面基会拉开序幕
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • @Repository 注解
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [AR Foundation] 人脸检测的流程
  • [C# 网络编程系列]专题六:UDP编程