草庐IT

lua_tonumber

全部标签

c++ - 如何在 C++ 中创建 Lua 表,并将其传递给 Lua 函数?

在C++中,我有一个map,包含未知数量的条目。我如何将其传递给Lua函数,以便Lua函数可以将数据用作表格? 最佳答案 如果你想要一个真正的lua表:lua_newtable(L);inttop=lua_gettop(L);for(std::map::iteratorit=mymap.begin();it!=mymap.end();++it){constchar*key=it->first.c_str();constchar*value=it->second.c_str();lua_pushlstring(L,key,it->fi

c++ - 在 Lua 表中注册 C 函数

如何在Lua中注册一个C函数,但不是在全局上下文中,而是作为表字段? 最佳答案 这就是luaL_register()旨在执行一项或多项功能。规范用法是作为用C编写的模块设置的一部分:/*actualdefinitionsofmodA()andmodB()areleftasanexercise.*//*listoffunctionsinthemodule*/staticconstluaL_regmodfuncs[]={{"a",modA},{"b",modB},{NULL,NULL}};/*moduleloaderfunctionca

C语言调用lua

欢迎关注公众号:fensnoteC语言是一种非常流行的编程语言,而Lua是一种基于C语言开发的脚本语言。相信大家都知道,Lua可以使用C语言来扩展其功能,进而实现更复杂的功能。而在Lua的各种实现中,luajit也是其中一种非常流行的实现。在本篇博客中,我将为大家介绍如何使用C语言调用luajit,并且详细介绍如何传入参数,传入结构体参数,以及获取返回值。一、C语言调用luajit在使用C语言调用luajit之前,我们需要先了解一些必要的概念。首先,我们需要掌握一些基本的lua函数调用的方法。例如,我们可以使用luaL_newstate函数来创建一个新的lua_State结构体,这个结构体是在

c++ - Lua C API : what's the difference between lua_gettop() and -1?

我不是很了解堆栈。lua_gettop()Returnstheindexofthetopelementinthestack.Becauseindicesstartat1,thisresultisequaltothenumberofelementsinthestack(andso0meansanemptystack).那么它和-1有什么区别呢?lua_getglobal(L,"Foo");if(lua_isfunction(L,lua_gettop(L))){lua_getglobal(L,"Foo");if(lua_isfunction(L,-1)){ 最佳

c++ - 从 C++/C 设置全局 LUA_PATH 变量?

我试图直接从C/C++设置我的全局LUA_PATH变量,我在我的iPhone应用程序中使用Lua,所以我的路径往往会在应用程序之间发生变化(每个iPhone应用程序在设备中都有一个单独的文件夹)。我知道我可以通过使用“固定”路径重新编译lua来设置LUA_PATH,但这远非理想。(我正在尝试这样做,以便能够从我的.lua脚本中使用require。有人能帮我吗? 最佳答案 在C++中:intsetLuaPath(lua_State*L,constchar*path){lua_getglobal(L,"package");lua_get

windows - 如何增加内存来处理超大的 Lua 表

我有一个Lua函数,它在给定n的情况下生成系列从1到n的所有排列,并将每个唯一系列以表格形式存储在容器表中。这个生成的表的大小很快就会变得非常大(而且必然如此)。大约在我尝试n=11时,脚本将运行几秒钟,然后出现“lua:内存不足”。我有16gb的物理RAM,但在Windows任务管理器中观察性能监视器可以让我看到ram在运行时被消耗,并且在脚本以内存错误结束之前它只达到大约20%。我发现这篇文章看起来像我需要前进的方向:memoryofaprocessinLua由于我使用Lua.exe运行我的脚本,我假设我受限于Windows为Lua.exe分配的内存量。我可以增加这个数额吗?我可以

cocos2d-x Android原生平台与Lua交互

版本:cocos2d-x语言:C++/Java/Lua简介cocos2d-x原生平台Android接入第三方SDK,需要了解LuaJavaBridge的使用。它封装了用于Java和Lua的相互调用,其调用通过C++为中介,简要的流程:Lua调用Java:Lua->C++->JavaJava调用Lua:Java->C++->Lua以此方式来实现数据的交互,接下来我们分别说下这两块东西。Lua调用Javalua的接口文件主要在cocos/cocos2d目录下,主要的文件是:luaj.luaLua调用Android平台的接口文件luaoc.luaLua调用苹果平台的接口文件调用原生平台,使用的方法名

windows - 有没有兼容lua 5.2.1的lua套接字库?

正如标题所说,我需要一个与Lua5.2.1兼容的Windowsluasocket库。 最佳答案 luasocket已移植到5.2。见https://github.com/diegonehab/luasocket/tree/unstable 关于windows-有没有兼容lua5.2.1的lua套接字库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12040601/

windows - Lua for windows https 错误 : "%1 is not a valid Win32 application"

我有一个关于Lua和https的问题。我正在为支持Lua的路由器开发一些软件。不好的是这个路由器不支持调试。所以我一直在寻找Lua的IDE。我在Win764位操作系统上使用Lua开发工具和LuaForWindows。到目前为止,一切正常。但是现在我必须通过https调用一些url。路由器本身有一个包ssl.lua,你可以使用require("ssl.https")语句来使用这个包。但我想用Lua开发工具调试它。我正在搜索与Windows兼容的包,并找到了“Luasec”项目。如本帖“LuawiththeFreebaseAPI”中所述;我下载了Luasec.我已将ssl.lua和ssl文

windows - 在 Windows 中使用 lua os.execute 来启动一个程序,而不需要一闪而过的 CMD

我很高兴使用Lua在Windows系统中启动一个程序strProgram='"C:\\ProgramFiles\\PsPad\\PSPad.exe"'strCmd='start""'..strProgramos.execute(strCmd)这工作正常,启动程序和脚本完成。它是如何在几分之一秒内闪烁命令窗口的,有没有人有办法从Lua启动程序。 最佳答案 Lua的os.execute命令是基于C标准库的“shell”函数。在Windows中,此函数将始终创建一个命令窗口,并且它将始终暂停当前进程,直到窗口结束。后者也发生在Linux中