我的可执行文件有问题.我在我的Windows 7 64位开发盒上运行这个C++ 32位可执行文件,它还包含所有这些Microsoft应用程序(Visual Studio 2008 + 2010,TFS,SDK,Microsoft Office)......它仍然可以正常运行.
现在我得到了同一个程序的客户端安装,并被要求用干净的Windows 7安装进行测试.因此,我得到了一个Windows 7 64位VMware,并将其更新为Windows 7 SP 1(我的开发人员盒正在调整的版本相同).但是在我的开发人员盒上,一切都很好,该程序不适用于VMware(30天试用版)框.
x86 Dependency Walker告诉我缺少以下DLL文件:
我搜索了那些API-MS-WIN -... DLL文件,发现它们实际上应该已经成为Windows 7的一部分(一些网站声称属于Windows 8和Windows Server 2012).
我已经尝试过我发现的建议修复程序,它们是:
但这并没有解决任何问题.:-(
旁注:我的开发盒也没有它们,似乎不需要它们.例如,我的盒子上的user32.dll没有链接其中一个,而VMware上的安装确实如此.
有关如何解决此问题的任何想法?我试图在Microsoft页面上找到合适的下载/修复程序,但是我失败了.
在解决了我的问题后,我想报告我发现的内容,我不能将此作为答案发布,因为问题已经结束.
实际上Dependency Walker工具报告的所有DLL文件都丢失了,即那些
* API-MS-WIN-CORE-...
Run Code Online (Sandbox Code Playgroud)
类型DLL文件不是实际问题的一部分.
在我的情况下,三个OCX文件的注册丢失,之后一切都很好,但依赖Walker工具仍然列出了所有相同的DLL文件,即使程序刚刚运行正常.
它的要点:正如其他人所说,该工具现在有点过时,并不总是适用于较新的操作系统.因此,请密切关注并且不要因错过'API-MS-WIN-CORE-COM-L1-1-0.DLL'而误导......,问题可能完全在其他地方.
mea*_*ppl 62
此问题与缺少Visual Studio"可再发行组件包"有关.基于依赖性遍历缺少哪一个是不明显的,但我会首先尝试与您的编译器版本对应的那个,看看事情是否正常运行:
我遇到了这个问题因为我使用的是Visual Studio编译器,而不是完整的Visual Studio环境.
敢于在这里注入一个新链接:最新支持的Visual C++下载.SteinÅsmul,29.11.2018.
小智 19
我也是,我刚刚用MSCVC 2012解决了C++ Qt5和W7 64位的相同问题.
一开始我以为这是一个MSVC/windows dll问题,但正如BorisP所说,问题出在我的项目依赖项中.关键是" 如何在Qt5中了解您的项目依赖性? ".
因为我没有找到任何明确的方法来了解它(Dependency Wolker对我没有太多帮助......),我接下来的"逆过程",不超过5分钟,避免了很多令人头疼的Dlls依赖:
当你在同一个文件夹中拥有所有DLL时,更容易找到哪些DLL无效(XML,webkit ......等等......),因此这种方法不需要超过五分钟.
Bor*_*isP 16
我刚刚解决了同样的问题.
Dependency Walker在这种情况下会产生误导,导致我浪费时间.所以,第一篇帖子中"丢失"的dll列表没有帮助,你可以忽略它.
解决的办法是找到它引用您的项目通话和检查,如果他们真的在服务器上安装.
@Ben Brammer,缺少3个.ocx文件并不重要,因为他们只缺少Leo T Abraham的项目.您的项目可能会调用其他dll.
在我的例子中,它不是3个.ocx文件,但缺少MySQL连接器DLL.在服务器上安装MySQL Connector for .Net后,问题就消失了.
因此,简而言之就是:检查所有项目引用是否存在.
干杯
Ofe*_*lon 11
如前所述,DCOMP是VC++可再发行组件的一部分(实现OpenMP运行时),并且是唯一真正缺少的组件.其余的都是错误的报道.
具体来说,API-MS-WIN-XXXX.DLL是API集合 - 本质上,自Windows 7以来逐渐引入了额外级别的调用间接.依赖性walker开发似乎在此之前很久就停止了,它无法正确处理API集.
所以没什么可担心的.你不会错过更多.
找到真正需要的DLL(如果确实是问题)的更好的替代方法是运行ProcessMonitor并从失败中倒退,在所有系统路径中搜索特定DLL的失败探测序列.
我也遇到了这个问题,但是这里似乎是一个共同主题的解决方案,我在网上的其他地方看到的是"[重新安装可再发行组件包".但是,对于我不起作用的问题,因为运行我们产品的安装程序(安装可再发行组件包)来测试我们闪亮的新VS 2015版本时出现了问题.
问题出现是因为列出的dll不在Visual Studio安装路径中(例如C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\redist),因此尚未添加到安装中.这些api-ms-win-*dll作为Visual Studio 2015安装的一部分安装到Windows 10 SDK安装路径(例如C:\ Program Files(x86)\ Windows Kits\10\Redist).在Windows 10上安装工作正常,但在Windows 7上安装需要将这些dll添加到我们的产品安装中.有关详细信息,请参阅https://support.microsoft.com/en-us/kb/2999226,其中介绍了VS 2015引起的这些依赖项的添加,并提供了各种Windows平台的下载; 另请参阅https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/,其中介绍了CRT库的重新设计.特别感兴趣的是标题为使用通用CRT的分发软件一节中的第6项:
2015年9月11日更新:支持通用CRT的应用程序本地部署.要获取应用程序本地部署的二进制文件,请安装Windows 10的Windows软件开发工具包(SDK).二进制文件将安装到C:\ Program Files(x86)\ Windows Kits\10\Redist\ucrt.您需要使用您的应用程序复制所有DLL(请注意,在不同版本的Windows上,所需的DLL集是不同的,因此您必须包含所有DLL才能使程序在所有受支持的Windows版本上运行).
这个贡献并没有真正回答最初的问题,但考虑到这个线程的命中率,我认为有很多人在处理API-MS-WIN-CORE-库无法找到的问题.
我能够解决一个问题,我的应用程序拒绝启动错误消息,通过简单地更新Visual Studio找不到API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL.
我不认为我的构建环境(Win7 Pro SP1,Visual Studio Ultimate 2012)完全搞砸了,它对我的大多数项目都很好.但在某些特定情况下,我收到了错误消息(见下文).
经过更新的Visual Studio 11从最初的CD-版本(我忘了抬头看版本号),版本更新11.0.61030.00 4还破项目再次运行.
我希望这有助于某人!
