gpt4 book ai didi

c++ - 静态链接 SHFolder 组件

转载 作者:行者123 更新时间:2023-11-28 08:12:24 25 4
gpt4 key购买 nike

我有一个用 C++ Builder XE 开发的 Win32 应用程序,在过去几年中它在 WinPE 2.x/3.0 环境中运行良好。在过去的几个月里,我做了一些重大更改,但现在它已经完成,我尝试在 WinPE 下运行它,但我收到错误消息:程序无法启动,因为您的计算机中缺少 SHFOLDER.DLL .

由于我无法控制 WinPE 环境,并且此 dll 不包含在 WinPE 中,我的第一个想法是尝试静态链接必要的组件。但是,似乎此 dll 提供的功能只能从 dll 中使用。

我没能找到关于这个 DLL 的任何有用信息,不幸的是我不知道我添加的哪个功能现在需要这个 DLL。我希望有人对此有经验,并且可以帮助指导我静态链接所需的组件,或找到解决方法,以便此应用程序不再需要 dll。谢谢!

最佳答案

shfolder.dll 用于获取 shell 文件夹路径,如桌面、我的文档、Windows 目录等。它实现了 SHGetFolderPath()由于 SHGetSpecialFolderPath() 之间的实现差异,所有版本的 Windows 都一致, SHGetFolderLocation() , SHGetKnownFolderPath()

MSDN 对此有更好的解释:

This function is a superset of SHGetSpecialFolderPath, included with earlier versions of the Shell. On systems that preceded those that include Shell32.dll version 5.0 (Windows Millennium Edition (Windows Me) and Windows 2000), SHGetFolderPath was obtained through SHFolder.dll, distributed with Microsoft Internet Explorer 4.0 and later versions. SHFolder.dll always calls the current platform's version of this function. If that fails, it tries to simulate the appropriate behavior. SHFolder.dll continues to be included for backward compatibility, but the function is now implemented in Shell32.dll.

DLL本身是redistributable因此您可以将其包含在 WinPE 中。您也可以只使用任何其他功能,如果它们适合您并且您不需要任何特殊情况。

关于c++ - 静态链接 SHFolder 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8683038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com