Не удается открыть файл shell32 lib

Обновлено: 06.07.2024

Ошибки Shell32.dll вызваны ситуациями, которые приводят к удалению или повреждению DLL-файла shell32 . В некоторых случаях ошибки shell32.dll могут указывать на проблему в реестре, проблему с вирусом или вредоносным ПО или даже сбой оборудования .

Файл shell32.dll содержит функции Windows Shell API и поэтому необходим для правильной работы вашего компьютера, например, для открытия файлов.

Ошибки Shell32.dll

Есть несколько различных способов, которыми ошибки shell32.dll могут появляться на вашем компьютере. Вот некоторые из наиболее распространенных способов, которыми вы можете увидеть ошибки shell32.dll:

  • Shell32.dll не найден
  • Не удалось запустить это приложение, так как shell32.dll не был найден. Переустановка приложения может решить проблему.
  • Не удается найти [PATH] \ shell32.dll
  • Файл shell32.dll отсутствует.
  • Не удается запустить [ПРИЛОЖЕНИЕ]. Отсутствует необходимый компонент: shell32.dll. Пожалуйста, установите [ПРИЛОЖЕНИЕ] снова.

Контекст ошибки shell32.dll является важной информацией, которая будет полезна при решении проблемы.

Не загружайте shell32.dll с веб-сайта «DLL download». Есть много причин, почему скачивание DLL-файла — плохая идея . Если вам требуется копия файла shell32.dll, лучше всего получить ее из оригинального, законного источника.

Запустите Windows в безопасном режиме, чтобы выполнить любой из следующих шагов, если вы не можете получить обычный доступ к Windows из-за ошибки shell32.dll.

Восстановите shell32.dll из Корзины . Самой простой причиной «отсутствующего» файла shell32.dll является то, что вы по ошибке удалили его.

Если вы подозреваете, что вы случайно удалили shell32.dll, но уже очистили Корзину, вы можете восстановить shell32.dll с помощью бесплатной программы восстановления файлов.

Восстановление удаленной копии shell32.dll с помощью программы восстановления файлов — разумная идея, только если вы уверены, что удалили файл самостоятельно и что он работал должным образом до того, как вы это сделали.

Запустите проверку на вирусы и вредоносные программы всей вашей системы . Некоторые ошибки shell32.dll могут быть связаны с вирусом или другим заражением вашего компьютера вредоносным ПО, которое повредило файл DLL. Возможно даже, что ошибка shell32.dll связана с враждебной программой, маскирующейся под файл.

Используйте Восстановление системы, чтобы отменить последние системные изменения . Если вы подозреваете, что ошибка shell32.dll была вызвана изменением важного файла или конфигурации, восстановление системы может решить эту проблему.

Запустите команду проверки системных файлов sfc / scannow, чтобы заменить отсутствующую или поврежденную копию файла shell32.dll. Так как этот файл DLL предоставлен Microsoft, инструмент проверки системных файлов должен восстановить его.

Старайтесь изо всех сил, чтобы завершить этот шаг. Windows заменить файл shell32.dll является вероятным решением этой ошибки DLL.

Если вы не можете запустить средство проверки системных файлов в нормальных условиях, попробуйте загрузиться в безопасном режиме с помощью командной строки и выполните команду там.

Переустановите программу, которая использует файл shell32.dll . Если ошибка DLL32 shell32.dll возникает при использовании определенной программы, переустановка программы должна заменить файл.

Файл shell32.dll может или не может быть связан с видеокартами — это был только пример. Ключевым моментом здесь является очень пристальное внимание к контексту ошибки и устранение неполадок соответственно.

Откатите драйвер до ранее установленной версии, если ошибки shell32.dll начались после обновления драйвера конкретного аппаратного устройства.

Установите все доступные обновления Windows . Многие пакеты обновления и другие исправления заменяют или обновляют некоторые из сотен распределенных файлов DLL Microsoft на вашем компьютере. Файл shell32.dll может быть включен в одно из этих обновлений.

