国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發(fā) > 綜合 > 正文

C語言模塊回調(diào)Lua函數(shù)的兩種方法

2024-07-21 23:04:32
字體:
供稿:網(wǎng)友

lua和C通過虛擬棧這種交互方式簡單而又可靠,缺點就是C做棧平衡稍微會多寫一點代碼。 今天分享學(xué)到的C模塊回調(diào)Lua函數(shù)的兩種方法,都是炒冷飯,大俠勿噴。

1. C保存函數(shù)對象

C模塊可以通過注冊表保存Lua里面的對象,等適當(dāng)時候取出再調(diào)用即可。

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

static int lua_callback = LUA_REFNIL;

 

static int setnotify(lua_State *L)
{
  lua_callback = luaL_ref(L, LUA_REGISTRYINDEX);
  return 0;
}

static int testnotify(lua_State *L)
{
  lua_rawgeti(L, LUA_REGISTRYINDEX, lua_callback);
  lua_call(L, 0, 0);
}


luaL_ref把棧頂?shù)闹等〕觯诺街付ǖ膖abel中,然后返回一個索引(目測是數(shù)組的index)。 lua_rawgeti把之前保存的function對象取出,再由lua_call調(diào)用。
復(fù)制代碼 代碼如下:

function callback(  )
    print "Callback"
end

 

cb.setnotify(callback)
cb.testnotify()


2. C訪問Lua全局環(huán)境
第二種方法更簡便,C直接調(diào)用Lua中的函數(shù),就像Lua調(diào)用C一樣
復(fù)制代碼 代碼如下:

static int testenv(lua_State *L)
{
  lua_getglobal(L, "defcallback");
  lua_call(L, 0, 0);
}

該方法的缺點就是如果C模塊獨立編寫,方法名就不太靈活。 用這種方法一般會在Lua端再封裝一層,以隔離全局環(huán)境。

 

3. 完整例子
cb.c

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

#include <stdio.h>
#include <stdlib.h>
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"

 

static int lua_callback = LUA_REFNIL;

static int setnotify(lua_State *L)
{
  lua_callback = luaL_ref(L, LUA_REGISTRYINDEX);
  return 0;
}

static int testnotify(lua_State *L)
{
  lua_rawgeti(L, LUA_REGISTRYINDEX, lua_callback);
  lua_call(L, 0, 0);
}

static int testenv(lua_State *L)
{
  lua_getglobal(L, "defcallback");
  lua_call(L, 0, 0);
}

static const luaL_Reg cblib[] = {
  {"setnotify", setnotify},
  {"testnotify", testnotify},
  {"testenv", testenv},
  {NULL, NULL}
};

int luaopen_cb(lua_State *L)
{
  luaL_register(L, "cb", cblib);
  return 1;
}


test.lua
復(fù)制代碼 代碼如下:

require("cb")

 

function callback(  )
  print "Callback"
end

function defcallback()
  print "Predef callback"
end

cb.setnotify(callback)
cb.testnotify()
print "Done"
cb.testenv()

 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
