准备工作
- 引入Lua库
- 导入使用到的相关头文件
1 2 3 4 5 6 |
#include <iostream> extern "C" { include <lua.h> include <lauxlib.h> include <lualib.h> } |
创建程序C++,创建好lua相关项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <iostream> extern "C" { #include <lua.h> #include <lauxlib.h> #include <lualib.h> } int main() { lua_State * lua = luaL_newstate(); luaL_openlibs(lua); luaopen_base(lua); if (luaL_loadfile(lua,"main.lua")) { const std::string error = lua_tostring(lua,-1); std::cout << "lua load error" << error; return -1; } if (lua_pcall(lua,0,0,0)) { const std::string error = lua_tostring(lua,-1); std::cout << "lua pcall error" << error; return -1; } system("pause"); return 0; } |
编写C/C++函数并对函数进行注册
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <iostream> extern "C" { #include <lua.h> #include <lauxlib.h> #include <lualib.h> } int CTest(lua_State * L) {//新添加的函数 printf("C++-lua\n"); return 0; } int main() { lua_State * lua = luaL_newstate(); luaL_openlibs(lua); luaopen_base(lua); lua_register(lua,"ctest",CTest);//注册 if (luaL_loadfile(lua,"main.lua")) { const std::string error = lua_tostring(lua,-1); std::cout << "lua load error" << error; return -1; } if (lua_pcall(lua,0,0,0)) { const std::string error = lua_tostring(lua,-1); std::cout << "lua pcall error" << error; return -1; } system("pause"); return 0; } |
在lua文件中调用相关程序
main.lua
1 |
ctest() |
本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Lua_基础 保留值&&变量09/27
- ♥ C++_调用 Lua函数:错误处理10/11
- ♥ Lua程序设计:一10/18
- ♥ C++_调用 Lua内容:全局表 获取&&设置10/09
- ♥ Lua程序设计:四02/15
- ♥ CLion:配置C++下lua开发环境06/03