8、Lua中调用C++函数
来源:互联网 发布:java js解析器 编辑:程序博客网 时间:2024/06/08 08:57
来往来往,有来有往才能叫做来往。既然C/C++和lua是好亲戚,那就会有来有往。之前,我们一直在讨论在C/C++中如何使用Lua提供的变量和函数。从这篇文章开始,咱们来讨论一下如何在Lua中使用C/C++提供的变量、函数甚至类。
当然,我们还是假设lua是嵌入C/C++程序里面的。所以,使用lua依然是为了扩展C/C++。这个目的一定要先明确了。接下来的事情就比较容易了。
既然,想让lua调用C/C++的函数。首先,肯定是让lua知道C/C++函数的存在,然后才能调用。再次明确一下我们使用lua是为了扩展C/C++的。就像一个家庭一样,C/C++作为一家之长,当然也就需要主动一点。废话少说,代码说话。
LuaCallCFun.lua
local x=123local y=456print("lua: x(" .. x .. ") + y(" .. y .. ") = " .. cf_Add(x, y))
LuaCallCFun.cpp
#include <lua.hpp>int cf_Add(lua_State *L){ int x = lua_tonumber(L, 1); int y = lua_tonumber(L, 2); int ret = x + y; printf("cf_Add: x(%d) + y(%d) = %d\n", x, y, ret); lua_pushnumber(L, ret); return 1;}int main(int argc, char * argv[]){ lua_State *L = lua_open(); luaopen_base(L); // 往lua中注册函数 lua_pushvalue(L, LUA_GLOBALSINDEX); lua_pushstring(L, "cf_Add"); lua_pushcfunction(L, cf_Add); lua_rawset(L,-3); lua_pop(L,1); luaL_dofile(L, "LuaCallCFun.lua"); lua_close(L);}
测试环境
运行结果
阅读全文
0 0
- C中调用Lua函数
- Lua中调用C函数
- C中调用Lua函数
- c中调用Lua函数
- Lua 在Lua中调用C函数
- C/C++中调用LUA函数
- Lua中调用C/C++函数
- Lua中调用C/C++函数 (转)
- 在Lua中调用C函数
- C/C++中调用LUA函数
- Lua中调用C/C++函数 (转)
- Lua中调用C/C++函数
- Lua中调用C/C++函数
- C/C++中调用LUA函数
- C/C++中调用LUA函数
- [lua]C调用lua函数
- Lua中调用C函数(lua-5.2.3)
- Lua 在C程序中调用Lua函数
- 算法练习(13):Regular Expression Matching
- 多线程编程基础02
- 三大WEB服务器对比分析(apache ,lighttpd,nginx)
- 7、C++处理Lua中的存在嵌套(循环)的Table
- jdk8 tomcat8 环境下无法正常用dubbo
- 8、Lua中调用C++函数
- Eclipse搭建maven项目—HelloWorld程序(2)
- 【原创】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
- Matlab-------regexp正则表达式
- 解决进入启动页出现空白和进入下个界面出现布局下移
- 9、Lua使用C++中的类——调用方法
- 自定义圆形进度条
- WebSocket、Http、ajax轮询、poll
- Jenkins从无到有入门