最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lua中的動態(tài)鏈接實(shí)例

 更新時(shí)間:2014年09月23日 10:44:05   作者:iCode0410  
這篇文章主要介紹了Lua中的動態(tài)鏈接實(shí)例,動態(tài)鏈接是指在Lua中使用C編譯的動態(tài)庫,需要的朋友可以參考下

C語言應(yīng)用程序中經(jīng)常使用動態(tài)鏈接機(jī)制集成各個(gè)模塊;不過,動態(tài)鏈接機(jī)制并不是ANSI C標(biāo)準(zhǔn)的一部分,也就是說實(shí)現(xiàn)方法是不可以移植的。

Lua通常不會包含任何無法通過ANSI C來實(shí)現(xiàn)的機(jī)制,如果動態(tài)鏈接是一個(gè)例外。Lua打破了對可移植性的準(zhǔn)則,為幾種平臺實(shí)現(xiàn)了一套動態(tài)鏈接機(jī)制。

package.loadlib是動態(tài)鏈接功能的核心函數(shù),接收兩個(gè)參數(shù):動態(tài)庫的完整路徑名、函數(shù)名稱。

loadlib函數(shù)加載指定的庫,并將其鏈接入Lua;如你所想,并不會調(diào)用庫中的任何函數(shù),而是將一個(gè)C函數(shù)作為Lua函數(shù)返回;如果load過程中發(fā)生任何錯(cuò)誤,返回nil。

loadlib是一個(gè)比較底層的函數(shù),通常使用require來加載C程序庫,這個(gè)函數(shù)會搜索指定的程序庫,然后調(diào)用loadlib來加載庫,并返回初始化函數(shù),這個(gè)初始化函數(shù)應(yīng)將庫中提供的函數(shù)注冊到Lua中。

 作為一個(gè)簡單的實(shí)例:

復(fù)制代碼 代碼如下:

hello.c
#include<stdio.h>
 
void hello(){
printf("hello,world\n");
}

編譯:gcc -o libhello.so -fPIC -shared hello.c
復(fù)制代碼 代碼如下:

> f = package.loadlib('${pathhere}/libhello.so', 'hello')
> f()
hello,world

hello()函數(shù)比較簡單,沒有參數(shù),沒有返回值,具體的接口規(guī)范還需研究。

相關(guān)文章

  • 解析Lua中的全局環(huán)境、包、模塊組織結(jié)構(gòu)

    解析Lua中的全局環(huán)境、包、模塊組織結(jié)構(gòu)

    Lua中也擁有和Python世界相似的代碼的作用范圍和組織方式,下面我們就來簡單解析Lua中的全局環(huán)境、包、模塊組織結(jié)構(gòu),需要的朋友可以參考下
    2016-06-06
  • Lua中的loadfile、dofile、require詳解

    Lua中的loadfile、dofile、require詳解

    這篇文章主要介紹了Lua中的loadfile、dofile、require詳解,本文分別用實(shí)例講解它的用法和特點(diǎn)等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • C++中調(diào)用Lua函數(shù)實(shí)例

    C++中調(diào)用Lua函數(shù)實(shí)例

    這篇文章主要介紹了C++中調(diào)用Lua函數(shù)實(shí)例,本文給出了Lua和C++的代碼,并對步驟做了講解,需要的朋友可以參考下
    2014-09-09
  • 利用Lua定制Redis命令的方法詳解

    利用Lua定制Redis命令的方法詳解

    這篇文章主要給大家介紹了關(guān)于利用Lua定制Redis命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Lua中的table學(xué)習(xí)筆記

    Lua中的table學(xué)習(xí)筆記

    這篇文章主要介紹了Lua中的table學(xué)習(xí)筆記,本文講解了table.concat、table.insert、table.maxn、table.pack、 table.remove、table.sort等方法的使用,需要的朋友可以參考下
    2014-12-12
  • Lua模塊和模塊載入淺析

    Lua模塊和模塊載入淺析

    這篇文章主要介紹了Lua模塊和模塊載入淺析,Lua模塊其實(shí)就是以.lua結(jié)尾的文件,模塊載入可以用requeire或者dofile,需要的朋友可以參考下
    2014-09-09
  • Lua中table的一些輔助函數(shù)介紹

    Lua中table的一些輔助函數(shù)介紹

    這篇文章主要介紹了Lua中table的一些輔助函數(shù)介紹,這些函數(shù)組成了table的函數(shù)庫,需要的朋友可以參考下
    2014-09-09
  • Lua中全局變量與非全局環(huán)境介紹

    Lua中全局變量與非全局環(huán)境介紹

    這篇文章主要介紹了Lua中全局變量與非全局環(huán)境介紹,本文講解了全局變量的原形、非全局的環(huán)境、改變函數(shù)的全局變量環(huán)境、使用__index元方法保留原來的_G,需要的朋友可以參考下
    2014-09-09
  • Lua中使用table實(shí)現(xiàn)的其它5種數(shù)據(jù)結(jié)構(gòu)

    Lua中使用table實(shí)現(xiàn)的其它5種數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了Lua中使用table實(shí)現(xiàn)的其它5種數(shù)據(jù)結(jié)構(gòu),本文用table為基礎(chǔ),實(shí)現(xiàn)了數(shù)組、鏈表、隊(duì)列、集合等數(shù)據(jù)類型,需要的朋友可以參考下
    2014-09-09
  • Lua面向?qū)ο缶幊虒W(xué)習(xí)筆記

    Lua面向?qū)ο缶幊虒W(xué)習(xí)筆記

    這篇文章主要介紹了Lua面向?qū)ο缶幊虒W(xué)習(xí)筆記,本文講解了Lua中實(shí)現(xiàn)類的例子、類之間繼承的例子等內(nèi)容,需要的朋友可以參考下
    2014-12-12

最新評論

什邡市| 准格尔旗| 广南县| 枣强县| 扬州市| 闵行区| 广河县| 于田县| 抚宁县| 阳谷县| 石河子市| 海南省| 长沙市| 象山县| 南康市| 英山县| 上饶县| 自治县| 石棉县| 九龙县| 监利县| 黑河市| 大石桥市| 西藏| 博客| 星座| 巨鹿县| 荣成市| 辰溪县| 商南县| 调兵山市| 徐水县| 伊春市| 廉江市| 昌平区| 道孚县| 河南省| 孝昌县| 怀化市| 宁蒗| 奉化市|