nynw.net
当前位置:首页 >> 如何正确在luA中调用C++的接口 >>

如何正确在luA中调用C++的接口

当我们需要在Lua里面调用c/c++函数时,所有的函数都必须满足以下函数签名: 复制代码 代码如下: typedef int (*lua_CFunction) (lua_State *L); 换句话说,所有的函数必须接收一个lua_State作为参数,同时返回一个整数值。因为这个函数使用Lua栈...

输入的字串有可能带有0值字符,所以在c里必须指定长度,否则用strlen会被截断。但在lua里不存在截断问题,有string肯定就能取到正确的长度,所以可以省掉一个参数。 当然,保持和c一样的接口参数是可以的。不过这个绑定代码是以前继承下来的了,...

dll通过函数luaL_openlib导出,然后lua使用package.loadlib导入库函数,基本就是这么个过程,下面上代码来说明一切。 [cpp] view plain copy #include "stdafx.h" #ifdef __cplusplus extern "C"{ #endif #include "lua.h" #include "lualib.h" ...

顺序搞反了埃 你已经定义了 csum 函数 luaL_dofile 那一句放到 lua_setglobal后面。 你必须在l 环境中注册 int csum(lua_State*)函数后,然后再dofile。不然你dofile的时候c函数还没有注册,lua当然无法使用这个函数啦。

你说的应该是用c语言往lua里传递一组table数据吧 LUA的 C库有提供相关的接口 实现这个操作 不过接口并不是直接使用的 你需要对lua与c交互有足够的理解 自己去构造一个方法 相关的实现 你可以搜一下 应该有很多现成的代码 不过不推荐使用这种方法...

一. lua调用C++ 在lua中是以函数指针的形式调用函数, 并且所有的函数指针都必须满足如下此种类型: typedef int (*lua_CFunction) (lua_State *L); 也就是说, 偶们在C++中定义函数时必须以lua_State为参数, 以int为返回值才能被Lua所调用. 但是不...

第一种方式是调用的时候提示找不到这个接口,但你查看C++会发现明明有这个接口,那么问题在哪呢?原因是在做luabinding的时候配置文件中忽略了一些接口,也修改了一些接口在lua层的命名,那么哪里看呢?所有自动生成的binding文件都在quick根目...

干吗不参考《lua程序设计》那本书呢?里面有把函数封装到一个模块中的。 其实感觉你的目的就是有一个模块,该模块有函数setProperty。封装c函数给脚本语言使用用swig也很方便 不过还是觉得奇怪,因为如果返回的是一个表的话,完全可以用一般的

用lua封装成类似c++中map的功能方法: 实现代码如下: 1、stl_map.lua //创建一个stl_map 2、map = {} //初始化为空 3、创建一个map function map:new() local object = {} setmetatable(object, self) self.__index = self --用一个table来保存...

目测是你编译得不正确,你可以到 lua 邮件列表上去问问。 编译时一般需要手动指定平台,例如在 linux 中编译可以在 make 的时候带 linux 参数。

网站首页 | 网站地图
All rights reserved Powered by www.nynw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com