青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 119  文章 - 290  trackbacks - 0

博客搬家了哦,請移步
叫我abc

常用鏈接

留言簿(12)

隨筆分類

我的博客

搜索

  •  

積分與排名

  • 積分 - 306400
  • 排名 - 84

最新評論

閱讀排行榜

1.LUA初始化

lua_State* ls = lua_open();

luaL_loadlibs( ls ); //裝載基本環境,推薦

lua_close( ls ); //退出程序時執行

2.裝載模塊

2.1模塊聲明

l  模塊名稱不依賴于文件名

l  在每一個腳本文件內使用module關鍵字將腳本里的函數和變量納入特定模塊

比如:module( “ui_chat” , package.seeall )

包含了這一句的腳本文件內的函數和變量均屬于ui_chat模塊

l  不同的腳本文件可以聲明為相同的模塊,他們會合起來

l  相同文件名的腳本(不同路徑)可以聲明為不同的模塊

l  一個腳本文件內可以寫多個module聲明,因此它的內容可以歸屬到多個模塊(沒有必要這么做,因為跨模塊調用非常簡單)

2.2入口腳本

不可能將所有模塊的裝載寫入程序,因此要建立一個init.lua腳本,作為裝載其他模塊的唯一入口。

//為了無差別的處理普通文件和打包文件,不使用luaL_dofile

string buff( “init.lua” );

If ( luaL_dostring( ls , buff.c_str() ) != 0 )

{

         printf( “%s” , lua_tostring( ls , -1 ) );

}

2.3裝載所有模塊

可以在init.lua中,裝載其他模塊。裝載使用require(path),其中path腳本的路徑,比如說

a/b/c,也可以寫成a.b.c

require”a/b/c”

require”a.b.c”

模塊的裝載目錄在package.path中指定

 

3模塊間相互調用

因為每個模塊都注冊到全局表下,而全局表所有模塊可見。因此調用其他模塊的函數的形式就是模塊名+函數名。如:

ui_map.build_mark()

4C中調用lua函數

C中調用lua函數十分簡單,就是過程有些繁瑣。如果打算好好處理的話,還需要注意錯誤處理。比如要調用ui_main.enter( int  param )

lua_getglobal( ls , “ui_main” )

lua_getfield( ls ,  -1 , “main_enter” );

lua_remove( ls , -2 );

lua_pushnumber( ls , param );

lua_pcall( ls , 1 , 0 ,0 );

相信有很多lua c++wrapper可以更輕易的做到這些事情。

5載入打包文件

lua肯定不知道如何載入我們的打包文件,但是他的require機制提供了一個入口,允許我們定義一個loader,來載入require所請求的文件。

因此載入打包文件的loader大概可以這樣實現:通過路徑名,從打包文件中讀取數據,然后將數據交給loadstring或者loadbuffer

function MyPackLoader( moduleName )

         return loadstring( G_GetPackData( moduleName ) );

end

只要我們將MyPackLoader放進package.loaders即可

6注冊C++lua

存在一些lua c++wrapper,可以容易的將程序中的類和函數注冊到lua環境中,不過我比較懶,沒有嘗試這些。

我嘗試的是tolua++,一個自動化工具,他可以通過讀取定義文件,直接生成類和函數的注冊代碼。

定義文件可以單獨書寫,聲明需要注冊的類和函數。但是我不是很贊成這種方式,因為需要同步真正的頭文件和定義文件。

另一種就是可以在頭文件中增加特定的注釋,標記出需要注冊的函數,比如: 

class A : public B { //tolua_export

         //tolua_begin

         void func();

         void func2();

         //tolua_end

}; // tolua_export

由這些tolua_xxx的注釋,直接定義了注冊區域。

 

>tolua++ -o classbind.cpp class.h

 

PS:tolua++支持繼承和虛函數

7debug lua

lua提供了比較完善的debug接口的,包括單步執行、堆棧、變量查看。

為了將這些東西嵌入到自己的程序中,還需要做些工作。

 

