Lua指令碼實踐2 LuaPlus中關於函式的呼叫

2021-05-27 11:20:12 字數 1448 閱讀 5576

lua和c++ 之間的函式呼叫是應用最廣的,呼叫方式也和豐富。

1.全域性函式被lua語句呼叫

#include using namespace std;

#include "..\..\luaplus\src\luaplus\luaplus.h"

#define lua_ok 0

void show(int a, int b)

全域性函式show在lua中可以換個名字呼叫,利用registerdirect()函式將show註冊到指令碼中以add取代之。然後在指令碼中執行add函式,得到的結果和執行show是一樣的。

2.對.lua指令碼檔案中的函式呼叫

1)在lua指令碼內執行。

對於lua中的函式的呼叫方式也很多,就舉幾個例子吧。還是上免得程式不變,只更改.lua檔案中的內容

function add(x, y) 

return x+y;

endprint(add(3,5));

執行結果,螢幕上會輸出8.

2)在lua指令碼內的函式被c++執行。

除了可以在lua內中執行以外,還可以在c++環境中執行。把上面的那個lua檔案最後的那行列印語句刪掉,用下面的c++語句呼叫add函式。

#include using namespace std;

#include "..\..\luaplus\src\luaplus\luaplus.h"

#define lua_ok 0

int main()

結果是一樣的。

3)

c++函式被

lua指令碼內的函式執行。

這個呼叫就有點意思了,在lua指令碼裡可以這麼寫

function add(x, y) 

printnumber(x,y);

end

也就是add函式呼叫了乙個名字叫printnumber()的函式。而這個printnumber函式在**呢?讓我們看看c++**

#include

using namespace std;

#include "..\..\luaplus\src\luaplus\luaplus.h"

#define lua_ok 0

void show(int x,int y)

原來printnumber只是乙個中間字串,他指向了c++函式show();

如何在C 中整合Lua指令碼 LuaPlus篇

如何在c 中整合lua指令碼 luaplus篇 去年我作了乙個lua指令碼的c 包裝,有許多朋友感興趣,並嘗試使用,我感到受寵若驚。事實上,我作的包裝,學習的目的比較強,它還是有許多缺陷的。為了讓朋友們少走彎路,我推薦使用luaplus作為c 的包裝。luaplus是lua的c 增強,也就是說,lu...

如何在C 中整合Lua指令碼 LuaPlus篇

去年我作了乙個lua指令碼的c 包裝,有許多朋友感興趣,並嘗試使用,我感到受寵若驚。事實上,我作的包裝,學習的目的比較強,它還是有許多缺陷的。為了讓朋友們少走彎路,我推薦使用luaplus作為c 的包裝。我將在下面說明,如何使用luaplus,以及如何更方便的讓luaplus與c 的類合作無間。1....

Cocos2d x 指令碼語言Lua使用

cocos2d x 指令碼語言lua使用 前面幾篇部落格已經把lua的相關基礎知識介紹了。本篇部落格就來介紹一下,怎樣在cocos2d x專案中使用lua這門指令碼語言進行開發。因為筆者使用的時mac系統。所以演示給大家的時在xcode其中執行我們的cocos2d x專案。介紹一下筆者的開發環境 p...