Проверьте свою память, а затем проверьте свой жесткий диск . Я оставил большинство проблем с аппаратным обеспечением до последнего шага, но память и жесткий диск вашего компьютера легко тестируются и являются наиболее вероятными компонентами, которые могут вызвать ошибки shell32.dll в случае их сбоя.

Если на каком-либо из ваших тестов произошел сбой, замените память или замените жесткий диск как можно скорее.

Восстановите вашу установку Windows . Если приведенная выше рекомендация по устранению неполадок с файлом shell32.dll не удалась, выполнение восстановления при запуске или восстановительной установки должно восстановить все файлы Windows DLL до их рабочих версий.

Я редко рекомендую использовать очистители реестра. Я включил эту опцию в качестве «последней инстанции», прежде чем наступит разрушительный шаг.

Выполните чистую установку Windows . Чистая установка Windows сотрет все с жесткого диска и установит свежую копию Windows. Если ни один из вышеперечисленных шагов не исправляет ошибку shell32.dll, это должно быть вашим следующим действием.

Устраните неполадки, связанные с аппаратным обеспечением, если какие-либо ошибки shell32.dll не устранены . После чистой установки Windows ваша проблема DLL может быть связана только с аппаратным обеспечением.

Нужна дополнительная помощь?

Эта ошибка возникает, когда компоновщику не удается открыть файл для чтения или записи. Ниже перечислены две наиболее распространенные причины этой проблемы.

Программа уже запущена или загружена в отладчике, и

пути к библиотеке неверны или не заключены в двойные кавычки.

Существует множество других возможных причин этой ошибки. Чтобы сократить их, сначала проверьте Тип файла. Затем используйте следующие разделы для выявления и исправления конкретной проблемы.

Не удается открыть приложение или его PDB-файл

Приложение выполняется или загружается в отладчике

Если filename — имя исполняемого файла или связанный с ним PDB-файл, см. раздел Если приложение уже запущено. Затем проверьте, загружен ли он в отладчик. Чтобы устранить эту проблему, перед повторным созданием программы закройте программу и выгрузите ее из отладчика. Если приложение открыто в другой программе, например в редакторе ресурсов, закройте его. Если программа не отвечает, может потребоваться завершить процесс с помощью диспетчера задач. Также может потребоваться закрыть и перезапустить Visual Studio.

Приложение заблокировано антивирусным сканированием

Антивирусные программы часто временно блокируют доступ к вновь созданным файлам, особенно .exe и .dll исполняемые файлы. Чтобы устранить эту проблему, попробуйте исключить каталоги сборки проекта из антивирусного сканера.

Не удается открыть файл библиотеки Майкрософт

Windows библиотеки, например kernel32. lib

Если файл, который не удается открыть, является одним из стандартных файлов библиотеки, предоставляемых корпорацией Майкрософт, например kernel32. lib, может возникнуть ошибка конфигурации проекта или ошибка установки. убедитесь, что Windows SDK установлен. если для проекта требуются другие библиотеки майкрософт, такие как MFC, убедитесь, что компоненты MFC также установлены установщиком Visual Studio. Вы можете снова запустить установщик, чтобы добавить дополнительные компоненты в любое время. Дополнительные сведения см. в Изменение Visual Studio. Используйте вкладку отдельные компоненты в установщике, чтобы выбрать конкретные библиотеки и пакеты SDK.

Библиотеки vcruntime с отслеживанием версий

Библиотеки для розничной торговли, отладки или конкретной платформы

Эта ошибка может возникнуть при первой сборке для новой целевой платформы или конфигурации, например в розничной торговле или ARM64. в интегрированной среде разработки проверьте, установлены ли набор инструментов платформы и Windows SDK версии , указанной на странице свойств общие . также убедитесь, что необходимые библиотеки доступны в каталогах библиотек , указанных на странице свойств каталоги VC++. Проверьте свойства каждой конфигурации, например Debug, Retail, x86 или ARM64. Если одна сборка работает, но другая нет, Сравните параметры обоих параметров. Установите все отсутствующие необходимые инструменты и библиотеки.

Библиотека vccorlib. lib

