- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试有条件地使用(如果可用)函数 PathCchAppend
.我从 header pathcch.h
中获得了函数签名。但是,当我尝试从 SHLWAPI.DLL
获取函数地址时,它失败了:
auto pca = GetProcAddress(GetModuleHandle(L"shlwapi.dll"), "PathCchAppend");
使用 Depends,我看到这个函数在这个 DLL 中不存在(我在 Windows 10 上)。不存在任何 pathcch.dll
,因此也无法加载它。
这个函数放在哪个DLL中?
编辑:感谢答案。在这里,我找到了以下答案中提到的 DLL 名称:
https://learn.microsoft.com/en-us/windows/win32/apiindex/windows-81-api-sets
最佳答案
您可以使用 DUMPBIN从 .lib 文件中提取此信息的工具:
dumpbin /headers /path/to/pathcch.lib
然后您需要筛选输出以找到有问题的函数。例如,这是 x64 版本的 lib 文件的输出:
Version : 0 Machine : 8664 (x64) TimeDateStamp: FFFFFFFF Sun Feb 07 06:28:15 2106 SizeOfData : 0000002E DLL name : api-ms-win-core-path-l1-1-0.dll Symbol name : PathCchAppend Type : code Name type : name Hint : 5 Name : PathCchAppend
关于硬编码此 DLL 名称的向后和向前兼容性的评论,.lib 文件硬编码 DLL 名称。因此,如果您使用 .lib 文件链接到该函数,那么您就是在硬编码对该 DLL 的依赖性。这将 Microsoft 绑定(bind)到一个契约(Contract)中,以便在未来的 Windows 版本中继续从此 DLL 中导出此函数。因此,使用 LoadLibrary/GetProcAddress
显式链接与使用 SDK 中的 .lib 文件隐式链接一样安全。
关于c++ - 哪个 DLL 有 PathCchAppend?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57354840/
我正在尝试有条件地使用(如果可用)函数 PathCchAppend .我从 header pathcch.h 中获得了函数签名。但是,当我尝试从 SHLWAPI.DLL 获取函数地址时,它失败了: a
我正在尝试有条件地使用(如果可用)函数 PathCchAppend .我从 header pathcch.h 中获得了函数签名。但是,当我尝试从 SHLWAPI.DLL 获取函数地址时,它失败了: a
我是一名优秀的程序员,十分优秀!