我需要一个具有基本要求的模块:
require "luatorrent"
并且在32位和64位版本的Windows 8/7 / Vista上一切正常,但是当项目在XP上运行时,我收到此错误:
所以问题是:
答:任何人都知道为什么这个问题似乎是XP特定的,即使它与Lua 5.1和其他文件完全相同?
B:如果没有重新编译模块这不是可修复的东西,我不能这样做,因为它旧的并且没有源,那么我可以以某种方式执行需求然后获得真/假如果加载所以我可以做“if”语句继续加载模块的函数,因为抛出的错误会破坏代码并且应用程序不会继续?
答案 0 :(得分:3)
查看Lua Reference Manual entry on package.loaders。
第一个加载器在package.path
中找到DLL,并尝试将其作为DLL加载。它失败并显示您看到的错误消息。因此,Lua通常继续使用DLL加载器,它在package.cpath
中查找DLL。我想你的文件不在cpath
。或者,DLL加载器可能会丢失。检查#package.loaders != 4
。
对于调试,您还可以尝试通过低级package.loadlib
函数加载DLL(函数名应为"luaopen_luatorrent"
)。
我想到的另一个原因是,DLL是64位,但是你的XP是32位。但我认为,在这种情况下,错误消息看起来会有所不同。
答案 1 :(得分:1)
感谢帮助人们,事实证明libeay32.dll需要在system32或与该模块工作的模块相同的文件夹中。