C C 中使用lua作為配置檔案

2021-06-04 02:31:06 字數 799 閱讀 5902

配置檔案處理向來是很麻煩的事情,如果用ini要自己寫parser,用xml裝個libxml庫。

然而在使用awesome的過程中,我發現了他的配置檔案是用lua寫的,我瞬間想到了wow外掛程式= =

這個"配置檔案"裡竟然可以定義函式!比xml強大多了!

安裝lua後,就會出現lua.h , lualib.h , lauxlib.h這幾個庫

c++裡引用時需要extern "c"  使得編譯後的命名方式與c相同

嵌入lua的方式大概就是將lua**(檔案或輸入均可)構成乙個環境(state)

通過棧的方式取出變數甚至是函式。

下面是個example

#include #ifdef __cplusplus

extern "c"

#endif

int main()

--aplusb.lua檔案的內容~~

a=1b=2

function add(a,b)

return a+b

end

這裡最重要的一點是,由於不是單純的配置檔案,而是一種指令碼語言,所以它的"配置"功能相當強大!

下面是我偷懶寫的幾個讀入巨集..

#define loadi(name) dowhile(false)

#define load(type,name) dowhile(false)

更複雜的功能還未學習,留個坑在這兒。

lua做配置檔案

id col1 col2 col3 id1value1 1 value1 2 value1 3 id2value2 1 value2 2 value2 3 id3value3 1 value3 2 value3 3 以乙個m行n列的 為例 儲存結構 dictionary 第一層 key 行id,va...

delphi中使用配置檔案 ini

unit zs dyjpz inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls,extctrls,printers,winspool,inifiles typ...

ThinkPHP5 1 使用檔案作為配置檔案

但是查詢多方資料,未能找到可以靜態修改配置,tp5.1提供的config set 函式只能動態的修改配置檔案,而且僅限於本控制器內,實際配置檔案並沒有改變,這顯然不符合我們的要求.經查詢多方資料後,發現這篇最為靠譜,但是實測無效,進入config函式後,發現tp5.1中,config函式已經取消了e...