Lua调用C的函数

news/2024/11/15 21:38:44/文章来源:https://www.cnblogs.com/edisonewton/p/18298373
#include <iostream>
#include <string>
using namespace std;extern "C"
{#include "lua.h"#include "lualib.h"#include "lauxlib.h"
}int myTest(lua_State* L)
{// 获得Lua函数的参数的数量int nArgs = lua_gettop(L);cout << "nArgs = " << nArgs << endl;cout << "==================================================" << endl;for(int i = 1; i <= nArgs; ++i) {const char* str_arg_n = lua_tostring(L,i);cout << "[" << i << "] = " << str_arg_n << endl;}cout << "==================================================" << endl;//cout << "==================================================" << endl;//for(int i = -1; i >= -nArgs; --i) {//    const char* str_arg_n = lua_tostring(L,i);//    cout << "[" << i << "] = " << str_arg_n << endl;//}//cout << "==================================================" << endl;return 0;
}int main(int argc,char* argv[])
{cout << "===============" << endl;cout << "Hello Lua :)" << endl;cout << "===============" << endl << endl;// char anyKey = 0;lua_State* L = lua_open();if( L == nullptr) {cout << "init Lua Environment Failed!!! " << endl;cout << "Press any key to exit ... ";getchar();return -1;}luaL_openlibs(L);lua_pushcfunction(L,myTest);lua_setglobal(L,"myTest");int ret = luaL_dofile(L, "script/test.lua");if( ret != 0 ) {const char* error = lua_tostring(L,-1);cout << "========== Error occurred =========="<< endl;cout << "execute test.lua , Meet some error" << endl;cout << "Error : " << endl << "\t"  << error << endl;cout << "==================================" << endl;cout << "Press any Key to quit ... ";getchar();} else {cout << "execute test.lua Successfully :) " << endl;cout << "Press any Key to quit ... ";getchar();// cin.get(anyKey);}return 0;
}


--
-- script/test.lua
--
myTest(333, "Hello World", 456.7, "Google")--[[
nArgs = 4
==================================================
[1] = 333
[2] = Hello World
[3] = 456.7
[4] = Google
==================================================
--]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742504.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何强制删除文件夹

前几天下载了ZeroTier,不知道是哪里出问题了,手动删除文件夹一直不成功,一直提示“你需要xxx权限才能删除改文件夹”,就算我修改了文件夹所有者有无济于事,在网上找了很多方法都没用,比如说“shift+del”,还是会提示我权限不够 后面找到一个方法终于解决了 每次删文件都提…

pdf.js源码分析-字体加载流程

pdf.js中的字体加载流程,下面演示一种Type1的字体的加载流程,会把一些兼容性的内容省去,只记录字体数据的加载过程中涉及到的方法和作用:evaluator.js -> handleSetFont:操作符列表中加载字体 evaluator.js -> loadFont:加载字体的方法 evaluator.js -> preEval…

vmware个人版免费

官方个人免费版本的VMware产品 2024年5月15日,PC虚拟巨头VMware宣布旗下的两款产品VMware Workstation Pro和VMware Fusion Pro即日起对个人用户免费开放。博通官网注册账号 打开地址:https://www.broadcom.com/ 登录 https://support.broadcom.com/web/ecx/home#.下载安装免…

企业微信对接

基本概念corpid 每个企业都拥有唯一的corpid,获取此信息可在管理后台“我的企业”-“企业信息”下查看“企业ID”(需要有管理员权限) userid 每个成员都有唯一的userid,即所谓“账号”。在管理后台->“通讯录”->点进某个成员的详情页,可以看到。 部门id 每个部门都…

【unity开发】怎么下载国际版的unity编辑器版本

有一天从公司那接手了一个项目,然后发现那个项目的版本我没有,我就去unity官网下载。 下载完了发现还是版本不对。 仔细一看发现,他们用的版本号末尾少了个"c1"。c1的意思是中国特供版,好像是说有微信api的支持。那么我应该怎么做呢? 下面随便一个版本为例子1.点…

html+js实现选中左边的数据到右边

效果后台要开发个功能,给游戏内的用户赠送道具,先把道具列表展示,然后选择要增送的道具,可以加上道具图片之类的,美化 index.html 页面没有美化,只是实现了效果。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&qu…

《代理选择与反爬虫策略探究:如何优化网络爬虫效率与稳定性》

本文全面介绍了在选择合适的代理时应考虑的因素,涵盖了各种代理类型(如高匿代理、隧道代理等)的特点及其适用场景。文章深入探讨了常见的反爬虫策略,以及如何通过调整爬虫策略来应对这些策略,从而提升爬虫的效率和稳定性。适合对网络爬虫开发和代理技术感兴趣的读者阅读。…

Redis部署与使用

一、关系型数据库与非关系型数据库 1.关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。 主流的关系型数据库…

excel表格中怎样将一列的数值全部加上一个数值

1、打开目标文件2、然后在B1或者其它单元格中输入数字“10”,如图所示。3、然后鼠标右击此单元格,在右键菜单中执行“复制”命令。4、然后选中要加10的所有数据,在右键菜单中点击“选择性粘贴”选项5、然后在出现的窗口中,点击运算区域的“加”选项,进行确定。6、完成以上…

CRC我就拿下了

国人讲CRC的没有什么能讲明白的文章,除了一篇《我学习 CRC32、CRC16、CRC 原理和算法的总结(与 WINRAR 结果一致)》,这里先感谢他,另,他也有一些没有说明白的地方,怎么说呢,还是鄙人自己来吧。 我弄明白CRC这个原理和算法主要参考的是上面的国人的那篇和这个外国的《A …

在vscode中打开浏览器

在html页面右键,选择 open in default browser 即可打开默认浏览器 布局——<!-- 文档类型为html --> <!DOCTYPE html> <html lang="en"> <head><!-- 字符集为utf-8 --><meta charset="UTF-8"><!-- 设置浏览器兼容…

[Java]“不同族”基本数据类型间只能“强转”吗?

本篇文章标题即摘要,就不赘述。 如果文中有不妥或不对的,多多交流。【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18298193 出自【进步*于辰的博客】本文阐述需要计算不同位二进制的表示范围,引用博文《[MySQ…