C++でLua関数インスタンスを呼び出す
1929 ワード
ああ、今日はちょっと気分が悪いので、うるさいことは言わないでください.(ナレーション:よかった…)
前章転送ドア://www.jb 51.net/article/55096.htm
前の章の紹介を経て、Luaのスタックに詳しいと信じています.まだよく知らない友达なら、前のチュートリアルを何度も見たり、コードを何度も叩いたりすることをお勧めします.
では、Luaのスタックに慣れていれば、次の内容は簡単です.
今日はC++がLuaの関数を呼び出す方法を見てみましょう.まず、Luaファイルがどのようになっているかを見てみましょう.
複数のhelloAdd関数が表示されます.では、C++でこの関数を呼び出します.
(ナレーション:getglobalも使うに違いない、毎回あるよ~!=)
直接コードを入力しました:
手順を簡単に説明します.
1)実行スクリプト(ナレーション:くだらないことを言うのは知っています...)
2)helloAdd関数をスタックに配置する:lua_getglobal(pL, “helloAdd”) .(ナレーション:ほら、わかるよ~!)
3)helloAddには2つのパラメータがあり、luaにパラメータを渡すので、2つのパラメータはスタックに入れます.
4)第2ステップと第3ステップではすでに関数に必要なデータをスタックに入れており,次にluaにスタックにデータを取りに行くように伝え,関数~!呼び出しlua_コールでいいです.注釈はもう詳しくなっています.ここでは繰り返しません.
(ナレーション:簡単すぎるでしょう.どうせ何をしても、荷物をスタックに捨てて、スタックから荷物を取ればOKです.出て行ってもいいですよ.後で教程を書きます.ツッコミを担当してください.)
さあ、みんなはナレーションを無視して、教程などはやはり私が書いたほうがいいです.主に、この仕事にツッコミを入れて、私の身分に合わないです.
(ナレーション:…ショックを受けたような気がします)
本章はこれで終わり、簡単ですよね?~
次章ではLuaでC++を呼び出す関数をご紹介します~!(ナレーション:これ好き~!)
前章転送ドア://www.jb 51.net/article/55096.htm
前の章の紹介を経て、Luaのスタックに詳しいと信じています.まだよく知らない友达なら、前のチュートリアルを何度も見たり、コードを何度も叩いたりすることをお勧めします.
では、Luaのスタックに慣れていれば、次の内容は簡単です.
今日はC++がLuaの関数を呼び出す方法を見てみましょう.まず、Luaファイルがどのようになっているかを見てみましょう.
-- helloLua.lua
myName = "beauty girl"
helloTable = {name = "mutou", IQ = 125}
function helloAdd(num1, num2)
return (num1 + num2)
end;
複数のhelloAdd関数が表示されます.では、C++でこの関数を呼び出します.
(ナレーション:getglobalも使うに違いない、毎回あるよ~!=)
直接コードを入力しました:
/* C++ lua */
void HelloLua::demo3() {
lua_State* pL = lua_open();
luaopen_base(pL);
/* */
luaL_dofile(pL, "helloLua.lua");
/* helloAdd */
lua_getglobal(pL, "helloAdd");
/* */
lua_pushnumber(pL, 10);
lua_pushnumber(pL, 5);
/*
, , ,
Lua , ,
*/
lua_call(pL, 2, 1);
int iResult = lua_tonumber(pL, -1);
CCLOG("iResult = %d", iResult);
}
手順を簡単に説明します.
1)実行スクリプト(ナレーション:くだらないことを言うのは知っています...)
2)helloAdd関数をスタックに配置する:lua_getglobal(pL, “helloAdd”) .(ナレーション:ほら、わかるよ~!)
3)helloAddには2つのパラメータがあり、luaにパラメータを渡すので、2つのパラメータはスタックに入れます.
4)第2ステップと第3ステップではすでに関数に必要なデータをスタックに入れており,次にluaにスタックにデータを取りに行くように伝え,関数~!呼び出しlua_コールでいいです.注釈はもう詳しくなっています.ここでは繰り返しません.
(ナレーション:簡単すぎるでしょう.どうせ何をしても、荷物をスタックに捨てて、スタックから荷物を取ればOKです.出て行ってもいいですよ.後で教程を書きます.ツッコミを担当してください.)
さあ、みんなはナレーションを無視して、教程などはやはり私が書いたほうがいいです.主に、この仕事にツッコミを入れて、私の身分に合わないです.
(ナレーション:…ショックを受けたような気がします)
本章はこれで終わり、簡単ですよね?~
次章ではLuaでC++を呼び出す関数をご紹介します~!(ナレーション:これ好き~!)