Tengo un problema con nuestro ejecutable. Estoy ejecutando este ejecutable C ++ de 32 bits en mi cuadro de desarrollo de Windows 7 de 64 bits que también tiene todas esas aplicaciones de Microsoft (Visual Studio 2008 + 2010, TFS, SDK, Microsoft Office) ... Y aún funciona bien.
Ahora obtuve la instalación del cliente del mismo programa y me pidieron que lo probara con una instalación limpia de Windows 7. Por lo tanto, obtuve un VMware de Windows 7 de 64 bits y lo actualicé a Windows 7 SP 1 (la misma versión que mi caja de desarrollador está ajustando). Pero mientras que en mi caja de desarrollador todo está bien, el programa no funciona con la caja de VMware (30 días de prueba).
El x86 Dependency Walker me dice que faltan los siguientes archivos 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
Busqué en Google esos archivos DLL API-MS-WIN -... y descubrí que en realidad ya deberían ser parte de Windows 7 (aunque algunos sitios afirman que pertenecen a Windows 8 y Windows Server 2012).
Ya probé las soluciones sugeridas que encontré, que son:
- ejecutando 'sfc / scannow'
- Instalar ejecutables de tiempo de ejecución de Visual Studio 2008 SP1
Pero eso no resolvió nada. :-(
Nota al margen: Mi cuadro de desarrollo tampoco los tiene, y parece que no los necesita. Por ejemplo, user32.dll en mi caja no se vincula con uno de esos, mientras que la instalación en VMware sí.
¿Alguna idea sobre cómo solucionar este problema? Traté de encontrar una descarga / corrección adecuada en las páginas de Microsoft, pero fallé.
Después de resolver mi problema, quería informar lo que descubrí, y no puedo publicar esto como respuesta porque la pregunta se ha cerrado.
En realidad, todos los archivos DLL reportados como perdidos por la herramienta Dependency Walker, es decir, aquellos
* API-MS-WIN-CORE-...
Los archivos tipo DLL no formaban parte del problema real.
En mi caso, faltaba el registro de tres archivos OCX y después de eso todo estuvo bien, PERO la herramienta Dependency Walker todavía enumeraba todos los mismos archivos DLL que antes, incluso cuando el programa se estaba ejecutando bien ahora.
La esencia de esto: como alguien dijo en otro lugar, la herramienta está un poco anticuada por ahora y no siempre funciona correctamente con un sistema operativo más nuevo. Por lo tanto, manténgase atento y no se engañe al perder 'API-MS-WIN-CORE-COM-L1-1-0.DLL', ... el problema probablemente yace completamente en otra parte.