1

我正在尝试将 Lua 嵌入 C++(并学习 Lua),从 Elias Daler 的训练轮方法开始。我正在使用 MSVC 14.0、LuaBinaries 5.3.2 - Release 1(特别是 lua-5.3.2_Win32_dllw4_lib.zip此处)和 LuaBridge 2.0。

我添加了以下附加包含目录:

C:\lua-5.3.2_Win32_dllw4_lib\include;C:\LuaBridge

以及以下附加依赖项:

C:\lua-5.3.2_Win32_dllw4_lib\liblua53.a

我正在使用以下来源(尽可能减少):

#include "stdafx.h"
#include <LuaBridge.h>

int main() {
    luabridge::lua_State* L = luabridge::luaL_newstate();
}

该源代码可以正常编译和链接,但应用程序本身会导致标准缺失 DLL 系统错误:

程序无法启动,因为您的计算机缺少 lua53.dll。尝试重新安装程序以解决此问题。

lua53.dll 在 C:\lua-5.3.2_Win32_dllw4_lib\ —我错过了什么?

4

1 回答 1

1

根据微软官方文档,Windows 在以下目录中搜索 DLL:

  1. 当前进程的可执行模块所在的目录。

  2. 当前目录。

  3. Windows 系统目录。该GetSystemDirectory函数检索此目录的路径。

  4. Windows 目录。该GetWindowsDirectory函数检索此目录的路径。

  5. PATH环境变量中列出的目录。

因此,解决问题的一种方法是添加C:\lua-5.3.2_Win32_dllw4_lib到当前用户的PATH.

与其他选项相比,它的优点是不需要管理员权限,也不需要lua53.dll位于当前目录或与可执行文件相同的目录中。

于 2016-05-20T17:37:42.603 回答