如何在使用LuaBinaries和LuaBridge时解决丢失的Lua DLL?

时间:2016-05-20 17:07:51

标签: c++ dll lua luabridge

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

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

  

C:\ LUA-5.3.2_Win32_dllw4_lib \包括; 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 \中 - 我错过了什么?

1 个答案:

答案 0 :(得分:1)

根据official Microsoft documentation,Windows在以下目录中搜索DLL:

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

  2.   
  3. 当前目录。

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

  6.   
  7. Windows目录。 GetWindowsDirectory函数检索此目录的路径。

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

  10.   

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

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