午夜小视频在线| 国产在线二区| 国产日韩欧美一区二区三区视频| 欧美日韩在线精品成人综合网| 在线视频三级| wwwww在线观看免费视频| 永久免费不卡在线观看黄网站| 精品街拍一区二区| 青青免费在线视频| 国产精品冒白浆免费视频 | 在线国产网址| 女同一区二区免费aⅴ| 国产精品一区二区三区视频网站| 日本中文字幕在线视频| 最近中文字幕mv免费高清在线| 国产区在线观看| 欧美日韩综合高清一区二区| 最近中文字幕mv免费高清视频8| 91看片在线观看| 黄色国产在线| 中文在线观看视频| 国产乱妇乱子| 香蕉视频网站在线观看| 国产羞羞视频在线观看| 九七电影韩国女主播在线观看| 国产小视频福利在线| 色中文字幕在线| 午夜视频在线观看网站午夜视频在线| 国产黄色av免费看| 九色成人在线| 人日人天天爽| 亚洲午夜久久久久中文字幕| 国产视频资源| 五月婷婷在线视频| 久草视频国产| 一级黄色av| 国产偷窥老熟盗摄视频| 88av在线| 国产精品一品| 女同一区二区免费aⅴ| av在线资源网| eeuss影院网站免费观看| 精品麻豆国产| 97视频在线观看网站| 国产极品美女到高潮| 在线免费看av| 在线观看中文字幕一区| 国产麻豆高清视频在线第一页| 中文天堂av| 亚洲欧美精品中文第三| 国产精品白浆流出视频| 自拍亚洲国产| 午夜免费视频在线国产| 国产精品自产拍在线网站| 成 人免费视频播放| 国产免费人人看| 国产精品一区二三区| 国产秀色在线www免费观看| 中文字幕人成高视频| 天天操天天操天天色天天要| 天天操天天艹| 2020亚洲男人天堂| jizz性欧美| 成人无遮挡免费网站视频在线观看| 国产美女视频一区二区二三区| 国产在线观看色| 国产精品bbw一区二区三区| 在线观看av网站永久| 超碰免费在线播放| 国产九色porn网址| 96精品视频| 免费国产阿v视频在线观看| 国产男女猛烈无遮挡免费视频| 国产一卡2卡3卡4卡网站免费| 国产成人天天5g影院| 丝袜理论片在线观看| 国产秒拍福利视频露脸| 在线视频观看你懂的| 久久精品亚洲7777影院| 国产精品久久一区二区三区不卡| 亚洲精品天堂在线观看| 99热在线免费播放| 在线三级中文| 国产视频精品久久| 麻豆精品传媒视频观看| 中文乱码字幕高清在线观看| 国产麻豆视频免费观看| 亚洲男人网站| 2021天堂中文幕一二区在线观| 免费av不卡在线观看| 中文在线观看视频| 国产三级视频在线| 丁香花高清视频完整版在线观看| av手机免费观看| 136福利第一导航国产在线| 免费高清视频日韩| 99reav在线| 99在线播放| 精品久久久久一区二区三区| 国产欧美黑人| 国产精品jvid在线观看| 国产精品入口麻豆完整版| 国产免费网址| 五月婷婷导航| 中文字幕国产在线| 国产毛片在线| 国产偷窥老熟盗摄视频| 天堂中文字幕在线| 91caoporn在线| 最近中文字幕mv免费高清电影| h网址在线观看| 伊人影院在线播放| 亚洲天堂影院在线观看| av手机免费观看| 亚洲视频精品在线观看| 日本一本久久| 九色在线网站| 成年网在线观看免费观看网址| 久热免费视频| 天堂资源在线中文| 国产二区三区在线| www.久草.com| 国产九色在线| 69久久久久| 免费av不卡在线观看| 国产在线www| 国产精品入口麻豆高清| 精品美女视频在线观看免费软件| 一区二区精品区| 好男人社区在线视频| 国产情侣高潮对白| 日本aⅴ写真网站免费| 国产乱视频在线观看播放| 国产超碰精品在线观看| 久久久久久久美女| 精品国产二区三区| 国产美女在线免费观看| 亚洲综合激情六月婷婷在线观看| 狠狠插狠狠操| 在线a人片免费观看视频| 成人福利视频导航| 精品国产一区二区三区久久久狼牙| 日本一卡二卡四卡精品| 国产视频福利| 国产免费永久在线观看| 性色视频在线| 中文在线观看视频| 中文字幕在线免费| 免费a级毛片在线播放| 国产福利电影在线观看| 国产美女在线免费观看| www.91在线播放| av黄色在线观看| 国产偷窥洗澡视频| 国产免费福利| 麻豆av在线| 亚洲最新永久在线观看| 国产色视频网站| 国产乱妇乱子| 高清欧美精品xxxxx在线看| 日本电影在线观看| 羞羞视频在线观看免费| 中文av在线播放| 精品全国在线一区二区| 91精品专区| 精品一区二区91| 精品国产高清a毛片无毒不卡| 国产一区精品| 国产黄色在线免费观看| 国产福利免费观看| 18 激情视频在线| 国产黄大片在线观看画质优化| 1区2区3区在线| 国产精品bbw一区二区三区| 国产福利微拍精品一区二区| 国产私人尤物无码不卡| 国产馆av播放| 亚洲成人在线播放| 超碰在线影院| √天堂8资源中文在线| 国产精品69一区二区三区| 18激情网站| 午夜影院免费| 国产一区二区影视| 97最新国自产拍视频在线完整在线看| 国产精品666| 精品欧美日韩一区二区| 青青久草在线| 国产高清一区二区三区视频| 亚洲视频日韩| 国产一级黄色片免费| 精品推荐国产麻豆剧传媒| 青青草在线播放| 国产精品久久在线| 免费一区二区三区视频狠狠| 国产精品入口麻豆完整版| v天堂福利视频在线观看| 国产网站av| 日本视频在线| 国产福利电影在线观看|