Mam problem z naszym plikiem wykonywalnym. Korzystam z tego 32-bitowego pliku C ++ na moim 64-bitowym pudełku programistycznym Windows 7, który ma również wszystkie te aplikacje Microsoft (Visual Studio 2008 + 2010, TFS, SDK, Microsoft Office) ... I nadal działa dobrze.
Teraz dostałem instalację klienta tego samego programu i zostałem poproszony o przetestowanie go przy użyciu czystej instalacji systemu Windows 7. Tak więc dostałem 64-bitowy VMware dla Windows 7 i zaktualizowałem go do Windows 7 SP 1 (ta sama wersja, którą tunuje moje okno programisty). Ale podczas gdy na moim pudełku programisty wszystko jest w porządku, program nie działa z pudełkiem VMware (30-dniowa wersja próbna).
Walker zależności x86 mówi mi, że brakuje następujących plików 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
Poszukałem tych plików DLL API-MS-WIN -... i stwierdziłem, że powinny one już być częścią systemu Windows 7 (niektóre witryny twierdzą, że należą do systemu Windows 8 i Windows Server 2012).
Próbowałem już sugerowanych poprawek, które znalazłem:
- uruchamianie „sfc / scannow”
- instalowanie plików wykonywalnych programu Visual Studio 2008 z dodatkiem SP1
Ale to niczego nie rozwiązało. :-(
Uwaga dodatkowa: Moje pudełko rozwojowe też ich nie ma i wydaje się, że ich nie potrzebuje. Na przykład user32.dll na moim urządzeniu nie łączy się z jednym z nich, podczas gdy instalacja na VMware tak.
Masz pomysł, jak rozwiązać ten problem? Próbowałem znaleźć odpowiedni plik do pobrania / naprawy na stronach Microsoft, ale nie udało mi się.
Po rozwiązaniu problemu chciałem zgłosić to, co się dowiedziałem, i nie mogę opublikować tego jako odpowiedzi, ponieważ pytanie zostało zamknięte.
Właściwie wszystkie pliki DLL zgłoszone przez narzędzie Dependency Walker zginęły, a mianowicie te
* API-MS-WIN-CORE-...
Pliki DLL typu nie były częścią rzeczywistego problemu.
W moim przypadku brakowało rejestracji trzech plików OCX, a potem wszystko było w porządku, ALE narzędzie Dependency Walker nadal wyświetlało te same pliki DLL, co wcześniej, nawet gdy program działał już dobrze.
Istota tego: jak ktoś inny stwierdził, narzędzie jest już trochę przestarzałe i nie zawsze działa poprawnie z nowszym systemem operacyjnym. Dlatego miej oko otwarte i nie daj się zwieść brakując „API-MS-WIN-CORE-COM-L1-1-0.DLL”… problem prawdopodobnie leży gdzie indziej.