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

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

有帮助吗?

解决方案

来自 Microsoft:

  

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

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

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top