Библиотеки в проектах из сетевых или других источников

При построении проекта, скопированного с другого компьютера, расположения установки библиотеки могут отличаться. Для сборок из командной строки убедитесь, что для сборки правильно заданы пути к переменной среды LIB и библиотеке. в Visual Studio можно просмотреть и изменить текущие пути к библиотекам, заданные на страницах свойств проекта. на странице VC++ каталоги выберите элемент управления "раскрывающийся список" для свойства каталоги библиотек , а затем нажмите кнопку изменить. В разделе вычисленное значение диалогового окна каталоги библиотек перечислены текущие пути поиска файлов библиотек. Обновите эти пути, чтобы они указывали на локальные библиотеки.

обновленные библиотеки Windows SDK

Не удается открыть сторонний файл библиотеки

Существует несколько распространенных причин этой проблемы.

Путь к файлу библиотеки может быть неверным или не заключен в двойные кавычки. Или, возможно, вы не указали его для компоновщика.

Возможно, вы установили 32-разрядную версию библиотеки, но при этом собираетесь на 64 бит или наоборот.

Библиотека может зависеть от других библиотек, которые не установлены.

Может потребоваться предоставить каталог библиотеки, переопределяющий каталог стандартной библиотеки. В командной строке используйте параметр /libpath . В интегрированной среде разработки используйте свойство Дополнительные каталоги библиотек в свойствах конфигурации > компоновщик > общую страницу свойств проекта.

Убедитесь, что установлены все версии библиотеки, необходимые для создаваемых конфигураций. воспользуйтесь программой управления пакетами vcpkg , чтобы автоматизировать установку и настройку для многих распространенных библиотек. По возможности лучше создавать собственные копии сторонних библиотек. Затем вы убедитесь, что все локальные зависимости библиотек созданы для тех же конфигураций, что и ваш проект.

Не удается открыть файл, созданный проектом

Эта ошибка может возникать, если файл filename еще не существует, когда компоновщик пытается получить к нему доступ. Это может произойти, когда один проект зависит от другого в решении, но проекты создаются в неправильном порядке. Чтобы устранить эту проблему, убедитесь, что ссылки проекта заданы в проекте, который использует этот файл. После этого отсутствующий файл будет создан до того, как он потребуется. дополнительные сведения см. в статьях добавление ссылок в проекты Visual Studio C++ и управление ссылками в проекте.

Не удается открыть файл "C: \ Program. obj"

Чтобы устранить эту проблему для сборок из командной строки, проверьте параметры параметра /libpath . Также проверьте пути, указанные в переменной среды LIB, и пути, указанные в командной строке. Обязательно используйте двойные кавычки для всех путей, содержащих пробелы.

Чтобы устранить эту проблему в интегрированной среде разработки, при необходимости добавьте двойные кавычки для следующих свойств проекта:

свойство каталоги библиотеки на странице свойства конфигурации > свойства каталоги VC++

Свойство Дополнительные каталоги библиотек на странице свойств конфигурации > компоновщик > общие

Свойство Дополнительные зависимости на странице свойств конфигурации > компоновщик > входные свойства.

Другие распространенные проблемы

Проблемы с путями или именами файлов

Параллельная синхронизация сборок

если вы используете параллельный вариант сборки, Visual Studio мог заблокировать файл в другом потоке. Чтобы устранить эту проблему, убедитесь, что один и тот же объект кода или библиотека не встроены в несколько проектов. Используйте зависимости сборки или ссылки проекта, чтобы выбрать в проекте созданные двоичные файлы.

Дополнительные зависимости, указанные в интегрированной среде разработки

При указании отдельных библиотек в свойстве Дополнительные зависимости используйте пробелы для разделения имен библиотек. Не используйте запятые или точки с запятой. При использовании пункта меню Правка для открытия диалогового окна Дополнительные зависимости используйте символы новой строки для разделения имен, а не запятых, точек с запятой или пробелов. Также используйте символы новой строки при указании путей к библиотекам в папках библиотек и дополнительных каталогах библиотек .

Слишком длинные пути

