lua 调用C函数
#include "tolua_fix.h"
#include "WordFilter.h"
#include "LuaBasicConversions.h"
#include "lua_sensitive_binding.h" int lua_sensitive_loadfile(lua_State* tolua_S)
{
size_t sz = 0;
const char *filePath = luaL_checklstring(tolua_S, 1, &sz);
std::thread threadLoadFile(&CWordFilter::loadFileByThread, CWordFilter::getInstance(), filePath);
threadLoadFile.detach();
return 1;
} int censorStr(lua_State *tolua_S)
{
size_t sz = 0;
std::string source = luaL_checklstring(tolua_S, 1, &sz);
if (CWordFilter::getInstance()->censorStr(source))
{
return 0;
}
else if (CWordFilter::getInstance()->censorStrWithOutSymbol(source))
{
return 0;
}
return 1;
} static luaL_Reg lua_sensitive_funcs[] = {
{ "loadFile", lua_sensitive_loadfile },
{ "censorStr", censorStr },
{ NULL, NULL }
}; int init_sensitive_binding(lua_State* tolua_S){
lua_newtable(tolua_S);
lua_pushvalue(tolua_S, -1);
lua_setfield(tolua_S, LUA_GLOBALSINDEX, "SensitiveChecker"); luaL_Reg* lib = lua_sensitive_funcs;
for (; lib->func; lib++)
{
lua_pushcfunction(tolua_S, lib->func);
lua_setfield(tolua_S, -2, lib->name);
}
lua_pop(tolua_S, 1); return 1;
} int register_sensitive_binding(lua_State* tolua_S)
{
return init_sensitive_binding(tolua_S);
}
将需要用的函数插入到 名字为 SensitiveChecker 的全局变量表中, 这里我加入了两个函数。用于之前的敏感词屏蔽操作,因为只需要用到这两个接口,所以没有必要去把一个类添加到项目中去,为了省事就加了个全局的表
lua 调用C函数的更多相关文章
- Step By Step(Lua调用C函数)
原文: http://www.cnblogs.com/stephen-liu74/archive/2012/07/23/2469902.html Lua可以调用C函数的能力将极大的提高Lua的可扩展性 ...
- lua调用c++函数返回值作用
2015/05/28 lua调用c++接口,返回给lua函数的是压入栈的内容,可以有多个返回值.但是c++接口本身也是有返回值的,这个返回值也非常的重要,会决定最后返回到lua函数的值的个数. (1) ...
- cocos2dx中使用tolua++使lua调用c++函数
一直想学学cocos2dx中如何使用tolua++工具使得lua脚本调用C++函数,今天就来搞一下,顺便记录下来: 首先,我们打开cocos2dx-2.2.4中projects下的test的VS工程, ...
- lua调用c函数
参考:http://blog.163.com/madahah@126/blog/static/170499225201121504936823/ 1.编辑C程序 vim luac.c #include ...
- (原+译)LUA调用C函数
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5804924.html 原始网址: http://www.troubleshooters.com/cod ...
- Lua中调用C函数
Lua利用一个虚拟的堆栈来给C传递值或从C获取值.每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回 ...
- [置顶] lua 进阶3--lua文件中调用C++函数
前面讲了一下,C++读取lua文件中的变量,包括一维表.二维表这些,这节讲一下如何在lua文件中去调用C++函数 C++代码如下 #include <stdio.h> extern &qu ...
- lua中调用C++函数
lua中调用C++函数 我们产品中提供了很多lua-C API给用户在lua中调用,之前一直没用深究其实现原理,只是根据已有的代码在编码.显然这不是一个好的习惯,没用达到知其所以然的目的. 一.基本原 ...
- lua调用C语言
在上一篇文章(C调用lua函数)中,讲述了如何用c语言调用lua函数,通常,A语言能调用B语言,反过来也是成立的.正如Java 与c语言之间使用JNI来互调,Lua与C也可以互调. 当lua调用c ...
- Lua调用C++时打印堆栈信息
公司的手游项目,使用的是基于cocos2d-x绑lua的解决方案(参数quick-x的绑定),虽然使用了lua进行开发,更新很爽了,但是崩溃依然较为严重,从后台查看崩溃日志时,基本上只能靠" ...
随机推荐
- cnpm : 无法将“cnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 1
出现问题原因: 使用vscode终端powershell控制台查看cnpm版本或者运行cnpm的相关命令时提示如标题错误(cmd控制台提示:'cnpm' 不是内部或外部命令,也不是可运行的程序或批处理 ...
- LG P2633 Count on a tree
\(\text{Solution}\) 树上主席树板子 \(\text{Code}\) #include <cstdio> #include <algorithm> #defi ...
- python Gui编程工具详解:beeware
各个gui开发工具对比 Flexx: 可以使用Flexx创建桌面应用程序和web应用程序,同时可以将程序导出到独立的HTML文档中,GitHub推荐 Kivy&BeeWare: 只需编写一套代 ...
- 三年观察揭示TNF抑制剂持续改善强柱患者躯体功能的预测因子
标签:强直性脊柱炎; TNF抑制剂; 躯体功能; 预测因子 一项为期3年的观察研究揭示TNF抑制剂持续改善强直性脊柱炎患者躯体功能的预测因子 电邮发布日期:2016年3月28日 文献出处: van W ...
- js替换字符中指定所有字符
//js \n全部替换<br/> function tranceBr(str) { return str.replace(/\n/g, '<br/>'); }
- 3D建模零代码平台
近几年,随着国内外文化产业的迅猛发展,3D建模行业迎来黄金发展期. 尤其是在元宇宙时代及数字体验经济时代的大背景下,越来越多的实时.可交互的3D内容将出现在人们的生活中. 关于3D建模师而言,无疑,行 ...
- JSP 与 Servlet 之间的联系,及其语法
JSP 是什么 JSP 将 Java 代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容.JSP 文件在运行时会被其编译器转换成更原始的 Servlet 代码.JSP ...
- Git Please commit your changes or stash them before you merge.
本地分支和远程修改了同一个文件代码,pull远程分支的代码的时候会文件冲突 出现这个错误 Please commit your changes or stash them before you mer ...
- html音乐播放器
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 2023 年 CCF 春季测试赛模拟赛 - 2
T1 分治,\(a^b + \dots + 1 = (a^{\lfloor\frac{b}{2}\rfloor} + \dots + 1) \times (a^{\lfloor\frac{b}{2}\ ...