dll 缺少对 Windows 7 文件的依赖项
Posted
技术标签:
【中文标题】dll 缺少对 Windows 7 文件的依赖项【英文标题】:dll missing dependencies on Windows 7 files 【发布时间】:2013-06-15 06:54:06 【问题描述】:我已经构建了一个 C++ dll 以从 dot net 使用。当我运行程序时出现错误,找不到 dll。
dll 在那里 - 但我使用依赖项步行器检查了它 - 并得到了以下内容:
API-MS-WIN-CORE-COM-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
DCOMP.DLL
Error opening file. The system cannot find the file specified.
我进行了搜索 - 显然这些是 Win 7 文件,而我有 Windows 7 - 但没有找到。
我能做什么?
我使用的是 VS2010,Windows 7
【问题讨论】:
您的 DLL 需要它还是间接需要它?缺少哪些导入? 我认为它是间接的。 dll 依赖于佳能 SDK。代码在 C++ 中用作库的 SDK 可以工作 - 但我创建的用于将功能导出到 dot net 的 dll 存在问题。 这些文件实际上是存在的,你只是看不到它们。 Dependency Walker 已经很久没有维护了,它在现代 Windows 版本上已经可以正常工作了。使用 SysInternals 的 ProcMon,您会看到它正在搜索 DLL,但没有找到。 谁能告诉我你是如何解决这个问题的? 这些文件在 Windows 7 上不存在,也永远不会存在。 Hans Passant 的回答完全不正确 【参考方案1】:Dependency Walker(来自这里:http://www.dependencywalker.com/)已经过时了。虽然它在 win7/win8 上运行,但无法从中检测到正常的 DLL。如果您打开最新版本 2.2.6000 的“关于”选项卡,您会看到它是在 2006 年 10 月 29 日构建的。哎呀。很惊讶它完全有效。
您可以在多个位置获取进程监控工具。我从这里抢到了我的:https://technet.microsoft.com/en-us/sysinternals/bb896645
一旦你得到它,你可以为“程序名称是”添加一个过滤器,然后运行你的程序。你会看到加载和加载失败的东西等等。结果并不像您希望的那样简洁,但是当出现故障时,它会被列出。
【讨论】:
感谢您的回答,从技术上讲,Hans Passant 在他的评论中已经回答了这个问题。 是的,但您不能通过评论来结束问题。所以,我想我会让社区知道,我尝试遇到了同样的问题,尝试了评论,它有效,所以我发布了一个答案以明确评论是正确的。以上是关于dll 缺少对 Windows 7 文件的依赖项的主要内容,如果未能解决你的问题,请参考以下文章