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

C++ 调用lua 脚本

需求:

使用Qt/C++ 调用 lua 脚本 扩展原有功能。

步骤:

1,工程中引入 头文件,库文件。lua二进制下载地址(Lua Binaries)

2, 调用脚本内函数。

这里调用lua 脚本中的process函数,并传入16进制,假设为 温度 湿度数据。并打印函数返回的字符串。

#include <QCoreApplication>
#include <lua.hpp>
#include <ostream>
#include <iostream>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);//初始化lua_State *L = luaL_newstate();luaL_openlibs(L);//lua脚本const char* luaFileName = "my.lua";if(luaL_dofile(L,luaFileName)==0){const char* fun = "process";// 获取全局函数lua_getglobal(L, fun);if(lua_isfunction(L,-1)){//调用函数const char* data = "1245";lua_pushstring(L,data);//传入1个参数,期望一个返回值lua_pcall(L,1,1,0);//获取返回值const char* result = lua_tostring(L,-1);std::cout<<"Result from lua:"<<result<<std::endl;}else{std::cerr<<"Error: "<<fun<<"not found"<<std::endl;}}else{std::cerr<<"Error loading lua script: "<<lua_tostring(L,-1)<<std::endl;}lua_close(L);return a.exec();
}

3,编写my.lua脚本。

解析成两个uint8整型,假设为 温度 和湿度。

function process(data)local temByte = string.sub(data, 1, 2)local temValue = tonumber(temByte, 16)local humByte = string.sub(data, 2, 3)local humValue = tonumber(humByte, 16)return "temperature: " .. tostring(temValue) .. " hum: " .. tostring(humValue)
end

4,效果

http://www.lryc.cn/news/296843.html

相关文章:

  • Centos 内存和硬盘占用情况以及top作用
  • 【数据结构】堆(创建,调整,插入,删除,运用)
  • v-if 和v-for的联合规则及示例
  • 各互联网企业测绘资质调研
  • C++自定义函数详解
  • flask+vue+python跨区通勤人员健康体检预约管理系统
  • Spring Boot动态加载Jar包与动态配置技术探究
  • Lua metatable metamethod
  • HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-任务管理
  • 中小型网络系统总体规划与设计方法
  • 以管理员权限删除某文件夹
  • JenkinsGitLab完成自动化构建部署
  • JVM 性能调优 - 参数基础(2)
  • 大型软件编程实例分享,诊所门诊处方笺管理系统多台电脑同时使用的软件教程
  • Java基于微信小程序的医院挂号系统
  • 你是在独立思考,还是在被洗脑?
  • 在django中集成markdown文本框
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Slider组件
  • django admin 自定义界面时丢失左侧导航 nav_sidebar
  • JSP原理简述
  • C/C++ - 异常处理
  • 十、项目开发总结报告(软件工程)
  • 在 VMware 虚拟机上安装 CentOS系统 完整(全图文)教程
  • 吉他学习:右手拨弦方法,右手拨弦训练 左手按弦方法
  • 【初识爬虫+requests模块】
  • 微信小程序(三十八)滚动容器
  • Python学习之路-Tornado基础:数据库
  • Golang的for循环变量和goroutine的陷阱,1.22版本的更新
  • List 差集
  • ArcGIS的UTM与高斯-克吕格投影分带要点总结