当前位置: 首页 > 编程笔记 >

C语言中通过LUA API访问LUA脚本变量的简单例子

长孙宜
2023-03-14
本文向大家介绍C语言中通过LUA API访问LUA脚本变量的简单例子,包括了C语言中通过LUA API访问LUA脚本变量的简单例子的使用技巧和注意事项,需要的朋友参考一下

1.简介

这一节介绍一些关于栈操作、数据类型判断的LUA API,可以使用这些函数获得脚本中的变量值。

2.步骤

编写 test01.lua 脚本,在VS2003中创建控制台C++程序并正确配置,执行查看结果,修改test02.lua脚本后查看执行结果

3.测试脚本

以下是用来测试的lua脚本


function plustwo(x)    

      local a = 2;    

      return x+a;

end;

rows = 6;

cols = plustwo(rows);


上面的脚本定义了一个函数、两个全局变量(LUA脚本变量默认是全局的)。之后的C++程序中,我们将通过栈操作获得这两个变量 rows, cols。

4.控制台程序


#include <iostream>

extern "C" {     #include "lua.h"     #include "lauxlib.h"     #include "lualib.h" }

using namespace std;

int main(int argc, char* argv[]) {     cout << "01_Read_Stack" << endl;

    /**//* Create a LUA VMachine */     lua_State *L = lua_open();     luaopen_base(L);     luaopen_table(L);     luaL_openlibs(L);     luaopen_string(L);     luaopen_math(L);

    int iError;     iError = luaL_loadfile(L, "../test01.lua");     if (iError)     {         cout << "Load script FAILED!" << lua_tostring(L, -1)<< endl;         lua_close(L);         return 1;     }     iError = lua_pcall(L, 0, 0, 0);     if (iError)     {         cout << "pcall FAILED"<< lua_tostring(L, -1)<< iError<< endl;         lua_close(L);         return 1;     }         lua_getglobal(L, "rows");     lua_getglobal(L, "cols");

    if (!lua_isnumber(L, -2))    {         cout << "[rows] is not a number" << endl;         lua_close(L);         return 1;     }     if (!lua_isnumber(L, -1))     {         cout << "[cols] is not a number" << endl;         lua_close(L);         return 1;     }     cout << "[rows]"          << static_cast<int> (lua_tonumber(L, -2))          << "[cols]"          << static_cast<int> (lua_tonumber(L, -1))          << endl;

    lua_pop(L,2);     lua_close(L);     return 0; }

 类似资料:
  • 问题内容: 当我看到Lua时,我唯一读过的就是“伟大的嵌入”,“快速”,“轻巧”,而且比其他任何东西都更常见:“魔兽世界”或简称“ WoW”。 为什么仅限于将整个内容嵌入到另一个应用程序中?为什么不像使用Python或Perl那样编写通用脚本? Lua在速度和内存使用(最快的脚本语言afaik)等方面似乎做得很好,为什么为什么我从来没有看到Lua被用作自动化任务的“桌面脚本语言”?例如: 重命名一

  • 本文向大家介绍Lua脚本语言概述,包括了Lua脚本语言概述的使用技巧和注意事项,需要的朋友参考一下 Lua是什么 Lua是一中嵌入式的脚本语言。 Lua语言可以独立进行编程,但这不是其主要的使用方式。Lua虽然有动态、灵活的语法提供强大的功能,但并不像 Java、Python 等一样有一个完善的库(但仍存在一定数量的第三方库),这不是缺陷,而是和其定位有关。 Lua最典型的用法,是作为一个库,嵌入

  • 本文向大家介绍Lua教程(一):Lua脚本语言介绍,包括了Lua教程(一):Lua脚本语言介绍的使用技巧和注意事项,需要的朋友参考一下 Lua 是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。 Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。 它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。 Lua 以一个用 clean C 写成的

  • 在讲解变量之前,我们先来看一段代码: int x; int y=0; char z='A'; x=6; 在上面这段代码中出现的 x、y、z 都是一个 C 变量。 变量是编程语言中不可或缺的组成部分。它承载这存贮数据以及计算结果等等功能,顾名思义变量就是可以再计算执行过程中变化的量。这节课我们来学习下到底什么是变量。 1. 什么是变量? 变量是程序用来保存计算结果的存储单元,为了方便访问这块存储单

  • 本文向大家介绍Lua脚本语言入门笔记,包括了Lua脚本语言入门笔记的使用技巧和注意事项,需要的朋友参考一下 什么是Lua   Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henri

  • 问题内容: 我刚刚开始学习Go,有些事情引起了我的注意。 功能如下: 等等。作为来自C语言的人,我想知道: 1)是否可以通过变量本身来调用这些函数(如中所述)? 2)这是一种常见的做法(定义泛型函数并让其找出类型及其应执行的操作),还是仅用于内置类型。例如,如果我要定义自己的类型,例如,是否应该在类型内定义和附加函数,并将其命名为 还是应该定义一个接收列表的函数,例如: 问题答案: 1-您不能将内