У меня проблема с нашим исполняемым файлом. Я использую этот 32-битный исполняемый файл C ++ на моем 64-битном компьютере для разработки под Windows 7, в котором также есть все эти приложения Microsoft (Visual Studio 2008 + 2010, TFS, SDK, Microsoft Office) ... И он все еще работает нормально.
Теперь я получил клиентскую установку той же самой программы и меня попросили проверить ее с чистой установкой Windows 7. Таким образом, я получил 64-разрядную версию VMware для Windows 7 и обновил ее до Windows 7 с пакетом обновления 1 (та же версия, которую настраивает мой разработчик). Но в то время как на моем компьютере разработчика все в порядке, программа не работает с устройством VMware (30-дневная пробная версия).
X86 Dependency Walker сообщает мне, что отсутствуют следующие DLL-файлы:
- API-MS-WIN-ОСНОВНОЙ-COM-L1-1-0.DLL
- API-MS-WIN-ОСНОВНОЙ-WinRT-ОШИБКА-L1-1-0.DLL
- API-MS-WIN-ОСНОВНОЙ-WinRT-L1-1-0.DLL
- API-MS-WIN-ОСНОВНОЙ-WinRT-ROBUFFER-L1-1-0.DLL
- API-MS-WIN-ОСНОВНОЙ-WinRT-СТРОКА-L1-1-0.DLL
- API-MS-WIN-SHCORE-ШКАЛИРОВАНИЕ-L1-1-0.DLL
- DCOMP.DLL
- GPSVC.DLL
- ieshims.dll
Я погуглил эти DLL-файлы API-MS-WIN -... и обнаружил, что они уже должны быть частью Windows 7 (хотя некоторые сайты утверждают, что они принадлежат Windows 8 и Windows Server 2012).
Я уже попробовал предложенные исправления, которые я нашел:
- работает 'SFC / SCANNOW'
- установка исполняемых файлов среды выполнения Visual Studio 2008 SP1
Но это ничего не решило. :-(
Примечание: у моей коробки разработки их тоже нет, и, похоже, они не нужны. Например, user32.dll на моем компьютере не связывается с одним из них, в то время как установка на VMware делает.
Есть идеи, как решить эту проблему? Я пытался найти подходящую загрузку / исправление на страницах Microsoft, но мне не удалось.
После решения моей проблемы я хотел сообщить о том, что я узнал, и я не могу опубликовать это как ответ, потому что вопрос был закрыт.
Фактически все DLL-файлы, о которых сообщалось, что они пропали без вести с помощью инструмента Dependency Walker, а именно
* API-MS-WIN-CORE-...
Тип DLL-файлов не был частью реальной проблемы.
В моем случае регистрация трех файлов OCX отсутствовала, и после этого все было просто отлично, но НОУ Dependency Walker по-прежнему перечислял все те же самые DLL-файлы, что и раньше, даже когда программа сейчас работала нормально.
Суть этого: как кто-то сказал в другом месте, инструмент немного устарел и не всегда работает должным образом с более новой ОС. Таким образом, следите за обновлениями и не вводите в заблуждение, пропуская «API-MS-WIN-CORE-COM-L1-1-0.DLL», ... проблема, вероятно, кроется совсем в другом месте.
Ответы:
Эта проблема связана с отсутствием в Visual Studio «распространяемого пакета». Неясно, какой из них отсутствует в зависимости от обхода зависимостей, но я бы сначала попробовал тот, который соответствует версии вашего компилятора, и посмотрю, все ли работает правильно:
Visual Studio 2015
Visual Studio 2013
Visual Studio 2010
Visual Studio 2008
Я столкнулся с этой проблемой, потому что я использую компиляторы Visual Studio, но не всю среду Visual Studio.
Собираюсь добавить новую ссылку здесь: последние поддерживаемые загрузки Visual C ++ . Штейн Осмул, 29.11.2018 .
источник
Я только что решил ту же проблему с C ++ Qt 5 и Windows 7 64 бит с MSCVC 2012.
Сначала я думал, что это проблема с файлом DLL MSVC / Windows, но, как сказал Борис, проблема была в зависимости моего проекта. Ключ « Как узнать зависимости вашего проекта в Qt 5? ».
Поскольку я не нашел четкого способа узнать это ( Dependency Walker мне не сильно помог ...), я следовал следующей «обратной процедуре», которая занимает не более 5 минут и избегал многих головных болей с DLL файловые зависимости:
Когда у вас есть все DLL-файлы в одной папке, легче определить, какие из них недопустимы (XML, WebKit, ... что угодно ...), и, следовательно, этот метод не займет более пяти минут.
источник
windeployqt
инструмент, см., Например, stackoverflow.com/a/33292008/4023446windeployqt
часто копирует ненужные файлы.Я просто решил ту же проблему.
Зависимость Уокер вводит в заблуждение в этом случае и заставляет меня терять время. Итак, список «отсутствующих» DLL-файлов из первого поста не полезен, и вы, вероятно, можете его игнорировать.
Решение состоит в том, чтобы найти ссылки, которые вызывает ваш проект, и проверить, действительно ли они установлены на сервере.
@Ben Brammer, не важно, какие три файла .ocx отсутствуют, потому что они отсутствуют только для проекта Лео Т Абрахама. Ваш проект, вероятно, вызывает другие файлы DLL.
В моем случае это были не три файла .ocx, а отсутствующий файл DLL коннектора MySQL. После установки MySQL, Connector для .NET на сервер, проблема исчезла.
Короче говоря, решение таково: проверьте, все ли ссылки на ваши проекты есть.
источник
Как уже упоминалось, DCOMP является частью распространяемого пакета VC ++ (реализующего среду выполнения OpenMP) и является единственным действительно отсутствующим компонентом. Все остальные являются ложными сообщениями.
В частности, API-MS-WIN-XXXX.DLL являются API-наборами - по сути, дополнительный уровень косвенной обработки вызовов постепенно вводится со времен Windows 7. Разработка Dependency Walker, по- видимому, остановилась задолго до этого, и она не может правильно обрабатывать наборы API.
Так что не о чем беспокоиться. Вы не пропустите ничего больше.
Лучшей альтернативой для поиска действительно необходимых DLL-файлов, которые отсутствуют (если это действительно проблема), является запуск Process Monitor и откат в сторону от ошибки, поиск последовательностей неисправных зондов для конкретного DLL-файла по всему системному пути.
источник
Я также столкнулся с этой проблемой, но решение, которое, как мне кажется, является здесь общим потоком, и которое я видел в других местах в Интернете, заключается в «[переустановке] распространяемого пакета». Однако для меня это не работает, так как проблема возникла при запуске установщика для нашего продукта (который устанавливает распространяемый пакет) для тестирования наших новых блестящих сборок Visual Studio 2015.
Проблема возникла из-за того, что перечисленные DLL-файлы не находятся в пути установки Visual Studio (например, C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ redist) и, следовательно, не были добавлены в установку. Эти api-ms-win- * dll устанавливаются в путь установки Windows 10 SDK как часть установки Visual Studio 2015 (например, C: \ Program Files (x86) \ Windows Kits \ 10 \ Redist).
Установка в Windows 10 работала нормально, но установка в Windows 7 требовала добавления этих файлов DLL в нашу установку продукта. Дополнительные сведения см. В разделе « Обновление среды выполнения Universal C в Windows», в котором описывается добавление этих зависимостей, вызванных Visual Studio 2015, и предоставляются загрузки для различных платформ Windows; также см. Представление Универсальной CRT, которая описывает модернизацию библиотек CRT. Особый интерес представляет пункт 6 в разделе « Распространение программного обеспечения, в котором используется универсальный ЭЛТ» :
источник
Этот вклад на самом деле не отвечает на первоначальный вопрос, но принимая во внимание частоту появления этого потока, я предполагаю, что довольно много людей имеют дело с проблемой, что библиотеки API-MS-WIN-CORE-не могут быть найдены.
Мне удалось решить проблему, когда мое приложение отказалось запускаться с сообщением об ошибке, что API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL не найден простым обновлением Visual Studio.
Я не думаю, что моя среда сборки (Windows 7 Pro SP1, Visual Studio Ultimate 2012) была полностью испорчена, она работала нормально для большинства моих проектов. Но при некоторых очень специфических обстоятельствах я получил сообщение об ошибке (см. Ниже).
После обновления Visual Studio 11 с исходной CD-версии (я забыл посмотреть номер версии) до версии 11.0.61030.00 Update 4 также снова был запущен сломанный проект.
источник
Это решило проблему для меня:
Удалите распространяемый пакет Visual Studio 2010, если он уже установлен, а затем установите Microsoft Windows 7 SDK .
источник
Я решил проблему. Когда я зарегистрировал файлы OCX, я запустил его в командном окне, которое было выполнено от имени администратора.
источник
Для всех, кто пришел сюда, но с проблемой Photoshop : мое решение было удалить MS VC ++, распространяемый сначала x86 и 64 оба. Затем установите версию, соответствующую версии и архитектуре Windows (86 или 64).
источник
Установка SQL Server Management Studio 2014 на недавно установленную Windows 7 решила эту проблему на нашем клиенте после двухдневной нелепой битвы.
источник
У меня такая же проблема. Потратив часы на поиск в Интернете, я нашел решение для себя.
Я скопировал файл combase.dll (C: \ Windows \ System32) в папку релиза, и это решило проблему.
источник
Я пришел сюда с этой проблемой, после попытки новой установки Windows 7 OEM, обновления до Windows 10.
После некоторых поисков на форумах Microsoft и таких, я нашел следующее решение, которое работало для меня:
источник
Я предлагаю также проверить, сколько памяти в настоящее время используется.
Оказывается, невозможность найти эти DLL-файлы была первым симптомом, проявленным при попытке запустить программу (либо запустить, либо отладить) в Visual Studio.
После более чем получаса с большим количеством царапин на голове, поиском в Интернете, запуском Process Monitor и Task Manager и, в зависимости от ситуации, совершенно другой программы, которая запускалась с начала времен, сообщалось, что «недостаточно памяти; попробуйте остановить некоторые программы» или что-то подобное. После убийства Firefox, Thunderbird, Process Monitor и других, все снова заработало.
источник
Просто чтобы подтвердить ответы здесь, я решил скопировать DLL, которая не загружалась, и файл ocx, который сопровождал его, в папку system32, которая разрешила мою проблему.
источник