【问题标题】:How to determine the process that currently using a specific DLL如何确定当前使用特定 DLL 的进程
【发布时间】:2013-01-14 01:55:44
【问题描述】:

我在用Visual Studio构建时遇到一个问题,它说一个DLL不可访问,因为它当前被另一个进程使用,我的问题是如何确定“另一个进程”?

【问题讨论】:

  • 您是否尝试过重新启动计算机? :)
  • 也许这值得一试:)

标签: c++ windows visual-studio


【解决方案1】:

Process Explorer 有一个工具,允许您在当前运行的进程中搜索特定文件。要执行此搜索,请转到Find->Find Handle or DLL...,然后输入您感兴趣的文件的名称。

【讨论】:

    【解决方案2】:

    【讨论】:

    • 在使用中的 DLL 上返回 INFO: No tasks are running which match the specified criteria.,而 ProcessExplorer 解决方案有效
    • 这样更安全,应该代替第三方应用使用
    【解决方案3】:

    虽然 Process Explorer 通常是最好的工具,但当 VS 向您抛出此错误通常意味着 您正在尝试的应用程序compile 仍在运行(从较早的运行开始),因此链接器无法写入其输出。

    【讨论】:

      【解决方案4】:

      使用来自SysInternals Process Explorer 的查找功能(查找 -> 查找句柄或 DLL)。

      【讨论】:

        【解决方案5】:

        您也可以在Process Explorer 中使用“关闭句柄”功能。

        【讨论】:

          【解决方案6】:

          我建议你试试unlocker。帮了我好几次。

          【讨论】:

            【解决方案7】:

            您可以使用Process Explorer查看哪些进程加载了哪些Dll。

            【讨论】:

            • 由于这是一个编程站点而不是帮助台,我怀疑 OP 对此 Process Explorer 正在使用的 API 感兴趣,而不是工具本身。
            • 另外 4 个人已经发布了 PE 作为解决方案,所以我们很快就会看到这是否是 OP 所追求的。
            猜你喜欢
            • 2010-12-23
            • 2018-01-05
            • 1970-01-01
            • 1970-01-01
            • 2013-08-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多