LuaSocket的socket / core.dll所需的位置?

当我使用

local socket = require("socket.core") 

它工作正常,该DLL位于“dir / socket / core.dll”,但是当我移动dll说

“dir / folder / core.dll”并使用

 local socket = require("folder.core.") 

它返回它被发现,但它无法findfolder.core中的特定模块。

如何在socket.core的要求之外使用Luasocket?

谢谢!

如果你想要require("socket.core") ,共享库(dll)必须有一个名为luaopen_socket_core(LuaSocket库)的导出函数。 因此,它总是需要被称为require("socket.core")

如果要将DLL移动到其他文件夹中,则必须修改package.cpath ,其中包含将检查的文件模式。

假设您要将LuaSocket二进制folder移动到folder 。 您必须将二进制文件放在folder/socket/core.dll并在调用require之前修改package.cpath

 package.cpath = package.cpath .. ';folder/?.dll' local socket = require('socket.core') 

? 代表传递给require翻译成文件路径的名字: . -> / . -> / ,即socket.core -> socket/core

我想你只需要在最后删除点。

 local socket = require("folder.core")