我正在开发一个基本上只执行lua脚本的C++程序。然而,在该lua脚本中构造了类,这些类已从我的c++程序导出到lua脚本。我的main()c++函数只是在一些准备之后调用...luabind::call_function(m_L,"main");现在我的lua脚本是这样的localfunctiontest()localc=C()endfunctionmain()fori=1,2dolog(i)test()endend我包含了一个std::cout12destructordestructor而不是1destructor2destructor有人知道这是为什么吗?我在这里遗漏了什么吗?
我有一个使用Lua5.2.1的VisualStudio2008C++03应用程序。我想用一个名为“foo”的模块扩展Lua,但是当我在我的Lua脚本中调用require("foo")时,出现错误:foo_test.lua:1:module'foo'notfound:nofieldpackage.preload['process']nofile'!\lua\process.lua'nofile'!\lua\process\init.lua'nofile'!\process.lua'nofile'!\process\我的Lua脚本:foo.bar()我的lua_foo.h文件:#inclu
我想知道如何从LuaCAPI中的函数获取多个返回值。Lua代码:functiontest(a,b)returna,b--IwouldliketogetthesevaluesinC++endC++代码:(调用函数的部分)/*pushfunctionsandarguments*/lua_getglobal(L,"test");/*functiontobecalled*/lua_pushnumber(L,3);/*push1stargument*/lua_pushnumber(L,4);/*push2ndargument*//*callthefunctioninLua(2arguments,
我研究过一些Lua,并且我对C++比较熟悉,但我仍然看不出有任何真正的理由我想将Lua(或任何与此相关的脚本语言)与C++结合使用。如果我已经在用C++(一种快速语言)制作游戏,为什么我不直接用C++做所有事情呢?毕竟,我已经熟悉C++了。我为什么要花时间学习一门新语言以及如何将它集成到我的C++代码中?我敢肯定,只是让界面设置和工作会有问题。学习需要一些时间,它如何真正得到返回?它真的只对大型开发团队有益吗? 最佳答案 我附和已经说过的话,并且我想在此刻将Lua集成到我的游戏引擎中时添加我自己的想法!这取决于您制作的游戏类型,但无
假设我在C++应用程序中嵌入了Lua。这个问题听起来可能很奇怪,但我很感兴趣,是否有一种标准方法可以从C++端禁用Lua功能?例如,我想禁用新变量的创建,除了一些已定义的变量,如下所示:localtime=10localsize=20functiontest()returntime*sizeend如果我定义了time、size和test函数以外的任何东西,我想让LuaVM失败。这可能不破解VM本身吗?或者例如我想禁用循环(for和while语句)。 最佳答案 限制可以创建或访问的global变量的名称很容易:只需将您的脚本加载到具有
到目前为止,我所做的所有谷歌搜索都发现了一些非常接近的东西,但还没有完全符合我想要做的事情。让我用最基本的方式描述一下:假设您有一个C++类classA{public:intMethod();intVariable;};现在假设您实例化A*Foo;现在假设您有一个包含以下3行函数的.lua文件:functionTest()localn=Foo:Method();Foo.Variable=0;localm=Foo.Variable;end如何将对象A*绑定(bind)到lua以便所有这些事情都可行?伪代码方面,我的第一次尝试是这样的,部分来自复制粘贴示例:在只调用一次的函数中,不管A的实
在下面的示例中,创建了一个userdata值,类型为MyType,并使用元函数__tostring创建了一个表,该元函数调用LI_MyType__tostring。该代码创建了一个基于闭包的luaOOP。我对所提供示例的不满是,似乎只有一种方法可以通过上值将userdata与方法调用相关联。就其本身而言,这不是问题,除非我想跨实例共享相同的元表。在一个理想的世界中——我希望通过这个问题来挖掘——有没有一种方法可以将上值与值(例如userdata)相关联,而无需通过以下方式将其与函数调用相关联升值?我希望有一个技巧可以让我继续使用基于闭包的luaOOP和跨实例共享相同的元表。我并不乐观,
我现在在谷歌上搜索了很多,但我找到的只是使用C++的Lua的“HelloWorld”示例。Situation:游戏,大型游戏。有一个游戏内控制台,目前用C++(面向对象和所有)硬编码,有很多if-else-if-else...block来检查用户在控制台中输入的命令。每个命令都可以更改游戏其他类的成员(例如命令“speed5”通过调用Car::setSpeed更改classCar中的变量doublespeed(5))并且还将有关结果的输出返回给控制台。还有一些命令在“幕后”做的不仅仅是更改变量,这也应该由Lua完成,并且只有最终结果传递回C++代码(控制台输出+正确类中的更改变量)。我
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我是C++和一般编程的初学者。我看了几个小时的C++教程并阅读了很多相关内容(你能推荐一些教程吗?),但我遇到但无法理解的是库。我想用C++开发游戏(我认为,它似乎是最有趣的atm)。我能理解我需要一个用C++进行游戏编程的库,但我不太了解库具体是什么,以及在哪里可以找到这些库。此外,我读到Lua应该很适合用来编写游戏脚本。我想知道这是不是真的?如果是真
我想这是一个非常基本的问题:C++代码,调用lua是这样的:lua_State*m_L;m_L=lua_open();luabind::open(m_L);luaL_dofile(m_L,"test.lua");try{luabind::call_function(m_L,"main");}catch(luabind::error&e){std::stringerror=lua_tostring(e.state(),-1);std::cout现在test.lua有如下内容:functionmain()print"1"end执行后我收到错误:test.lua:2:attempttocal