Lua與C 互動初探之C 呼叫Lua

2021-08-18 15:47:04 字數 2531 閱讀 1824

一、lua環境的搭建

他包括以下元件:

lua examples: 包含lua使用的一些例子。

luaforwindows documentation :luaforwindows這款軟體的一些說明

quickluatour : lua快速入門嚮導,沒什麼用,看看就好

scite:lua的乙個不錯的文字編輯器。可以在裡面測試一些lua**,可以執行測試。前提是要先儲存檔案在執行,否則他沒有任何反應。別問我是怎麼知道的,心塞塞

documentation:裡面包含lua的幫助文件,最有用的就是他了吧。

安裝好後lua的環境就算是搭建好了。我們用命令列簡單來測試一下:

ok,木有問題

二、vs環境配置

選中專案,右鍵->屬性->定位到vc++目錄項

在"可執行檔案目錄"裡新增上lua的安裝目錄。過程如下:

定位到lua的安裝資料夾,我的是:

確定後返回

用同樣的步驟,將"lua安裝目錄\5.1\include"新增到"包含目錄";

將"lua安裝目錄\5.1\lib"新增到"庫目錄";

跳到"聯結器"的"輸入"欄。將"附加依賴項"中新增上"lua51.lib;lua5.1.lib";

至此環境基本就配置好了。類似下面:

現在我們用**測試一遍:

按 ctrl+c 複製**

按 ctrl+c 複製**

是不是木有問題啦╮(╯▽╰)╭

喏,我們親愛的world君

lua與c++的互動測試

上面我們已經把需要的環境什麼的都配置好了,現在重頭戲上場( ̄︶ ̄)

我們建乙個test.lua檔案;

function

communicate(name)

return ("

hello

"..name.."

, i`m in lua");

end

我們呼叫lua檔案的cpp**

#include "

stdafx.h

"#include

#include

using

namespace

std;

extern"c

"void

main()

//載入lua檔案

int bret = lual_loadfile(l, "

test.lua");

if(bret)

//執行lua檔案

bret = lua_pcall(l, 0, 0, 0

);

if(bret)

//讀取函式

lua_getglobal(l, "

communicate

"); //

獲取函式,壓入棧中

lua_pushstring(l, "

zack

"); //

壓入引數

int iret = lua_pcall(l, 1, 1, 0);//

呼叫函式,呼叫完成以後,會將返回值壓入棧中,第乙個1表示引數個數,第二個1表示返回結果個數。

if (iret) //

呼叫出錯

if (lua_isstring(l, -1)) //

取值輸出

//關閉state

lua_close(l);

system(

"pause");

return

;}

結果:

Lua與C 互動初探之C 呼叫Lua

lua與c 互動初探之c 呼叫lua 一 lua環境的搭建 他包括以下元件 lua examples 包含lua使用的一些例子。luaforwindows documentation luaforwindows這款軟體的一些說明 quickluatour lua快速入門嚮導,沒什麼用,看看就好 do...

Lua與C 互動初探之C 呼叫Lua

一 lua環境的搭建 他包括以下元件 lua examples 包含lua使用的一些例子。luaforwindows documentation luaforwindows這款軟體的一些說明 quickluatour lua快速入門嚮導,沒什麼用,看看就好 documentation 裡面包含lua...

lua與C(一) C呼叫lua

lua和c有兩種關係 一種是在lua中呼叫c的函式,c稱為庫 一種是c中呼叫lua,c就稱為應用程式 此時c中包含了lua的直譯器 c 部分 注意在c 中,通常要把lua的一些標頭檔案定義在extern c 中,因為他們是c語言實現的。1.作為應用程式呼叫lua char buffer print ...