需求:
使用Qt/C++ 调用 lua 脚本 扩展原有功能。
步骤:
1,工程中引入 头文件,库文件。lua二进制下载地址(Lua Binaries)
2, 调用脚本内函数。
这里调用lua 脚本中的process函数,并传入16进制,假设为 温度 湿度数据。并打印函数返回的字符串。
#include
#include
#include
#include
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,l服务器托管网uaFileName)==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
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.fwqtg.net
目录 前言 Aravis简介 依赖关系说明 安装过程 meson安装 aravis源文件下载 构建和安装aravis 视频查看器 安装过程中遇到的问题 meson版本过低 CMake版本过低 缺少GStreamer组件 参考文章 前言 最近在做采集软件的开发,…