草庐IT

language-lua

全部标签

c++ - Visual Studio 2013 中的 Lua C API 堆栈可视化器/查看器

我想知道在调试使用VisualStudio2013中的LuaCAPI的C++应用程序时是否有某种方式可以跟踪Lua堆栈。我尝试了谷歌搜索,但除了一些堆栈转储函数外什么也没找到。这对我来说可能是一个选项,但类似于为调试C++代码(例如本地、内存和监window口)提供的工具的GUI可视化器/查看器会好得多。 最佳答案 编写自己的可视化工具相对容易。我借助以下链接和更多谷歌搜索为自定义类型实现了一个:http://code.msdn.microsoft.com/windowsdesktop/Writing-graphical-debug

c++ - shared_ptr 需要完整的类型;不能与 lua_State 一起使用*

我正在为Lua编写C++/OOP包装器。我的代码是:classLuaState{boost::shared_ptrL;LuaState():L(luaL_newstate(),LuaState::CustomDeleter){}}问题是lua_State是不完整的类型,而shared_ptr构造函数需要完整的类型。我需要安全的指针共享。(有趣的是,boost文档说大多数函数不需要完整类型,但构造函数需要,所以没有办法使用它。http://www.boost.org/doc/libs/1_42_0/libs/smart_ptr/smart_ptr.htm)我能解决这个问题吗?谢谢。

c++ - "core language"是什么意思?

在thispage上的表中从GCC文档中,其中一项(大约在表的中间位置)仅列为“核心语言”。这意味着什么?语言的哪些部分不会被包括在内? 最佳答案 标准库是语言的一部分。为了表达仅涉及语法规则、语义规则等而不涉及库的语言子集,人们使用术语核心语言。例如,在C++委员会中有一个名为“核心工作组”(CWG)和“库工作组”(LWG)的工作组。 关于c++-"corelanguage"是什么意思?,我们在StackOverflow上找到一个类似的问题: https:/

c++ - 如何使用 C API 创建嵌套的 Lua 表

我想创建一个表myTable={[0]={["a"]=4,["b"]=2},[1]={["a"]=13,["b"]=37}}使用CAPI?我目前的做法是lua_createtable(L,0,2);intc=lua_gettop(L);lua_pushstring(L,"a");lua_pushnumber(L,4);lua_settable(L,c);lua_pushstring(L,"b");lua_pushnumber(L,2);lua_settable(L,c);循环创建内表。之前,这个循环,我用lua_createtable(L,2,0);intoutertable=lua_

c++ - 除了避免 'extern C' 并获得 'C++ exception' 之外,将 Lua 编译为 C++ 有什么好处?

我是Lua的新手,我想使用C++将Lua嵌入到我们的游戏项目中。我注意到的第一件事是,允许将Lua编译为C++代码,并且从文档中,我了解到这将消除环绕Luaheader的“externC”,并且错误处理将是C++异常而不是跳远/定跳。我的问题是,除了这两个区别之外,将Lua代码编译为C++代码还有其他真正的好处吗?这两个并不能真正说服我,因为,1)用'externC'包装cheader并不困扰我,2)我们的项目不允许异常,所以我必须更改luaconf.h才能使用longjump/setjump任何方式。 最佳答案 那些是将Lua编译

C++ v 表 : Part of the language or compiler dependent?

v表(virtualmethodtable)是C++规范的一部分,还是由编译器来解决虚方法查找?如果它是规范的一部分:为什么?我猜它依赖于编译器,但有人对我说它是规范的一部分。非常欢迎引用! 最佳答案 1.7TheC++memorymodel3[...]Variousfeaturesofthelanguage,suchasreferencesandvirtualfunctions,mightinvolveadditionalmemorylocationsthatarenotaccessibletoprogramsbutaremana

c++ - LuaBind:如何将类的特定实例绑定(bind)到 Lua?

(旁注:这是游戏编程)使用LuaBind将整个类绑定(bind)到Lua很容易:classtest{test(){std::cout//其他地方module[some_lua_state][class_("test").def(constructor()).def("print",&test::print)];现在我可以在Lua中创建类的实例并使用它:lua_example.luafoo=test()//willprint"constructed!"ontheconsolefoo:print()//willprint"works!"ontheconsole但是,现在我想将一个特定的测试

c++ - 从 C API 调用的 Lua 脚本的执行时间限制

luaL_loadfile(mState,path.c_str());lua_pcall(mState,0,0,0);有没有办法为这两个C++语句设置执行时间限制(比如10-20秒),加载然后执行lua文件?由于Lua文件不受信任,我不希望恶意用户使用Lua代码中的无限循环无限期地挂起程序。标记C因为LuaAPI是C,标记C++因为我用的是C++ 最佳答案 lua_sethook可用于告诉解释器在执行每条“计数”指令后调用一个钩子(Hook)。这样你就可以监控用户脚本并在它用完配额时终止它:intlua_sethook(lua_St

c++ - 嵌入:单声道与 lua

我有兴趣了解人们在C/C++应用程序中嵌入mono(.NET的开源实现)的经验。如何分发这样的应用程序以及依赖项是什么?我在OSX上测试过,mono是一个巨大的框架(数百MB)。我的应用程序的用户是否都需要这个大框架,或者是否可以将其剥离或将所有内容编译到主要可执行文件中。我以前有过将Lua嵌入C++应用程序的经验,而且效果非常好,因为我可以将整个lua解释器静态链接到我的主要可执行文件中。所以我没有外部依赖。是否可以用单声道做类似的事情?这里有任何Lua人可以评论一下与Lua相比他们如何发现单声道吗?PS:我所说的嵌入是指一个C++应用程序,它初始化一个单声道环境并加载一个.NET程

c++ - 与 QtScript 相比,带有 Qt 的 Lua 有多容易?

我刚刚开始使用Qt进行C++开发。但是,我也对使用Lua编写我的应用程序脚本很感兴趣,因为各种文章都说明了它在编写应用程序的工作流/用户界面/胶水方面的开发速度(易用性)。但是,开箱即用的Qt不支持它,而是包含QtScript。我的问题基本上是我应该尝试将Lua与Qt结合使用来开发商业应用程序,还是坚持使用SDK中提供的QtScript?我猜主要是开发速度与稳定性的问题。 最佳答案 我遇到过同样的困境。我更喜欢Lua而不是ECMAScript对于这些类型的任务。然而,尽管编写Lua绑定(bind)很容易,但QtScript提供的集成