c++ - 如何处理 "This application has failed to start because myproject.dll was not found."错误

标签 c++ visual-studio dll

我有一个项目A链接到一个项目B。B被编译成一个.dll,而A是主程序并被编译成一个.exe

项目的编译没有任何问题,但是当我运行程序时,我得到一个弹出窗口说“这个应用程序启动失败,因为找不到 B.dll。重新安装应用程序可能解决问题。”

我已经做了几次清理,试图移动 dll,但那行不通。

顺便说一句,我正在使用 visual Studio 9.0

最佳答案

当 Windows 加载 EXE 时,它会直接或间接地检查需要哪些 DLL。在您的情况下,A.EXE 将需要 B.dll。当 Windows 确定该列表时,它将使用 this procedure定位 DLL:

  • 可执行文件存放的目录[1]
  • 当前目录,由 CreateProcess() 设置
  • Windows 系统目录(包含大多数 Windows DLL,例如 USER32.DLL)
  • Windows 目录(主要是出于遗留原因)
  • 来自 PATH 变量的目录(也是出于遗留原因)

[1] 符号链接(symbolic link)可以导致一个可执行文件有多个路径。在这里准确地说,它是传递给 CreateProcess 的可执行文件的路径。

关于c++ - 如何处理 "This application has failed to start because myproject.dll was not found."错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3237642/

相关文章:

python - 使用来自 C++、PyObject 的参数创建 Python 构造函数

c# - 基类中的审计信息

c# - 如何在 C# 中调用托管 DLL 文件?

c++ - 从托管 C++ 引用非托管 C++ DLL

c++ - 尝试使用静态方法/成员

c++ - 我想要 C++/MFC 中图像的 Exif 信息? (使用xnview.dll)

c++ - 重载返回 vector 的函数,以便它可以返回不同类型的 vector

windows - 为什么 Visual Studio Build Tools 安装程序会立即返回而不安装任何东西?

windows - OpenMp 不使用所有 CPU(双路、windows 和 Microsoft visual studio)

xamarin - 如何将第三方 .NET dll 添加到 Xamarin Forms