對於lua 5.2, lua 5.2是2023年發布的。國內使用5.1的居多。
lual_register 和lual_openlibs。這些功能大多數都廢棄了
lual_register這個註冊c++的庫函式,功能被廢棄了。新的api lual_newlib 網上的資料不多。
下面給出乙個使用 lual_newlib的例子來呼叫c++ 函式
//this is c++ code
#include "stdafx.h"
#include "math.h"
extern "c" ;
//this is callback function for the lua
static int getsin(lua_state* luastate)
static const lual_reg testlib = ,
};
int luaopen
getlib(lua_state* l)
int main(int argc, _tchar* argv)
cfg.lua的**在這裡
function foo(x, y)
--return (x^2 * math.sin(y))/(1 - x)
--return x + y
return sinlib.getsin(x) + y
end
lua5 2模組註冊
lua 5.2不鼓勵使用lual register把模組註冊到全域性域,而是使用lual newlib。我們首先看下lual newlib,它是乙個巨集,如下 define lual newlib l,l lual newlibtable l,l lual setfuncs l,l,0 lual n...
lua5 2 帶你理解 ENV和 G
5.1之前,全域性變數儲存在 g這個table中,這樣的操作 a 1 相當於 g a 1 但在5.2之後,引入了 env叫做環境,與 g全域性變數表產生了一些混淆,需要從原理上做乙個理解。在5.2中,操作a 1 相當於 env a 1 這是乙個最基礎的認知改變,其次要格外注意 env不是全域性變數,...
對lua中 ENV表的理解 lua5 2版本以後
當我拿到 env表的時候,會去想這個 env表是幹什麼用的?首先看如下 1 print env 0x1d005f0 2print g 0x1d005f0 viewcode 看了上面的 就感覺 env表不就是 g表嗎?但 env表是不是全域性的呢?我又列印了 g表的內容 1 for k v in pa...