簡單情況下,我們可以通過debug.sethook監聽到函數的調用、函數的返回,以及每一個語句的執行。當我們監聽到感興趣的內容之后,可以進入一個while(true),在這里通過執行lua語句查看感興趣的內容,像gdb一樣。

 

此外,還有兩個庫可以提供嵌入的debug支持(我沒有試驗)。

1.         luaEdit,這是一個獨立運行的IDE,但是他提供了一個dll,允許我們將他的IDE嵌入到程序中,調試指定的腳本。luaEdit目前尚無遠程調試功能

2.         remdebug,這是一個遠程調試庫,其目的就是為了嵌入其他程序而開發的,調試指令似乎與gdb也很相近。他需要luaSocketluaFileSystem的支持。

posted on 2008-06-12 22:18 LOGOS 閱讀(3780) 評論(2)  編輯 收藏 引用

FeedBack:
# re: 使用LUA 2008-06-12 22:27 陳梓瀚(vczh)
直接讀代碼然后生成注冊代碼啊……好主意,以后我有空也做一個給我自己的腳本用。一直覺得寫C++類的wrapper插件很麻煩。  回復  更多評論
  
# re: 使用LUA 2008-06-18 21:41 李侃
收下了,感謝你,鄰居  回復  更多評論
  

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲欧美清纯在线制服| 一区二区冒白浆视频| 在线免费一区三区| 激情成人综合| 曰韩精品一区二区| 亚洲第一主播视频| 亚洲欧洲综合另类在线| 日韩视频不卡中文| 99国产精品私拍| 亚洲一区一卡| 久久精品成人| 欧美大片国产精品| 99精品国产热久久91蜜凸| 一本色道久久88综合亚洲精品ⅰ| 欧美亚洲三区| 亚洲精品一二三区| 国产精品99久久久久久久久久久久| 中文在线资源观看网站视频免费不卡 | 欧美顶级艳妇交换群宴| 欧美精品日韩三级| 国产精品久久一级| 一区在线免费| 9l国产精品久久久久麻豆| 亚洲欧美国产三级| 欧美成人精品一区| 一个色综合导航| 久久嫩草精品久久久精品| 欧美视频一区二区三区四区| 国色天香一区二区| 一本色道久久88亚洲综合88| 久久天天躁狠狠躁夜夜爽蜜月 | 亚洲国产免费| 亚洲国产精品欧美一二99| 亚洲一区二区视频在线观看| 麻豆视频一区二区| 国产亚洲亚洲| 亚洲视频一区二区免费在线观看| 久久夜色精品亚洲噜噜国产mv | 亚洲精品免费在线播放| 欧美综合77777色婷婷| 亚洲国产精品va在线看黑人动漫| 午夜视频精品| 国产精品久久久久久亚洲调教| 亚洲激情成人网| 久久嫩草精品久久久精品一| 99成人在线| 欧美电影资源| 亚洲夫妻自拍| 久久久久久久成人| 亚洲欧美日韩国产一区| 亚洲深夜av| 毛片av中文字幕一区二区| 国产精品99久久久久久人| 欧美二区视频| 亚洲国产综合91精品麻豆| 久久精品国产第一区二区三区| 亚洲精品乱码久久久久久| 久久天天综合| 亚洲国产福利在线| 亚洲自拍偷拍福利| 99riav1国产精品视频| 久久亚洲国产成人| 亚洲亚洲精品三区日韩精品在线视频| 欧美日韩视频一区二区三区| 欧美精品免费观看二区| 在线精品在线| 久久亚洲精品一区| 亚洲欧美日韩一区二区三区在线| 欧美日本高清视频| 亚洲精美视频| 亚洲国产精品成人久久综合一区 | 久久精品亚洲精品国产欧美kt∨| 国产免费观看久久黄| 在线亚洲成人| 亚洲美女少妇无套啪啪呻吟| 欧美日韩视频第一区| 亚洲自拍偷拍色片视频| 99热在这里有精品免费| 国产精品久久久久秋霞鲁丝| 亚洲欧美一区二区精品久久久| 亚洲精品久久久久久下一站| 欧美深夜福利| 久久国产精品99久久久久久老狼 | 久久精品亚洲| 亚洲欧洲在线播放| 日韩视频在线观看一区二区| 欧美日韩一区二区精品| 欧美一级午夜免费电影| 亚洲欧美日韩国产一区二区| 国产主播一区二区三区四区| 欧美国产日韩一区二区| 欧美屁股在线| 欧美在线观看一区| 蜜桃av综合| 午夜精品福利在线| 久久影视精品| 亚洲一区二区三区四区视频| 久久精品91| 亚洲小视频在线| 久久久久在线观看| 亚洲一区二区精品| 久久久亚洲国产美女国产盗摄| 99视频国产精品免费观看| 欧美一区二区三区四区高清| 亚洲美女淫视频| 香蕉久久夜色精品国产使用方法 | 久久久在线视频| 欧美日韩国产影片| 噜噜噜在线观看免费视频日韩| 欧美激情一区在线观看| 久久精品欧洲| 国产精品毛片a∨一区二区三区| 免费国产一区二区| 国产精品成人观看视频免费| 欧美大片一区二区| 国产日韩欧美麻豆| 91久久中文字幕| 精品99一区二区三区| 亚洲一区二区三区免费观看| 亚洲精品一区二| 久久久噜噜噜久噜久久| 欧美一区二区三区免费看| 亚洲视频视频在线| 久久久99爱| 国产精品成人在线| 欧美黄色视屏| 黄色成人精品网站| 亚洲欧美福利一区二区| 99综合在线| 欧美成人情趣视频| 美女黄网久久| 国内精品久久久久久| 亚洲一区欧美激情| 亚洲夜间福利| 欧美欧美在线| 亚洲人成网站777色婷婷| 在线日韩成人| 久久亚洲国产精品一区二区 | 亚洲国产精品久久久久秋霞蜜臀 | 国产精品久久久久久久app| 最新国产成人av网站网址麻豆| 精品成人一区| 久久久av水蜜桃| 老司机aⅴ在线精品导航| 黑丝一区二区三区| 久久久久久久久久久久久女国产乱 | 久久免费视频网| 久久久水蜜桃av免费网站| 国产午夜精品在线| 欧美一区二粉嫩精品国产一线天| 先锋影音国产精品| 国产视频一区在线观看| 午夜在线视频观看日韩17c| 久久国产加勒比精品无码| 国产一区二区三区在线观看网站| 欧美一区午夜精品| 美女网站久久| a91a精品视频在线观看| 欧美三级电影大全| 亚洲一区二区三区四区在线观看| 欧美亚洲在线播放| 黄色成人精品网站| 欧美理论在线播放| 亚洲自拍偷拍视频| 免费成人黄色片| 一本高清dvd不卡在线观看| 国产精品久久激情| 久久精品视频网| 亚洲国产婷婷香蕉久久久久久99| 在线天堂一区av电影| 国产欧美视频在线观看| 久久亚洲精选| 中文一区在线| 欧美chengren| 亚洲女同同性videoxma| 国内精品写真在线观看| 欧美电影免费观看高清| 亚洲婷婷综合色高清在线| 蜜桃精品一区二区三区| 中文国产成人精品| 国产亚洲电影| 亚洲综合色网站| 亚洲欧洲在线一区| 欧美日韩一区在线观看| 先锋影音国产一区| 亚洲国产精品一区二区三区| 亚洲欧美日韩中文播放| 最新69国产成人精品视频免费| 欧美午夜a级限制福利片| 欧美一级专区| av成人手机在线| 麻豆精品在线观看| 亚洲在线中文字幕| 亚洲精品国精品久久99热| 国产日韩亚洲欧美精品| 欧美久久久久久久久| 久久久久久久综合狠狠综合| 亚洲视频网站在线观看| 亚洲欧洲一二三| 狂野欧美激情性xxxx|