如何让我的应用程序使用 Visual Studio 找到第三方 DLL?

Posted

技术标签:

【中文标题】如何让我的应用程序使用 Visual Studio 找到第三方 DLL?【英文标题】:How can I make my application find a third-party DLL using Visual Studio? 【发布时间】:2017-11-11 14:54:23 【问题描述】:

我已经阅读了很多关于并关注每一个的问题,但似乎没有任何效果。

我正在尝试将rdkafka 库包含到我的项目中,但每次运行应用程序时都会得到

程序无法启动,因为您的计算机中缺少 librdkafka.dll。

我可以清楚地看到librdkafka.dlllibrdkafka.lib 存在于同一目录中。我已将包含文件添加到项目中,并且还将librdkafka.lib 添加到链接器部分的附加目录中。该项目构建良好,但在运行时会引发该错误。

有谁知道我该如何解决这个问题?

【问题讨论】:

看起来您正在使用静态链接。当你从 VS 开始调试时,当前目录将是你的项目目录(如果我没记错的话)而不是你的可执行文件所在的路径 确保 DLL 在DLL search path中可见 @Asesh 似乎有效。我将所有 dll 都转储到了根目录中,但是如何更改它以使其在指定目录中查找? 打开您的项目属性,然后从左侧窗格中选择Debugging。现在在右侧窗格中,您应该修改 Working Directory 一个 DLL 存在于它所构建的目录中,就像一个回不来的回旋镖。这是一根棍子。您必须将其复制到与使用它的 EXE 相同的目录中。如果构建 DLL 的项目在同一个解决方案中并且不使用怪异的构建设置,那将是自动的。任何具有 Unix 背景的东西往往都是怪异的。如果它不在正确的位置,那么您必须在 EXE 项目的构建后事件中使用 xcopy /d 以确保您拥有可用的副本。 【参考方案1】:

默认情况下在 Visual Studio 中搜索项目目录中的 dll 并自行运行应用程序时会尝试在当前工作目录中查找 dll。将 dll 移至此位置似乎可以解决问题。

【讨论】:

以上是关于如何让我的应用程序使用 Visual Studio 找到第三方 DLL?的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何让我的 Ionic / Apache Cordova / Visual Studio 环境保持最新?

如何让我的 Visual Studio 在没有调试程序的情况下运行不断扩大 RAM 使用量直到 RAM 已满,甚至将 SSD 用作“RAM”?

压缩文件后(它们从 Visual Studio 中的文件路径引用打开),如何让我的应用程序从单独的 Winform 打开? (C#)

如何让我的 Visual Studio 测试套件 Web 测试迭代我的数据源?

Visual Studio Code - 如何向 python 路径添加多个路径?

在visual studio里面,如何能让我看到.CS文件?