Эта ошибка может появиться, когда путь к файлу расширяется до 260 символов. При необходимости измените структуру каталогов или Сократите имена папок и файлов, чтобы сократить пути.

Слишком большие файлы

Эта ошибка может возникать из-за слишком большого размера файла. Библиотеки или объектные файлы, размер которых превышает гигабайт, может вызвать проблемы для 32-разрядного компоновщика. Возможным исправлением этой проблемы является использование 64-разрядного набора инструментов. Дополнительные сведения о том, как использовать 64-разрядный набор средств в командной строке, см. в разделе как включить 64-разрядный Visual C++ набор инструментов в командной строке. сведения о том, как использовать 64-разрядный набор инструментов в интегрированной среде разработки, см. в разделе использование MSBuild с 64-разрядным компилятором и инструментами. также см. статью Stack Overflow post: как сделать Visual Studio использовать собственную цепочки инструментов amd64.

Неправильные разрешения для файла

Эта ошибка может возникать, если у вас недостаточно разрешений для доступа к файлу filename. Это может произойти, если для доступа к файлам библиотеки в защищенных системных каталогах используется обычная учетная запись пользователя. Или, если вы используете файлы, скопированные с других пользователей, у которых все еще есть исходный набор разрешений. Чтобы устранить эту проблему, переместите файл в каталог проекта с возможностью записи. Если перемещенный файл имеет недоступные разрешения, выполните команду takeown.exe в окне командной строки администратора, чтобы стать владельцем файла.

Недостаточно места на диске

Эта ошибка может возникать, если на диске недостаточно места. Компоновщик использует временные файлы в нескольких ситуациях. Даже если на диске достаточно места, большие ссылки могут выпустить или фрагментировать свободное место на диске. Рассмотрите возможность использования параметра /OPT (оптимизация) . выполнение транзитного исключения COMDAT считывает все объектные файлы несколько раз.

Проблемы в переменной среды TMP

Если имя файла LNK nnn, то это имя файла, созданного компоновщиком для временного файла. Каталог, указанный в переменной среды TMP, может не существовать. Кроме того, для переменной среды TMP может быть задано несколько каталогов. Для переменной среды TMP должен быть указан только один путь к каталогу.

Справка, моей проблемы нет в списке!

Руководство по устранению ошибок для Shell32.dll

Ошибки Shell32.dll вызваны ситуациями, которые приводят к удалению или повреждению DLL-файла shell32. В некоторых случаях ошибки shell32.dll могут указывать на проблему в реестре, проблему с вирусом или вредоносным ПО или даже сбой оборудования.

Файл shell32.dll содержит функции Windows Shell API и поэтому необходим для правильной работы вашего компьютера, например, для открытия файлов.

Есть несколько различных способов, которыми ошибки shell32.dll могут появляться на вашем компьютере. Вот некоторые из наиболее распространенных способов, которыми вы можете увидеть ошибки shell32.dll:

Контекст ошибки shell32.dll является важной информацией, которая будет полезна при решении проблемы.

Запустите Windows в безопасном режиме, чтобы выполнить любой из следующих шагов, если вы не можете получить обычный доступ к Windows из-за ошибки shell32.dll.

Если вы подозреваете, что вы случайно удалили shell32.dll, но уже очистили Корзину, вы можете восстановить shell32.dll с помощью бесплатной программы восстановления файлов.

Запустите проверку на вирусы и вредоносные программы всей вашей системы. Некоторые ошибки shell32.dll могут быть связаны с вирусом или другим заражением вашего компьютера вредоносным ПО, которое повредило файл DLL. Возможно даже, что ошибка shell32.dll связана с враждебной программой, маскирующейся под файл.

Используйте Восстановление системы, чтобы отменить последние системные изменения. Если вы подозреваете, что ошибка shell32.dll была вызвана изменением важного файла или конфигурации, восстановление системы может решить эту проблему.

Запустите команду проверки системных файлов sfc/scannow, чтобы заменить отсутствующую или поврежденную копию файла shell32.dll. Так как этот DLL-файл предоставлен Microsoft, средство проверки системных файлов должно восстановить его.

