Estou com um problema com o nosso executável. Estou executando este executável C ++ de 32 bits na caixa de desenvolvimento do Windows 7 de 64 bits que também possui todos os aplicativos da Microsoft (Visual Studio 2008 + 2010, TFS, SDK, Microsoft Office) ... E ainda está funcionando perfeitamente.
Agora, obtive a instalação do cliente do mesmo programa e fui solicitado a testá-lo com uma instalação limpa do Windows 7. Portanto, adquiri um VMware do Windows 7 de 64 bits e o atualizei para o Windows 7 SP 1 (a mesma versão que minha caixa do desenvolvedor está ajustando). Mas enquanto estiver na minha caixa do desenvolvedor, tudo está bem, o programa não funciona com a caixa do VMware (30 dias de teste).
O x86 Dependency Walker está me dizendo que os seguintes arquivos DLL estão ausentes:
- 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
Pesquisei esses arquivos DLL do API-MS-WIN -... e descobri que eles já deveriam fazer parte do Windows 7 (embora alguns sites afirmem pertencer ao Windows 8 e Windows Server 2012).
Eu já tentei as correções sugeridas que encontrei, que são:
- executando 'sfc / scannow'
- instalando executáveis de tempo de execução do Visual Studio 2008 SP1
Mas isso não resolveu nada. :-(
Nota lateral: Minha caixa de desenvolvimento também não os possui e parece não precisar deles. Por exemplo, o user32.dll na minha caixa não se vincula a um deles, enquanto a instalação no VMware o faz.
Alguma idéia de como corrigir esse problema? Tentei encontrar um download / correção adequado nas páginas da Microsoft, mas falhei.
Depois de resolver meu problema, eu queria relatar o que descobri e não posso postar isso como resposta porque a pergunta foi encerrada.
Na verdade, todos os arquivos DLL relatados como ausentes pela ferramenta Dependency Walker, ou seja, aqueles
* API-MS-WIN-CORE-...
arquivos DLL do tipo não faziam parte do problema real.
No meu caso, o registro de três arquivos OCX estava ausente e, depois disso, tudo estava bem, mas a ferramenta Dependency Walker ainda listava todos os mesmos arquivos DLL de antes, mesmo quando o programa estava funcionando bem agora.
O essencial: como alguém já afirmou, a ferramenta está um pouco datada e nem sempre funciona corretamente com um sistema operacional mais recente. Portanto, fique de olho e não se engane pela falta de 'API-MS-WIN-CORE-COM-L1-1-0.DLL', ... o problema provavelmente está inteiramente em outro lugar.