Lua调用C,C++函数案例】的更多相关文章

该程序主要是C++与Lua之间的相互调用示例.执行内容:(1)新建一个lua_State(2)打开常用库,如io,os,table,string等(3)注册C函数(4)导入程序所在目录下所有*.lua文件(5)调用Lua中的MainEntry()函数 我们可能在lua_functions.cpp文件中加入我们新增的C函数,将C++与Lua结合为一个更强大的程序. 下载到本地之后,将Makefile.txt改成Makefile,然后make就可以了. 存在的问题:好像在main()调用MainEn…
比如lua中调用C函数 socket.core() , 在c中需要这样命名:luaopen_socket_core(); 基本模式是添加luaopen_前缀,讲.变为_…
http://yanbin.is-programmer.com/posts/94214.html Registery的Key 1. 整数Key用于Lua的引用机制,所以不要使用整数作为Key 2. 通过lua_rawsetp将一个C指针包装成light userdata作为Key使用 3. 使用字符串作为Key…
转自:http://segmentfault.com/blog/hongliang/1190000000631630 关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下: cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所有的文档都没讲清楚,是因为存在5个层面的知识点: 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质 2.在cocos2d-x项目里,把纯C函数注册进L…
原文: http://www.cnblogs.com/stephen-liu74/archive/2012/07/23/2469902.html Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性.对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数.对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L).简单说明一下…
第一层:纯C环境下,把C函数注册进Lua环境 a.lua 文件 )) a.c 文件 #include <lua.h> #include <lualib.h> #include <lauxlib.h> int foo(lua_State *L) { ); lua_pushnumber(L, n + ); ; } int main() { lua_State *L = lua_open(); luaL_openlibs(L); lua_register(L, "f…
Cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所有的文档都没讲清楚,是因为存在5个层面的知识点: 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质 2.在Cocos2d-x项目里,把纯C函数注册进Lua环境,理解Cocos2d-x是怎样创建Lua环境的.以及怎样得到这个环境并继续自定义它 3.了解为什么要使用toLua++来注册C++类 4.在纯C++环境下,使用toLua++来把一个C++类注册进Lua环境,理解toLua++的用法 5.在C…
2015/05/28 lua调用c++接口,返回给lua函数的是压入栈的内容,可以有多个返回值.但是c++接口本身也是有返回值的,这个返回值也非常的重要,会决定最后返回到lua函数的值的个数. (1)c++自定义类 int Test::getMsg(lua_State* L){ lua_pushnumber(L, ); lua_pushnumber(L, ); ; } (2)tolua++导出的lua调用的c++接口(部分有修改) int lua_cocos2dx_custom_Test_get…
当 Lua 调用 C 函数的时候,使用和 C 调用 Lua 同样类型的栈来交互. C 函数从栈中获取她的參数.调用结束后将返回结果放到栈中.为了区分返回结果和栈中的其它的值,每一个 C 函数还会返回结果的个数(the  function  returns  (in  C)  the  number  of  results  it  is leaving on the stack.). // luacallcpp.cpp : 定义控制台应用程序的入口点. // #include "stdafx.…
参考:http://blog.163.com/madahah@126/blog/static/170499225201121504936823/ 1.编辑C程序 vim luac.c #include <stdio.h> #include <lua.h> #include <lualib.h> #include <lauxlib.h> LUALIB_API int luaopen_mylib(lua_State *L ); //自定义函数 static in…