草庐IT

lua_open

全部标签

c++ - SWIG Lua 和传递数组

我目前有以下lua代码:g=engine.CGeometry()vertexes={}vertexes[1]=0vertexes[2]=0vertexes[3]=0vertexes[4]=0vertexes[5]=-1vertexes[6]=0vertexes[7]=-1vertexes[8]=0vertexes[9]=0print"addingvertexes"g:SetVertexes(vertexes)其中g:SetVertexes()在C++中的实现方式为:voidCGeometry::SetVertexes(double*vertexes){this->vertexes=ve

c++ - 如何在 LUA 中创建 C++ 兼容函数对象?

我正在考虑如何设计我的API,我计划在LUA中创建一个带有脚本层的C++应用程序。对于我设计中的几个关键点,我想让用户能够创建一个函数对象来表示他想在LUA中做什么,而不是将这个函数对象从LUA发送到C/C++。在伪代码中,在C++中我有一个classTclassT{...intnum1=0;floatnum2=0.0f;std::stringstr{"NONE"};...};我想像这样用LUA提供的functionobject操作T的实例voidapplyFunc(Tt,Ff){f(t);}问题是我在LUA中找不到任何创建函数对象的东西,例如C++11lambda或std::func

c++ - <eof> 附近的 lua 函数参数

我尝试在C++项目中使用lua。对于lua执行,我这样写:#include...luaEngine=luaL_newstate();luaL_openlibs(luaEngine);register_results(luaEngine);//Forregisterc++objectintheLUAscriptasmetatablelua_pushstring(luaEngine,resultsId.c_str());lua_setglobal(luaEngine,"resultsId");lua_pushboolean(luaEngine,needReloadModel);lua_se

c# - 从 Lua 5.1 移植到 5.2

我在将一些较旧的Lua5.1代码移植到Lua5.2时遇到了一些问题。我希望能够使用现有的Lua5.2dll/lib,因此任何移植都需要使用Lua5.2的现有API来完成。为了让它更复杂一些,我使用DllImport来P/Invoke一些LuaAPI调用。这意味着所提供的任何#define快捷方式都将不起作用。例如使用lua_pushglobaltable是不可能的。大多数更新是必需的,因为LUA_REGISTRYINDEX不再可访问。到目前为止,我有以下内容:1a)替换lua_pushstring(luaState,"tablename");lua_settable(luaState,

C++ 与 Lua 的协程交互

零、前言Lua语言不支持真正的多线程,即不支持共享内存的抢占式线程。这样的模式能减少一些多线程的问题。多线程的问题源于线程抢占和共享内存,而如果非抢占式线程或者不使用共享内存则能避免多线程问题,Lua同时支持这两种方案。从之前分享的《Lua协程》文章中知道:Lua语言的线程是协作式的,即协程,可以避免因不可预知的线程切换带来的问题。Lua状态间内存不共享,所以各个状态相互独立运行,可以并行操作。一、多线程从C-API的角度,可以把线程当作一个栈,每个栈保存着一个线程中挂起的函数调用信息,以及每个函数调用的参数和局部变量。也就是说,一个栈包括了一个线程得以继续运行所需的所有信息。因此,要达到多线

c++ - LNK1104 : cannot open file 'wxbase28d.lib'

我正在尝试编译使用wxWidgets库创建的现有项目。我成功编译了wxWidgets2.8.12库。现在,我正在尝试编译我的项目。但是我得到错误:fatalerrorLNK1104:cannotopenfile'wxbase28d.lib'之后我在设置中添加了一些变量,例如:C/C++->预处理器定义:WIN32;__WXMSW__;_WINDOWS;_DEBUG;__WXDEBUG__;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)VC++目录->包含目录:D:\instantclien

c++ - 是否有用于 C++ 的 Open XML 解析器?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion我想扫描PowerPoint2007文件,但我正在尝试使用C++来完成。是否有用于C++的OpenXML解析器?

c++ - 为嵌入式 Lua 脚本设置 'environment'

我在C++应用程序中嵌入了一个Lua解释器。我想为运行脚本设置一个“环境”,以便所有脚本都可以使用某些变量。例如,我想将只读对象Foo和FooBar公开给脚本,这样Foo和FooBar可用于所有正在运行的脚本。有谁知道我该怎么做?展示如何做到这一点的片段将非常有用。 最佳答案 我没有听说过Lua中的只读变量,但您可以通过函数调用使环境可用来防止修改。如果C++应用程序很大,您可能希望使用工具来生成可以从Lua调用的接口(interface)。我过去曾幸运地使用过tolua++:假设demo.hpp是C++应用程序的头文件:#ifnd

c++ - 如何在 Lua 脚本中创建 GUID?如果有帮助,请使用 LuaPlus

我目前正在使用LuaPlus开发一个项目,我需要能够使用GUID,但似乎无法在lua中找到它们。当我为lua构建数据时,没有setGUID,有设置数字、设置字符串等。还有一个Set()函数。有谁知道将GUID从c++传递到lua以及从lua传递到c++的正确方法。非常感谢。更新:谢谢大家的回复。感谢您的快速回复。我实际上不会经常搜索类型转换,主要是在我们加载所有内容时在前端搜索。但是,我可能有点担心太多,因为游戏有点小而且不会有大量Actor无论如何。我正在考虑在lua中编写一个优化的字符串比较,您可以在其中针对测试参与者检查GUID的第一个字符。如果通过,则转到第二个,依此类推。如果

c++ - 如何使用 open64 编译器构建 boost 库?

我想试试AMD的open64编译器,但为此我首先需要使用此编译器构建一些boost库(当前版本1.46_1)。不幸的是,open64不在boost.build系统提供的工具集中,参见例如here或更详细here.现在,我如何获得open64构建的boost?到目前为止,这是我尝试过/发现的:在子目录tools/build/v2/tools有一堆.jam文件似乎定义了可以通过using使用的工具集指令,例如usinggcc;.这些看起来很难看,我真的不知道如何为open64(或openCC,这是实际命令)编写一个。由于openCC的接口(interface)显然与gcc的接口(inter