“socket.core”不是有效的Win32应用程序

时间:2016-11-14 13:07:02

标签: eclipse lua luasocket

阅读this后,下载socket的x64二进制文件并在lua“clibs”目录中替换它们,没有任何正面结果,我想帮助解决我从eclipse收到的以下错误:

Exception in thread "main" com.naef.jnlua.LuaRuntimeException: error loading module 'socket.core' from file 'C:\Program Files (x86)\Lua\5.1\clibs\socket\core.dll':
    %1 is not a valid Win32 application.

    at com.naef.jnlua.LuaState.lua_pcall(Native Method)
    at com.naef.jnlua.LuaState.call(LuaState.java:555)
    at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.run(JNLua51Launcher.java:128)
    at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.main(JNLua51Launcher.java:143)

这是我的生命:

  • Windows 10 x64;
  • Lua 5.3;
  • LUA_PATH是正确定义的;
  • LUA_CPATH是相应定义的;

这是我的代码:

-- Requires
local socket = require 'socket'

-- Settings
host = "localhost"
port = 8384;

-- Program Start
print("Program Start")

-- Functions

local function main()

client = socket.connect(host, port)
client:send("test!")
while true do
  s, status, partial = client:receive(1024)
  print(s or partial)
  if status == "closed" then 
    break 
  end
end
client:close()

end

main()

1 个答案:

答案 0 :(得分:0)

从Lua安装的文件路径(GROUP BY),看起来您已经安装了32位版本的Lua,并且正在尝试使用它加载64位DLL。这不起作用;这两种架构不能在一个过程中混合使用。

下载32位版本的套接字模块或64位版本的Lua解释器。