欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

 作為一個簡單的實例:

復(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 操作 MongoDB 數(shù)據(jù)庫實例

    Lua 操作 MongoDB 數(shù)據(jù)庫實例

    這篇文章主要介紹了Lua 操作 MongoDB 數(shù)據(jù)庫實例,本文給出了修改后的lua-mongo API和具體的操作MongoDB 數(shù)據(jù)庫代碼,需要的朋友可以參考下
    2015-03-03
  • Lua中的函數(shù)相關(guān)知識點整理匯總

    Lua中的函數(shù)相關(guān)知識點整理匯總

    這篇文章主要介紹了Lua中的函數(shù)相關(guān)知識點整理匯總,包括函數(shù)的參數(shù)傳遞和定義函數(shù)等基本知識,需要的朋友可以參考下
    2015-05-05
  • OpenResty中正則模式匹配的2種方法詳解

    OpenResty中正則模式匹配的2種方法詳解

    在 OpenResty 中,同時存在兩套正則表達(dá)式規(guī)范:Lua 語言的規(guī)范和 Nginx 的規(guī)范,下面這篇文章主要給大家介紹了關(guān)于OpenResty中正則模式匹配的2種方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2018-04-04
  • Lua字符串模式匹配函數(shù)小結(jié)

    Lua字符串模式匹配函數(shù)小結(jié)

    這篇文章主要介紹了Lua字符串模式匹配函數(shù)小結(jié),本文涉及一些正則操作,需要的朋友可以參考下
    2014-11-11
  • Lua Table轉(zhuǎn)C# Dictionary的方法示例

    Lua Table轉(zhuǎn)C# Dictionary的方法示例

    這篇文章主要給大家介紹了關(guān)于Lua Table轉(zhuǎn)C# Dictionary的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • 獲取Lua表結(jié)構(gòu)(table)數(shù)據(jù)實例

    獲取Lua表結(jié)構(gòu)(table)數(shù)據(jù)實例

    這篇文章主要介紹了獲取Lua表結(jié)構(gòu)(table)數(shù)據(jù)實例,本文使用lua_gettable函數(shù)獲取表結(jié)構(gòu),需要的朋友可以參考下
    2014-09-09
  • Lua編程示例(六): C語言調(diào)用Lua函數(shù)

    Lua編程示例(六): C語言調(diào)用Lua函數(shù)

    這篇文章主要介紹了Lua編程示例(六): C語言調(diào)用Lua函數(shù),本文直接給出代碼實例,需要的朋友可以參考下
    2015-07-07
  • Lua教程之弱引用table

    Lua教程之弱引用table

    這篇文章主要介紹了Lua教程之弱引用table,本文講解了自動內(nèi)存管理的缺陷、弱引用table、三種形式的弱引用等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua和C++語言的交互詳解

    Lua和C++語言的交互詳解

    這篇文章主要介紹了Lua和C++語言的交互詳解,本文講解了C++和Lua交互,涉及到獲取Lua中普通變量的值,Lua中table的值和調(diào)用Lua中的函數(shù),需要的朋友可以參考下
    2014-09-09
  • Lua 學(xué)習(xí)筆記之C API 遍歷 Table實現(xiàn)代碼

    Lua 學(xué)習(xí)筆記之C API 遍歷 Table實現(xiàn)代碼

    這篇文章主要介紹了Lua 學(xué)習(xí)筆記之C API 遍歷 Table實現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12

最新評論