一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Lua - C語言中通過LUA API訪問LUA腳本變量的簡單例子

C語言中通過LUA API訪問LUA腳本變量的簡單例子

2020-04-16 13:38腳本之家 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;
}

 

延伸 · 閱讀

精彩推薦
  • LuaLua實現__add方法重載示例

    Lua實現__add方法重載示例

    這篇文章主要介紹了Lua實現__add方法重載示例,本文直接給出實現代碼,需要的朋友可以參考下 ...

    腳本之家7452020-04-24
  • Lua深入探究Lua中的解析表達式

    深入探究Lua中的解析表達式

    這篇文章主要介紹了深入探究Lua中的解析表達式,對于其語法部分的說明和示例都超詳細,極力推薦此文!需要的朋友可以參考下 ...

    腳本之家3542020-05-05
  • LuaLua中table庫函數方法介紹

    Lua中table庫函數方法介紹

    這篇文章主要介紹了Lua中table庫函數方法介紹,本文講解了concat、insert、maxn、remove、sort、foreachi等方法,需要的朋友可以參考下 ...

    腳本之家2502020-04-17
  • LuaLua和C語言的交互詳解

    Lua和C語言的交互詳解

    這篇文章主要介紹了Lua和C語言的交互詳解,Lua和C語言通過棧完成交互,本文結合代碼實例詳細講解了交互的方法,需要的朋友可以參考下 ...

    果凍想3702020-04-14
  • LuaLua教程(二):基礎知識、類型與值介紹

    Lua教程(二):基礎知識、類型與值介紹

    這篇文章主要介紹了Lua教程(二):基礎知識、類型與值介紹,本文講解了Hello World程序、代碼規范、全局變量、類型與值等內容,需要的朋友可以參考下 ...

    腳本之家5922020-04-28
  • LuaLua簡介、編譯安裝教程及變量等語法介紹

    Lua簡介、編譯安裝教程及變量等語法介紹

    這篇文章主要介紹了Lua簡介、編譯安裝教程及變量等語法介紹,本文同時講解了lua注釋語法、Lua命令行方式等內容,需要的朋友可以參考下 ...

    junjie3632020-04-14
  • LuaLua中計算、執行字符串中Lua代碼的方法

    Lua中計算、執行字符串中Lua代碼的方法

    這篇文章主要介紹了Lua中計算、執行字符串中Lua代碼的方法,類似JavaScript中eval函數的功能,在Lua中也可以實現,需要的朋友可以參考下 ...

    腳本之家6322020-04-30
  • LuaLua中的元方法__newindex詳解

    Lua中的元方法__newindex詳解

    這篇文章主要介紹了Lua中的元方法__newindex詳解,本文講解了查詢與更新、監控賦值、通過table給另一個table賦值等內容,需要的朋友可以參考下 ...

    笨木頭8872020-04-09
主站蜘蛛池模板: 成人国产精品一级毛片视频 | 91视频99 | 欧美又大又粗又爽视频 | 欧美一级高清免费a | 亚洲欧美一区二区三区不卡 | 高清国语自产拍免费视频国产 | 亚洲欧美日韩在线观看看另类 | 特黄特色一级aa毛片免费观看 | 无遮挡h肉动漫在线观看电车 | 视频在线播放 | 国产成人毛片 | 亚洲邪恶天堂影院在线观看 | 国产在视频线在精品 | 久久er国产精品免费观看2 | 久久国产加勒比精品无码 | 亚洲视频1区 | 美女露鸡鸡 | 色婷婷激婷婷深爱五月老司机 | 四虎欧美| 精品区2区3区4区产品乱码9 | 国产精品久久免费观看 | 国产第一福利视频导航在线 | 成人福利视频网址 | 免费人成网址在线观看国内 | 日本xx高清视频免费观看 | 国产尤物精品视频 | 成人免费视频播放 | ai换脸杨幂被c在线观看 | 日本漫画工囗全彩内番e绅 日本伦理动漫在线观看 | 国产高清在线播放刘婷91 | 九九热免费在线观看 | 青草免费在线观看 | 微福利92合集| 热99这里有精品综合久久 | 无码国产成人午夜在线观看不卡 | 日本免费一区二区三区四区五六区 | 学校捏奶揉下面污文h | www.日日爱| 99热久久国产精品这里 | 大ji吧快给我别停受不了视频 | 四虎影院久久 |