【发布时间】:2020-11-06 01:08:21
【问题描述】:
我已经下载了最新版本的 Lua,并将源代码包含在 Embarcadero 的 c++builder 项目中。一切都很顺利。完美编译。
但是当我运行我的脚本时,它就会停止正常工作。
这个脚本没问题
-- Script
Tp = tonumber( Temp )
Sp = tonumber( Setpoint )
Clr = "0xFF00FF00"
Db = 0.5
Hi = (Sp+Db)+1
Lo = (Sp-Db)-1
f = Hi
--
此脚本失败
-- Script
Tp = tonumber( Temp )
Sp = tonumber( Setpoint )
Clr = "0xFF00FF00"
Db = 0.5
Hi = (Sp+Db)+1
Lo = (Sp-Db)-1
f = math.floor( Hi )
--
如果我尝试使用string.format,它也会失败,所以看起来库没有正确加载。
我使用luaL_openlibs() 加载库。
我得出的结论是,必须有一个我需要使用的编译器指令。但我找不到任何有影响的东西。
如果有人有任何关于将源代码构建到自己的应用程序中的信息,我很想知道。
我这样做的主要原因是为了速度。
我的应用程序是一个针对传入数据运行脚本的数据服务器,我希望有数百个数据连接,包括输入和输出。
【问题讨论】:
-
请添加描述脚本如何失败的错误 - 以确保这是
math.floor和string.format缺席的问题。请添加初始化 Lua 状态和加载库的代码部分。乍一看,似乎只加载了基本模块,但很难说没有确切的错误和代码。 -
我尝试读取错误,但它返回了我加载的脚本的文件名。只有来自 lua_pcall 的返回值表明存在问题。我会尽快拿到其他物品并发布
-
if (lua_pcall(L,2,0,0)!=LUA_OK) fprintf(stderr, "%s\n", lua_tostring(L,-1));通常足以收到消息。 -
现在是这样的时候,我希望互联网可以伸出手来扇我一巴掌。在复制要粘贴到此处的代码时,我注意到我有 2 个加载库的位置。如果有任何可用的脚本,则在开始时进行一次,然后在有人添加第一个脚本时进行第二次。我已经修复了第二个,但不是第一个。不用说它现在运行良好。是时候增加数据了。谢谢你。如果你不问,我就不会注意到(反正还没有)。
-
请添加您的解决方案作为答案
标签: windows lua scripting c++builder