5

我有一个关于 Lua 和 https 的问题。我正在为支持 Lua 的路由器开发一些软件。不好的是这个路由器不支持调试。所以我一直在寻找 Lua 的 IDE。

我在 Win 7 64 位操作系统上使用 Lua 开发工具和 LuaForWindows。到目前为止,一切都按原样进行。但现在我必须通过 https 调用一些 url。路由器本身有一个包 ssl.lua,你可以使用这个包和require ("ssl.https")语句。但我想用 Lua 开发工具调试它。我正在寻找与 Windows 兼容的软件包,并找到了“ Luasec ”项目。

正如这个线程“ Lua with the Freebase API ”中提到的那样;我已经下载了 Luasec

我已将ssl.lua和 ssl 文件夹放入我的 lua 安装中,我已将其放入 lua 安装ssl.dll中的 clibs 文件夹中。

为了测试,我只在我的 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 位电脑上对其进行了测试,但它会因此崩溃:

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)

有人可以帮我完成这项工作吗?

4

2 回答 2

3

我在 Windows 7 64 位上也遇到了同样的问题,使用 Alien 加载 Windows DLL。

我正在加载的库(即 DLL)是一个 64 位 DLL,但用于 Windows 的 Lua 是一个 32 位应用程序。

我有一个我加载的 32 位版本的 DLL,它可以工作。看看你是否也能找到你的库的 32 位版本。

至于您在 32 位 Windows 上的问题,这当然可能是由于其他因素造成的,但如果您使用的是相同的 64 位 DLL,我想这也行不通。

于 2013-07-26T05:48:59.173 回答
2

我昨天遇到了这个问题,并通过下载Luasec的源代码并在 32 位 windows 7 pc 上使用静态库构建它来解决它。您可以尝试构建自己的。

我在项目的 C/C++ 和 Linker 属性中更改了一些配置。以下是我更改的内容:

  • C/C++ -> 代码生成 -> 运行时库:多线程 (/MT)
  • 链接器 -> 常规 -> 附加库目录:C:\OpenSSL-Win32\lib\VC\static
  • 链接器 -> 输入 -> 附加依赖项:添加 libeay32MT.lib 和 ssleay32MT.lib

或者,如果需要,您可以在此处下载我的版本。

于 2013-08-09T03:33:55.260 回答