Lua學習 C 程式設定Lua全域性變數值

2021-07-23 15:24:02 字數 1584 閱讀 3484

在c++程式中,不僅能夠獲得lua全域性變數的值,還可以重新賦予lua全域性變數新的值,同時也可以建立新的全域性變數,這些全域性變數在c++程式和lua指令碼程式中都是可以動態修改的。

下面是乙個簡單的示例:

test.cpp

#include

#include

#include

extern "c" ;

int main(void)

lual_openlibs(l);

int inum = 100;

lua_pushnumber(l,inum);

lua_setglobal(l,"g_num");

lua_getglobal(l,"testfun");

lua_pcall(l,0,0,0);

lua_close(l);

return 0;

}test.lua

g_num = 0;

function testfun()

print(g_num);

endzhu@debian:~/text$ gcc -o text test.cpp -lpthread -i /home/zhu/server-youlan/3rd/lua/ -l /home/zhu/server-youlan/3rd/lua/  /home/zhu/server-youlan/3rd/lua/liblua.a -llua -lm -ldl -g

zhu@debian:~/text$ ./text

100.0

test.cpp

extern "c"

#pragma comment(lib,"../../lib/debug/lualib.lib")

int main(void)

lual_openlibs(l);

int inum = 100;

char szstr = "world";

lua_pushnumber(l,inum);

lua_setglobal(l,"g_num");

lua_pushstring(l,szstr);

lua_setglobal(l,"g_str");

lua_pushnumber(l,inum);

lua_setglobal(l,"cpp_num");

lua_pushstring(l,szstr);

lua_setglobal(l,"cpp_str");

lua_getglobal(l,"testfun");

lua_pcall(l,0,0,0);

lua_close(l);

return 0;}

test.lua

g_num = 0;

g_str = "hello";

function testfun()

print(g_num);

print(g_str);

print(cpp_num);

print(cpp_str);

end

lua呼叫c程式

鑑於lua5.4版本取消了lual register之後,網上教程的混亂,這裡以5.4版本為例,用lual setfuncs來代替。如下 ifdef cplusplus extern c else include include include include endif include inclu...

lua學習 lua與C C 程式的整合

lua與c c 互動,主要靠lua api和向lua註冊好的函式。如下圖 注 luaglue就是讓lua指令碼中可呼叫的c 函式的介面。即那些註冊的函式。這裡起關鍵作用的要數lua state的結構,這就得講一下lua環境和lua stack。lua環境 lua環境由所有可操作的資料構成,如編譯好的...

Lua基礎學習 Lua函式

函式主要用途 1 是作為呼叫語句使用。2 作為賦值語句的表示式使用。語法 區域性 全域性 function fun name 引數列表 函式體endfunction 定義函式關鍵字注意 1 在使用 lua 函式 變數時一定要先定義函式 變數 2 lua 函式不支援引數預設值,可以使用 or 解決。如...