如何在不需要在客户端计算机上安装 OpenAL 的情况下随我的应用程序一起交付 OpenAL32.dll?

How do I deliver OpenAL32.dll with my application without requiring OpenAL installation on the client machine?

我有一个使用 OpenAL 库的 32 位 C++ Windows 应用程序。我正在使用官方 OpenAL 安装程序来安装所需的 DLL 文件,但是当我发布我的应用程序时,我想找到一种交付它的方法,而不需要用户像我一样单独安装 OpenAL。

对于其他 DLL 文件,我只是将它们添加到我的项目中,但是对于 OpenAL,我似乎遇到了问题。这可能吗?如果是,怎么做?

显然,我混淆了 Windows 中的 System32 和 SysWow64 文件夹。

应该反过来吧!

  • System32 64 位 Windows 包含 64.dll 文件
  • 64 位 Windows 上的 SysWow64 包含 32.dll 文件

供参考: https://www.howtogeek.com/326509/whats-the-difference-between-the-system32-and-syswow64-folders-in-windows/

我做了什么:

所以我从官方安装源安装了OpenAL。此安装程序将 OpenAL32.dll 文件复制到 System32SysWow64 文件夹中。

由于我的应用程序是 32 位的,因此我需要将 OpenAL32.dll 从 SysWow64 文件夹复制到我的可执行目录中。一旦我卸载了 OpenAL(它从我的 Windows System32SysWow64 文件夹中删除了这些 .dll 文件,它与我的可执行文件附带的 .dll 文件一起工作。