2011-06-05 21 views
2

當我使用LuaSocket socket/core.dll需要的位置?

local socket = require("socket.core") 

它工作正常,該dll位於 「DIR /插座/ core.dll」,但是當我移動的dll說

「目錄/文件夾/ core.dll 「並使用

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

它返回找到它,但它無法找到folder.core中的特定模塊。

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

謝謝!

回答

6

如果你想require("socket.core"),共享庫(DLL)必須有一個名爲luaopen_socket_core(其中LuaSocket圖書館)的導出功能。因此,它總是需要被稱爲require("socket.core")

如果您想將DLL移動到其他文件夾中,您必須修改package.cpath,其中包含將要檢查的文件模式。

假設您要將LuaSocket二進制文件移動到folder。你必須把二進制中folder/socket/core.dll和修改package.cpath調用require之前:

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

?代表傳遞到require轉換爲文件路徑名稱:. -> /,即socket.core -> socket/core

+0

非常感謝幫助了我,你是一個拯救生命的人! :d – 2011-06-05 17:18:38

0

我想你只需要在最後刪除點。

local socket = require("folder.core")