Старайтесь изо всех сил, чтобы завершить этот шаг. Windows заменить файл shell32.dll является вероятным решением этой ошибки DLL.

Если вы не можете запустить средство проверки системных файлов в нормальных условиях, попробуйте загрузиться в безопасном режиме с помощью командной строки и выполните команду там.

Переустановите программу, которая использует файл shell32.dll. Если ошибка DLL32 shell32.dll возникает при использовании определенной программы, переустановка программы должна заменить файл.

Откатите драйвер до ранее установленной версии, если ошибки shell32.dll начались после обновления драйвера конкретного аппаратного устройства.

Установите все доступные обновления Windows. Многие пакеты обновления и другие исправления заменяют или обновляют некоторые из сотен распределенных файлов DLL Microsoft на вашем компьютере. Файл shell32.dll может быть включен в одно из этих обновлений.

Проверьте свою память, а затем проверьте свой жесткий диск.Я оставил большинство проблем с аппаратным обеспечением до последнего шага, но память и жесткий диск вашего компьютера легко тестируются и являются наиболее вероятными компонентами, которые могут вызвать ошибки shell32.dll в случае сбоя.

Если на каком-либо из ваших тестов произошел сбой, замените память или замените жесткий диск как можно скорее.

Восстановите вашу установку Windows. Если приведенная выше рекомендация по устранению неполадок с файлом shell32.dll не удалась, выполнение восстановления при запуске или восстановительной установки должно восстановить все файлы Windows DLL до их рабочих версий.

Я редко рекомендую использовать очистители реестра. Я включил эту опцию в качестве «последней инстанции», прежде чем наступит разрушительный шаг.

Выполните чистую установку Windows. Чистая установка Windows сотрет все с жесткого диска и установит свежую копию Windows. Если ни один из вышеперечисленных шагов не исправляет ошибку shell32.dll, это должно быть вашим следующим действием.

Устраните неполадки, связанные с аппаратным обеспечением, если какие-либо ошибки shell32.dll сохраняются. После чистой установки Windows ваша проблема DLL может быть связана только с аппаратным обеспечением.

Нужна дополнительная помощь?

enter image description here

Проверьте каталоги VC++, в VS 2010 их можно найти в свойствах вашего проекта. Проверьте ли $(WindowsSdkDir)\lib входит в список каталогов, если нет, вручную добавьте его. Если вы строите для платформы X64, вы должны выбрать X64 из" платформы " ComboBox и убедитесь, что $(WindowsSdkDir)\lib\x64 входит в список каталогов.

измените набор инструментов платформы на: "Windows7.1SDK " в разделе свойства проекта - >свойства конфигурации - >общие

убедитесь, что у вас есть в каталогах VC++ (щелкните правой кнопкой мыши проект, выберите страницу свойств),

  • Включить Каталоги: $(IncludePath)
  • каталоги библиотеки элементов списка: $(LibraryPath)

только для пользователей командной строки (т. е. - makefile):

  1. при установке VC++ Express, это только 32-разрядный. Итак, все идет в C:\Program Файлы (x86).
  2. затем вы решаете обновить до 64-разрядных capabillities. Итак, вы устанавливаете SDK. Но он 64-битный. Итак, все идет в C:\Program Файлы.

