【问题标题】:Windows path searching in LoadLibrary with manifest使用清单在 LoadLibrary 中搜索 Windows 路径
【发布时间】:2008-09-30 18:17:12
【问题描述】:

如果您在没有路径的情况下调用 LoadLibrary(例如,LoadLibrary("whatever.dll"),Windows 通常会遵循其标准搜索算法,与用于查找 EXE 的算法相同。

我的问题是:假设应用程序清单指定了系统 DLL 的特定版本,例如 comctl32.dll 6.0。在这种情况下,LoadLibrary("comctl32.dll") 会立即转到正确的并排文件夹,还是仍会执行某种搜索?

【问题讨论】:

    标签: windows dll manifest loadlibrary side-by-side


    【解决方案1】:

    来自Microsoft:

    应用程序可以通过指定完整路径、使用 DLL 重定向或使用清单来控制加载 DLL 的位置。如果这些方法均未使用,系统会在加载时搜索 DLL,如本主题所述。

    所以是的,如果存在清单,它将直接转到 SxS 文件夹。

    【讨论】:

      【解决方案2】:

      要在遇到缺少库的问题时探测加载程序,您可以使用“sxstrace”功能。 www.codeproject.com/KB/DLL/QueryAssemblyIdentities.aspx 给出了一些关于 manifest 和 WinSxs 之间依赖关系的细节。

      【讨论】:

        猜你喜欢
        • 2011-04-09
        • 1970-01-01
        • 2021-11-02
        • 1970-01-01
        • 1970-01-01
        • 2019-03-09
        • 2012-03-27
        • 2011-03-26
        • 1970-01-01
        相关资源
        最近更新 更多