2

私が使うとき

local socket = require("socket.core")

それは正常に動作します.dllは「dir/socket/core.dll」にありますが、dllを移動すると

「dir/folder/core.dll」と使用

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

見つかったことを返しますが、folder.core で特定のモジュールを見つけることができませんでした。

その socket.core 要件の外で Luasocket を使用するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

6

必要な場合はrequire("socket.core")、共有ライブラリ (dll) に luaopen_socket_core (LuaSocket ライブラリにある) というエクスポートされた関数が必要です。したがって、常に as として呼び出す必要がありますrequire("socket.core")

DLL を他のフォルダに移動する場合はpackage.cpath、チェックするファイル パターンを含む を変更する必要があります。

LuaSocket バイナリを に移動するとしますfolder。を呼び出す前に、バイナリを配置しfolder/socket/core.dllて変更する必要があります。package.cpathrequire

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

?requireファイル パスに変換された に渡される名前を表します: . -> /、つまりsocket.core -> socket/core.

于 2011-06-05T17:13:36.573 に答える
0

最後にドットを削除するだけでよいと思います。

local socket = require("folder.core")
于 2011-06-05T17:11:14.763 に答える