2013-07-17 203 views
4

我有一個關於Lua和https的問題。我正在爲支持Lua的路由器開發一些軟件。壞事是這個路由器不支持調試。所以我正在爲Lua尋找一個IDE。Lua for windows https錯誤:「%1不是有效的Win32應用程序」

我在Win 7 64位操作系統上使用Lua開發工具和LuaForWindows。直到現在,一切都像它應該的樣子。但現在我必須通過https調用某些網址。路由器本身有一個包ssl.lua,你可以用require ("ssl.https")語句來使用這個包。但我想用Lua開發工具進行調試。我正在尋找與Windows兼容的軟件包,並找到了「Luasec」項目。

正如此線程中提到的「Lua with the Freebase API」;我已經下載了Luasec

我已經把ssl.lua和SSL文件夾我的盧阿安裝中的我已經把ssl.dll在clibs文件夾中的LUA安裝中。

對於測試,我只在我的Lua文件中做了一個require(「ssl.https」),但它崩潰了。它說:

C:\Program Files (x86)\Lua\5.1\lua.exe: error loading module 'ssl.core' from file 'C:\Program Files (x86)\Lua\5.1\clibs\ssl.dll': 
    %1 ist keine zulässige Win32-Anwendung. (%1 is no a valid Win32 application) 

我測試過它在Win 7的32位PC太並將其與此崩潰:

C:\Program Files\Lua\5.1\lua.exe: error loading module 'ssl.core' from file 'C:\Program Files\Lua\5.1\clibs\ssl.dll': 
    Das angegebene Modul wurde nicht gefunden. (The module cant be found) 

任何人可以幫我得到這個工作?

+0

你是否檢查過Lua和庫的指令集匹配? 32/64位 – dualed

回答

3

我在Windows 7 64位上也有同樣的問題,使用Alien加載Windows DLL。

我正在加載的庫(即DLL)是一個64位DLL,但Lua for Windows是一個32位應用程序。

我有一個32位版本的DLL,我加載,而是工作。看看你是否也可以找到你的庫的32位版本。

至於你在32位Windows上的問題,這當然可能是由於其他因素,但如果你使用的是相同的64位DLL,我想這也是行不通的。

1

昨天我得到了這個問題,並通過下載Luasec的源代碼解決了這個問題,並在32位Windows 7電腦上使用靜態庫構建它。你可以嘗試建立你自己的。

我在項目的C/C++和鏈接器屬性中更改了一些配置。 下面是我變了:

  • C/C++ - >代碼生成 - >運行時庫:多線程(/ MT)
  • 鏈接器 - >常規 - >附加庫目錄:C:\ OpenSSL-的Win32 \ LIB \ VC \靜態
  • 鏈接器 - >輸入 - >附加依賴:添加libeay32MT.lib和ssleay32MT.lib

或者,如果你需要,你可以下載我的版本here

相關問題