(Не пропустите " v7.0A " to " v7.- Перемены тоже.)

Я получил аналогичную ошибку, проблема остановилась, когда я проверил список "Компоновщик - > ввод - > дополнительные зависимости" в свойствах проекта. Мне не хватало половины двоеточия"; "непосредственно перед" %(AdditionalDependencies)". У меня также была одна и та же запись дважды. Этот список следует редактировать отдельно для отладки и выпуска.

добавить lib путь WindowsSdks в проекте - >свойства - >свойства конфигурации - > каталоги VC++ -> каталоги библиотек.

Я добавил следующий путь и ошибок::

C:\Program файлы (x86)\Microsoft SDKs\Windows\v7.1A \ Lib;

У меня была другая проблема в Windows 10 с Visual Studio 2017, но с теми же эффектами. Я думаю, что мои проблемы сводились к тому, что VS был установлен на диск, отличный от "C:\". Я решил проблему, переустановив Windows 10 SDK

сначала мне пришлось удалить Windows SDK (было установлено две версии). Затем запустил исполняемый файл. После установки запустите visual studio, и он работал нормально.

enter image description here

решение Джеро сработало для меня.
В Visual Studios 2012 выполните следующие действия.
- Перейдите в Обозреватель решений
- Правой кнопкой мыши на вашем проекте
- Перейти к свойствам
- Свойства Конфигурации -> Общие
- Набор Инструментов Платформы ->изменить на Windows7.1SDK

Если вышеуказанное решение не работает, проверьте, есть ли у вас $(LibraryPath) в свойствах - > каталоги VC++ - >каталоги библиотеки. Если вы упускаете его, попробуйте добавить.

ОС: Win10, Visual Studio 2015

решение : Перейдите в Панель управления - - - > удалить программу - - - MSvisual studio - - - - > изменить - - - - >организовать = ремонт

и восстановить его. Обратите внимание, что вы должны подключиться к интернету до завершения ремонта.

сегодня в Visual Studio 2017 у меня была та же проблема.

причиной в моем случае оказалась плохая настройка среды в NETFXSDKDir ( NETFXSDKDir=C:\Program Files (x86)\Windows Kits\NETFXSDK.6.1 ). Это должно быть вместо NETFXSDKDir=C:\Program Files (x86)\Windows Kits\Lib.0.10240.0\um\x86 . В частности, как установлено в этом пакетном файле (мой каталог фактически имеет 4 разных файла) для командной строки для VS2017:

поскольку я не хочу менять один из" установленных " пакетных файлов. еще больше, поскольку этот пакетный файл вызывает еще один другой:

. вместо этого для моего конкретного приложения командной строки C++ я просто добавил явный текст пути: ;C:\Program Files (x86)\Windows Kits\Lib.0.10240.0\um\x86 для общей строки в "каталогах библиотеки", как это: $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86;C:\Program Files (x86)\Windows Kits\Lib.0.10240.0\um\x86 . (Щелкните правой кнопкой мыши проект, свойства → свойства конфигурации → каталоги VC++ → каталоги библиотеки.), Который разрешил мою "фатальную ошибку LNK1104: не удается открыть файл" kernel32.ошибка Либ'". Я нашел этот намек в этот вопрос GitHub.

Примечание это воспроизводимо в визуальном Studio 2017 Enterprise 2017 версии 15.1 (26403.0) даже после успешного "ремонта" установки. при создании нового консольного приложения Visual C++ Win32 и попытке компиляции.

фактически, если не создано пустое приложение, шаблон по умолчанию также включает ссылку на <SDKDDKVer.h> и с этим я получаю эту дополнительную ошибку: Error (active) E1696 cannot open source file "SDKDDKVer.h" . Так Что Я создал пустой проект c++.

на Visual Studio 2017, Я пошел к Свойства Проекта ->Свойства Конфигурации ->общие, отобранных Все Платформы (1), затем выберите выпадающий (2) под версия Windows SDK и обновлен с 10.0.14393.0 на тот, который был установлен (3). Для меня это было 10.0.15063.0.

enter image description here

дополнительная информация: это исправило ошибку в моем случае, потому что версия Windows SDK помогает VS выбрать правильные пути. каталоги VC++ -> Библиотека-Каталоги -> редактировать ->макрос -> показывает, что макрос $(WindowsSDK_LibraryPath_x86) имеет путь с номером версии выше.

Я просто встречался и решил эту проблему сам. Моя проблема немного другая. Я использую visual studio в Windows 10. Когда я создаю проект, Target Platform Version было автоматически установлено значение 10.0.15063.0 . Но нет kernel32.lib для этой версии SDK также нет других необходимых файлов заголовков и файлов lib. Поэтому я изменил Target Platform Version до 8.1 . И это сработало.

Читайте также: