【发布时间】:2014-08-11 17:08:42
【问题描述】:
我写了一个 Win32/net DLL,它在 Win XP、Win7 和 8 下运行良好,但在 Win 8.1 下却失败了。
Dependency Walker 说:未找到 API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL (user32.dll 会调用它们)
Google 的意思是,MS 在 8.1 中更改了一些 System-DLL(并且忽略了兼容性),因此许多程序都有相同的问题。
带有“找不到文件”的完整列表:
API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL
MSVCR120.DLL
API-MS-WIN-CORE-SHUTDOWN-L1-1-1.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL
EXT-MS-WIN-NTUSER-UICONTEXT-EXT-L1-1-0.DLL
IESHIMS.DLL
有人知道如何解决这个问题吗?
【问题讨论】:
-
为什么它完全“失败”(启动错误消息等?)以及依赖步行者的相关性是什么? (另外,那东西是不是早就过时了)?
-
你需要停止使用Depends.exe,它已经很久没有维护了。很多事情它不能再处理了,包括带有转发导出的 DLL,比如这些 api*.dll 文件。如果您需要帮助,那么您必须具体说明“它失败了”。
-
@HansPassant:根据我的经验,它支持转发导出就好了。是改变后的 DLL 搜索顺序让它感到困惑。
-
你的 cmets,我发现了问题,我忘了安装 C++ 2010 Redistributable as x86 Version
-
我建议重新打开它。我在使用 boost.python 嵌入 python 时遇到了同样的问题。这不是题外话。
标签: windows winapi dll c++-cli mixed-mode