首页后端开发ASP.NET一招搞定C++调用Lua代码配置文件函数(附代码)

一招搞定C++调用Lua代码配置文件函数(附代码)

时间2024-01-30 22:23:02发布访客分类ASP.NET浏览500
导读:收集整理的这篇文章主要介绍了一招搞定C++调用Lua代码配置文件函数(附代码),觉得挺不错的,现在分享给大家,也给大家做个参考。Lua文件里面是有两个函数的,然后用cpp文件调用代码,最后,还有很关键的一步,编译时,我们需要加上附加选项:...
收集整理的这篇文章主要介绍了一招搞定C++调用Lua代码配置文件函数(附代码),觉得挺不错的,现在分享给大家,也给大家做个参考。Lua文件里面是有两个函数的,然后用cpp文件调用代码,最后,还有很关键的一步,编译时,我们需要加上附加选项: g++ main.cpp -o main -llua -ldl。过程看起来简单,还是需要动手操作的。

首先你要安装lua的dev,安装很简单:

yum install lua-devel

即可,很多linux系统自带Lua但是没有dev,有点小坑。

下面是Lua文件,里面就两个函数:

function add(a, b)    return a + b endfunction hello()    PRint("Hello Lua!!!")end

之后是cpp文件的调用代码:

#includeiostream>
    #includestring>
    using std::cout;
    using std::endl;
    using std::string;
//extern的意义,将下面文件当成C风格文件使用extern "C"{
        #includelua.h>
        #includelauxlib.h>
        #includelualib.h>
}
int main(){
        //创建环境    lua_state *L = luaL_newstate();
    if(L == NULL)    {
               cout  "State error"  endl;
            return -1;
     }
           //加载库    luaL_oPEnlibs(L);
        const string file = "func.lua";
        // 加载文件    int ret = luaL_dofile(L, file.c_str());
    if(ret)    {
               cout  "dofile error"  endl;
            return -1;
     }
           //hello函数没有参数,直接调用    lua_getglobal(L, "hello");
        lua_pcall(L, 0, 0, 0);
     //三个0含义,0实参,0返回值,0自定义错误处理    lua_getglobal(L, "add");
          //向add函数传入两个参数,这里直接传了1和2,传变量也ok    lua_pushnumber(L, 1);
          lua_pushnumber(L, 2);
         lua_pcall(L,2,1,0);
                //返回值被放在-1的位置上    cout  lua_tonumber(L, -1)  endl;
        lua_close(L);
        return 0;
}
    

最后,还有很关键的一步,编译时,我们需要加上附加选项:

g++ main.cpp -o main -llua -ldl

看看结果:

大功告成

相关推荐:

记第一次lua和C互相调用的例子

lua与c语言互相调用

c++如何调用PHP的函数

以上就是一招搞定C++调用Lua代码配置文件函数(附代码)的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: 必学!C++实现多态机制满足的基本...下一篇:技术解答面向对象的初步认识(C+...猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 一招搞定C++调用Lua代码配置文件函数(附代码)
本文地址: https://pptw.com/jishu/593115.html
ASP.NET全栈开发之在MVC中使用服务端验证(二) 技术解答面向对象的初步认识(C++ 类)

游客 回复需填写必要信息