2016-11-14 3 views
0

this을 읽고 소켓의 x64 바이너리를 다운로드 한 다음 lua "clibs"디렉토리에서이를 바꿔 긍정적 인 결과가 없으면 다음 오류를 해결하는 데 도움이 필요합니다. 내가 일식에서 발생하고 있습니다 것을 :"socket.core"는 유효한 Win32 응용 프로그램이 아닙니다

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) 

이 내 enviorioment입니다 :

  • 윈도우 (10) 64;
  • 루아 5.3;
  • LUA_PATH가 정확하게 정의됩니다.
  • LUA_CPATH가 정확하게 정의됩니다. 여기

내 코드입니다 : 당신의 루아 설치 (C:\Program Files (x86)\Lua\5.1\clibs\socket\core.dll)의 파일 경로에서

-- 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() 

답변

0

, 당신이 루아의 32 비트 버전을 설치하고로드하려고하는 것 같습니다 그것을 가진 64 비트 DLL. 이것은 작동하지 않습니다. 두 아키텍처는 하나의 프로세스에서 혼합 될 수 없습니다.

소켓 모듈의 32 비트 버전 또는 64 비트 버전의 Lua 인터프리터를 다운로드하십시오.

+0

여기에서 다운로드 : http://files.luaforge.net/releases/luasocket/luasocket/luasocket-2.0.2 및 여기 : http://luabinaries.sourceforge.net/download.html 모든 파일, 같은 결과로 32 비트의 모든 것을 남겼습니다. –

관련 문제