我的可执行文件有问题。我在我的 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-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
- GPSVC.DLL
- IESHIMS.DLL
我搜索了那些 API-MS-WIN-... DLL 文件,发现它们实际上应该已经是 Windows 7 的一部分(尽管有些网站声称属于 Windows 8 和 Windows Server 2012)。
我已经尝试了我发现的建议修复,它们是:
- 运行“证监会 /scannow”
- 安装 Visual Studio 2008 SP1 运行时可执行文件
但这并没有解决任何问题。:-(
旁注:我的开发箱也没有它们,似乎也不需要它们。例如,我盒子上的 user32.dll 不链接其中之一,而 VMware 上的安装则链接。
关于如何解决这个问题的任何想法?我试图在 Microsoft 页面上找到合适的下载/修复,但失败了。
解决我的问题后,我想报告我发现的内容,但由于问题已关闭,因此我无法将其发布为答案。
实际上,Dependency Walker 工具报告丢失的所有 DLL 文件,即那些
* API-MS-WIN-CORE-...
类型 DLL 文件不是实际问题的一部分。
在我的情况下,缺少三个 OCX 文件的注册,之后一切都很好,但 Dependency Walker 工具仍然列出了所有与以前相同的 DLL 文件,即使程序现在运行良好也是如此。
它的要点:正如其他人所说,该工具现在有点过时了,并不总是能在较新的操作系统上正常工作。因此,请睁大眼睛,不要因缺少“API-MS-WIN-CORE-COM-L1-1-0.DLL”而被误导,......问题可能完全出在其他地方。