0

该项目在 Visual Studio 的调试模式下运行正常,但是当我尝试双击生成的 exe 时,它​​说缺少一些 dll。当我复制exe旁边丢失的dll并再次双击时,没有出现错误消息对话框,但也没有发生任何事情(该项目具有基于Qt的GUI并引用了一些外部png文件)。

Visual Studio 如何运行 exe?我怎样才能自己运行exe?我应该为该项目创建一个安装程序以使其在其他计算机上运行吗?

4

2 回答 2

1

您需要静态构建或提供所需的 dll 文件。

http://www.tapkaa.com/2013/05/what-dll-files-are-required-to-run-an-application-develop-with-visual-c/上的页面告诉您如何找到丢失的dll 文件。

于 2013-06-14T13:08:54.150 回答
0

当进程需要按名称加载 DLL(没有完整路径)时,它将检查几个不同的位置。这些地方之一可能是当前工作目录。(搜索路径的细节因历史和安全问题而变得复杂,您可以通过在 MSDN 上查找LoadLibrarySetDllDirectory来了解详细信息。)

在 Visual Studio 中,如果您查看项目的“属性”页面,然后单击“调试”选项卡,您将看到从 Visual Studio 启动程序时将哪个目录设置为工作目录。当您双击一个图标时,我相信工作目录将是可执行文件的目录。如果这些不同,这可以解释为什么您能够在一种情况下找到 DLL,而在另一种情况下却不能。

如果您直接调用 LoadLibrary,最好的办法是始终提供库的完整路径。通常,您通过 GetModuleFileName 找出可执行文件的完整路径,然后将文件名部分替换为 DLL 的名称或从可执行文件到 DLL 的相对路径。

如果您未能加载隐式链接的 DLL,那么您可能需要确保您的 DLL 与可执行文件位于同一目录中。

于 2013-06-14T17:21:31.043 回答