c++ - 为什么 DLL 没有复制到输出目录? C++ Visual Studio

标签 c++ visual-studio dll visual-studio-2015

我建立了一个 c++ 项目以在 visual studio 中使用 DLL。该库有 .h .lib 和 .dll 文件。程序编译运行,成功使用库。 DLL 放在 的根目录中,而不是输出目录。当我构建时,我希望将 DLL 从源复制到输出目录,但事实并非如此。我在输出目录中看到的是类型、应用程序、增量链接器文件和程序调试数据库这 3 个文件。

也许我错了,但我认为 DLL 需要与输出目录中的可执行文件位于同一文件夹中。那么这是怎么回事?

最佳答案

这也是我很难找到的东西,但 VS 不会为您复制 .dll。您必须通过创建一个构建后事件来告诉它。查看 XCOPY 上的链接: https://support.microsoft.com/en-us/kb/240268

我需要将一些 dll 复制到我的目标目录(构建目录),因此在我的项目设置中的构建后事件中使用了以下内容:

xcopy $(ProjectDir)openal32.dll $(TargetDir) /Y /D

只需将“openal32.dll”替换为您需要复制的任何 dll,并为您需要复制到目标(构建)目录的每个 dll 创建一个新的构建事件。

/Y 禁止提示确认覆盖 /D 指示编译器仅当它是此构建中 dll 的较新版本时才进行复制。

关于c++ - 为什么 DLL 没有复制到输出目录? C++ Visual Studio ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31222152/

相关文章:

c++ - D.R.Y 与 "avoid macros"

c++ - "Side-By-Side"Visual Studio C++ 错误?

Java:使用 char** 和回调作为参数加载 c++ dll

windows - 从 DllMain 调用 LoadLibrary

c++ - erase() 不适用于结构/对象内的 STL vector ?

c++ - 在事件驱动/异步框架中使用第 3 方库的回调(无文件描述符)

c++ - new 或 new[] 运算符

c# - 使用 Visual Studio Team Services 进行自动化用户界面测试

visual-studio - Visual Studio 2005 : skipping builds for unknown reason?

C++ WINAPI 通过 GetProcAddress 调用导出函数