Error dll init failed

Код ошибки 0x8007045A ERROR_DLL_INIT_FAILED при использовании Центра обновления Windows Если вы получаете код ошибки 0x8007045A ERROR_DLL_INIT_FAILED при использовании Центра обновления Windows или при обновлении до Windows 10, этот пост может вам помочь. Эта ошибка обычно возникает, если файлы MSXML DLL повреждены в вашей операционной системе Windows. Microsoft XML Core Services или MSXML – это […]

Содержание

  1. Код ошибки 0x8007045A ERROR_DLL_INIT_FAILED при использовании Центра обновления Windows
  2. Код ошибки 0x8007045A
  3. Как исправить ошибку Windows 0x8007045a Ошибка 0x8007045a
  4. Error dll init failed

Код ошибки 0x8007045A ERROR_DLL_INIT_FAILED при использовании Центра обновления Windows

Если вы получаете код ошибки 0x8007045A ERROR_DLL_INIT_FAILED при использовании Центра обновления Windows или при обновлении до Windows 10, этот пост может вам помочь. Эта ошибка обычно возникает, если файлы MSXML DLL повреждены в вашей операционной системе Windows.

Microsoft XML Core Services или MSXML – это родной Win32 API для высокопроизводительных приложений на основе XML, которые придерживаются стандарта XML 1.0. MSXML6 сначала поставлялся с Windows Vista и более поздними версиями и содержит улучшения для безопасности, производительности, стабильности и других улучшений, а также поддержку архитектур x64 и Itanium.

Код ошибки 0x8007045A

Чтобы решить эту проблему, у вас есть три варианта:

1] Запустите проверку системных файлов и посмотрите, поможет ли это.

2] Замените msxml3.dll , msxml3a.dll , msxml3r.dll , msxml6.dll и msxml6r.dll в вашей системе с хорошими файлами. Вы можете сохранить эти файлы в другом месте в качестве меры предосторожности. Теперь, если у вас есть другой компьютер, скопируйте эти 5 файлов из другой системы в папку C: Windows System32 проблемной системы и замените возможные поврежденные файлы. Убедитесь, что на обоих компьютерах установлена ​​одинаковая версия Windows.

Как только вы это сделаете, вам придется перерегистрировать эти DLL-файлы:

Чтобы зарегистрировать файл dll или ocx, откройте окна командной строки от имени администратора, введите следующее и нажмите Enter:

regsvr32 «путь и имя файла dll или ocx»

Итак, здесь в поле «Выполнить» введите следующее и нажмите Enter:

regsvr32 C: Windows System32 msxml3.dll

Сделайте то же самое для остальных четырех – msxml3a.dll, msxml3r.dll, msxml6.dll и msxml6r.dll.

Перезагрузите систему и посмотрите, поможет ли это.

3] Если это не работает для вас, у вас есть еще один вариант. Загрузите последний синтаксический анализатор XML с MSDN и установите его в своей системе.

Источник

Как исправить ошибку Windows 0x8007045a Ошибка 0x8007045a

В этой статье рассматривается ошибка 0x8007045a, также известная как Ошибка 0x8007045a и означающая ERROR_DLL_INIT_FAILED

Информация об ошибке

Имя ошибки: Ошибка 0x8007045a
Номер ошибки: 0x8007045a
Применимо к: Windows 10, 8, 7, Vista, XP
Описание: ERROR_DLL_INIT_FAILED

Это средство исправления может устранить такие распространенные компьютерные ошибки, как BSODs, замораживание системы и сбои. Он может заменить отсутствующие файлы операционной системы и библиотеки DLL, удалить вредоносное ПО и устранить вызванные им повреждения, а также оптимизировать ваш компьютер для максимальной производительности.

Об ошибке Windows

Операционная система Windows сегодня используется миллионами пользователей персональных компьютеров и ноутбуков. И вполне вероятно, что большинство из них в свое время сталкивались с тем или иным типом ошибки Windows. Отчеты об ошибках были представлены компанией Microsoft для обеспечения средств сбора и отправки отладочной информации после ошибки или для применения шагов по устранению неполадок в зависимости от того, получил ли пользователь синтаксическую, логическую ошибку или ошибку времени выполнения.

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

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

Каким бы ни был случай, вот некоторые общие сведения об устранении неполадок, которые можно использовать для устранения ошибок Windows.

Симптомы 0x8007045a — Ошибка 0x8007045a

Ошибки Windows можно классифицировать как синтаксические ошибки, логические ошибки или ошибки времени выполнения.

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

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

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


(Только для примера)

Причины ошибок Ошибка 0x8007045a — 0x8007045a

Ошибки Windows могут быть вызваны неисправностью аппаратных компонентов или повреждением ОС. Некоторые из них могут быть даже связаны с проблемами программирования, которые не были решены, поскольку ошибки не были устранены на этапе проектирования. Иногда ошибки Windows могут возникать из-за изменений, внесенных в компьютер.

Методы исправления

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

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

Источник

Error dll init failed

Столкнулся с загадочной для себя ситуацией.

Есть написанная мной простая dll. На момент написания все в ней работало корректно. В общем, написал ее, выложил для пользователей, жалоб не было, и я забыл про нее. Понадобилось мне немного модифицировать dll под новые запросы пользователей. И тут вскрылось нечто загадочное. Оказалось, что в Windows 10 со всеми обновлениями dll загружается через раз. Точнее, корректно загружается она очень редко, а нормальной ситуацией является либо ERROR_DLL_INIT_FAILED, либо какой AV где то внутри системы. Это происходит только в Windows 10. В dllmain ничего криминального не делается.

Я стал сокращать функциональность, что бы поймать момент, в который dll будет грузиться нормально. В какой то момент это случилось. Я сравнил импорт новой dll и старой — разница в импорте одной функции InternetCrackUrlW. Я включил весь свой исходный код, отключенный в эксперименте, поставил заглушку на InternetCrackUrlW (что бы она не появлялась в импорте) — и, о чудо, dll стала грузиться нормально. Но где логика?

Я где читал, что в Creators Update был оптимизирован механизм загрузки dll. Может ли моя ситуация быть следствием этого? Также заметил что Delphi, на которой я пишу, иногда в импорт помещает одну и туже функцию несколько раз. Это вообще законно?

Как искать решение такой проблемы?

От: EreTIk EreTIk’s Box
Дата: 04.12.17 12:58
Оценка:

A>Я стал сокращать функциональность, что бы поймать момент, в который dll будет грузиться нормально. В какой то момент это случилось. Я сравнил импорт новой dll и старой — разница в импорте одной функции InternetCrackUrlW. Я включил весь свой исходный код, отключенный в эксперименте, поставил заглушку на InternetCrackUrlW (что бы она не появлялась в импорте) — и, о чудо, dll стала грузиться нормально. Но где логика?

Очень похоже на срабатывание эвристических правил детекта антивируса: размер, строки и набор импортов, например.

A>Как искать решение такой проблемы?

Если сторонних антивирусных решений нет, то для подтверждения false positiv’а нужно смотреть логи Windows Defender. У него должен быть свой журнал, плюс стоит посмотреть в системный EventLog.

Что бы Windows Defender/SmartScreen совсем не ругался можно купить и подписать EV-цифровой подписью (SmartScreen и сертификат CodeSign EV, например, обсуждалось). Или экспериментировать (подбирать безопасные импорты и т.п.).

От: ononim
Дата: 04.12.17 13:21
Оценка: +1
От: Сергей Мухин
Дата: 04.12.17 13:22
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>Есть написанная мной простая dll.

От: Aniskin
Дата: 04.12.17 13:25
Оценка:

Здравствуйте, EreTIk, Вы писали:

ETI>Очень похоже на срабатывание эвристических правил детекта антивируса: размер, строки и набор импортов, например.

Ок, пусть это будет родной виндовый антивирус. Но почему возникают AV? И после это процесс не закрывается (его не возможно удалить, и не возможно удалить dll), но исчезает из диспетчера задач.

A>>Как искать решение такой проблемы?

ETI>Если сторонних антивирусных решений нет, то для подтверждения false positiv’а нужно смотреть логи Windows Defender. У него должен быть свой журнал, плюс стоит посмотреть в системный EventLog.

В системном логе есть записи, которые относятся к моей проблеме, они имею вид:

Faulting application name: Client.exe, version: 1.0.0.0, time stamp: 0x5a2532f2
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc0000005
Fault offset: 0x36b436af
Faulting process id: 0x1cb0
Faulting application start time: 0x01d36cfb217b489b
Faulting application path: D:DelphiProjectsTestClient.exe
Faulting module path: unknown
Report Id: ad90fc20-d29b-4052-af87-1a75389ca473
Faulting package full name:
Faulting package-relative application ID:

Но мне это ничего не дает.

От: Aniskin
Дата: 04.12.17 13:27
Оценка:

AV возникают еще до dllmain.

От: EreTIk EreTIk’s Box
Дата: 04.12.17 13:42
Оценка: 4 (1)

A>Ок, пусть это будет родной виндовый антивирус. Но почему возникают AV? И после это процесс не закрывается (его не возможно удалить, и не возможно удалить dll), но исчезает из диспетчера задач.

AV в оригинальном сообщении это был ACCESS_VIOLATION. Сорри, я не верно понял суть проблемы

A>В системном логе есть записи, которые относятся к моей проблеме, они имею вид:
A>Faulting application name: Client.exe, version: 1.0.0.0, time stamp: 0x5a2532f2
A>Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
A>Exception code: 0xc0000005
A>Fault offset: 0x36b436af
A>Faulting process id: 0x1cb0
A>Faulting application start time: 0x01d36cfb217b489b
A>Faulting application path: D:DelphiProjectsTestClient.exe
A>Faulting module path: unknown
A>Report Id: ad90fc20-d29b-4052-af87-1a75389ca473
A>Faulting package full name:
A>Faulting package-relative application ID:
A>Но мне это ничего не дает.

Так надо запустить под отладчиком (WinDbg, например) и посмотреть на точку возникновения исключения: что за код, кем вызван и т.п.

От: Aniskin
Дата: 04.12.17 13:51
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>Как искать решение такой проблемы?

Проблему решил, но тем не менее ее причины мне до сих пор не ясны.

Delphi при создании таблицы импорта для одной и той же dll может создавать несколько IMAGE_IMPORT_DESCRIPTOR, и в каждой будет свой (может быть даже пересекающийся) набор импортируемых функций. В моем случае для wininet.dll создавались две записи IMAGE_IMPORT_DESCRIPTOR, в первой была функция InternetCrackUrlW, во второй InternetTimeFromSystemTimeW. Некоторыми манипуляциями с кодом я добился создания одной записи с двумя функциями. После этого проблема исчезла.

Нашел статью, она немного описывает изменения в методике загрузки dll в Windows 10. Правда, в статье описываются проблемы при нескольких записях в таблице экспорта, а не импорта, но возможно, у этих проблем общее начало.

От: Aniskin
Дата: 04.12.17 13:55
Оценка:

Здравствуйте, EreTIk, Вы писали:

ETI>Так надо запустить под отладчиком (WinDbg, например) и посмотреть на точку возникновения исключения: что за код, кем вызван и т.п.

Пишу на Delphi, соответственно использую отладчик Delphi. Вижу следующее. После того, как произошел вызов LoadLibrary, но до вызова dllmain происходит AV. Где конкретно — данных в отладчике нет.

От: enigmas
Дата: 04.12.17 14:39
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>Здравствуйте, Aniskin, Вы писали:

A>>Как искать решение такой проблемы?

A>Проблему решил, но тем не менее ее причины мне до сих пор не ясны.

A>Delphi при создании таблицы импорта для одной и той же dll может создавать несколько IMAGE_IMPORT_DESCRIPTOR, и в каждой будет свой (может быть даже пересекающийся) набор импортируемых функций. В моем случае для wininet.dll создавались две записи IMAGE_IMPORT_DESCRIPTOR, в первой была функция InternetCrackUrlW, во второй InternetTimeFromSystemTimeW. Некоторыми манипуляциями с кодом я добился создания одной записи с двумя функциями. После этого проблема исчезла.

Ничего криминального, в нескольких записей для одной и той же библиотеки в импорте, нет. Посмотрите на таблицу импорта любого delphi файла с gui, там наверняка несколько записей для kernel32.dll и user32.dll. В общем, ситуация штатная.

Скорее всего проблема в чем то другом, просто решилась попутно.

От: EreTIk EreTIk’s Box
Дата: 04.12.17 14:53
Оценка:

ETI>>Так надо запустить под отладчиком (WinDbg, например) и посмотреть на точку возникновения исключения: что за код, кем вызван и т.п.

A>Пишу на Delphi, соответственно использую отладчик Delphi. Вижу следующее. После того, как произошел вызов LoadLibrary, но до вызова dllmain происходит AV. Где конкретно — данных в отладчике нет.

Много лет уже не видел среду Delphi, как там выглядит отладка и не помню уже. Нужно взять любой отладчик, который сможет отображать системные символы (внутри ntdll.dll, kernelbase.dll и т.п.) и отладочную информацию Delphi. Возможно поддержка Delphi и не понадобиться, если падение происходит в системном коде.

Если выбор падет на WinDbg, то в строке ввода команд (в момент отлова целевого ACCESS_VIOLATION) нужно ввести что-то такое:

От: Aniskin
Дата: 04.12.17 15:06
Оценка:

Здравствуйте, enigmas, Вы писали:

E>Скорее всего проблема в чем то другом, просто решилась попутно.

Я не утверждаю, что проблема в загрузчике Windows. Но ситуация такова, что dll, которая корректно загружалась до Creators Update перестала загружаться с Creators Update, в котором были изменения в механизме загрузки dll. Повторюсь, в dllmain нет ничего, кроме инициализации глобальных структур. Могу выложить эту dll. Если кому либо интересно, то можете посмотреть, что происходит при загрузке. У меня на это знаний не хватает.

От: ononim
Дата: 04.12.17 15:42
Оценка:
От: mjau
Дата: 04.12.17 15:45
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>Я не утверждаю, что проблема в загрузчике Windows. Но ситуация такова, что dll, которая корректно загружалась до Creators Update перестала загружаться с Creators Update, в котором были изменения в механизме загрузки dll. Повторюсь, в dllmain нет ничего, кроме инициализации глобальных структур. Могу выложить эту dll. Если кому либо интересно, то можете посмотреть, что происходит при загрузке. У меня на это знаний не хватает.

выложите, желательно так, чтобы ее можно было запустить без танцев.

От: Aniskin
Дата: 04.12.17 16:18
Оценка:

Здравствуйте, mjau, Вы писали:

A>>Могу выложить эту dll. Если кому либо интересно, то можете посмотреть, что происходит при загрузке. У меня на это знаний не хватает.

M>выложите, желательно так, чтобы ее можно было запустить без танцев.

Ссылка. В архиве две dll: good.eDecoder.32.dll — в этой dll обе функции из wininet.dll находятся в одной IMAGE_IMPORT_DESCRIPTOR, и bad.eDecoder.32.dll, в которой функции из wininet.dll находятся в разных IMAGE_IMPORT_DESCRIPTOR. Это единственное отличие в библиотеках. Проверка очень простая — вызвать LoadLibrary для каждой библиотеки. У меня good.* грузится корректно, bad.* — ERROR_DLL_INIT_FAILED, иногда ловится исключение. Ну а сама dll — это просто плагин для 7Zip.

От: Aniskin
Дата: 04.12.17 16:24
Оценка:

Здравствуйте, ononim, Вы писали:

O>А какие нибудь глобальные объекты с конструкторами есть, которые конструируются _до_ dllmain (а по сути — внутри него)? Я с делфями давно дел не имел, не помню как у него с этим.

Не понятно, что подразумевается под термином «до dllmain». Как мой код может получить управление до вызова dllmain? В любом случае в dllmain происходит только выделение небольшого количества памяти под список и его заполнение.

От: EreTIk EreTIk’s Box
Дата: 04.12.17 16:44
Оценка:
От: Aniskin
Дата: 04.12.17 16:49
Оценка:

Здравствуйте, EreTIk, Вы писали:

ETI>

    ETI>

  • Windows 10.0.15063 — не проявляется
    ETI>
  • Windows 10.0.16299 — не проявляется
    ETI>

Спасибо за информацию. А битность систем какая? У меня x64.

ETI>Возможно, для воспроизведения нужен еще и специфический exe-файл, вызывающий LoadLibrary?

У меня любое приложение, что сам 7zip, что простая программа выполняющая единственный LoadLibrary воспроизводят проблему.

От: mjau
Дата: 04.12.17 17:12
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>>>Могу выложить эту dll. Если кому либо интересно, то можете посмотреть, что происходит при загрузке. У меня на это знаний не хватает.
M>>выложите, желательно так, чтобы ее можно было запустить без танцев.

A>Ссылка. В архиве две dll: good.eDecoder.32.dll — в этой dll обе функции из wininet.dll находятся в одной IMAGE_IMPORT_DESCRIPTOR, и bad.eDecoder.32.dll, в которой функции из wininet.dll находятся в разных IMAGE_IMPORT_DESCRIPTOR. Это единственное отличие в библиотеках. Проверка очень простая — вызвать LoadLibrary для каждой библиотеки. У меня good.* грузится корректно, bad.* — ERROR_DLL_INIT_FAILED, иногда ловится исключение. Ну а сама dll — это просто плагин для 7Zip.

у меня bad грузится нормально, видимо у вас чисто местные или трудновоспроизводимые грабли.

От: Aniskin
Дата: 04.12.17 17:31
Оценка:

Здравствуйте, mjau, Вы писали:

M>у вас чисто местные или трудновоспроизводимые грабли.

Видимо вы правы. Специально поставил на виртуалку чистую десятку — не воспроизводится. Буду надеяться, что я единственный такой неудачник с такой комбинацией железа и ПО.

Источник

В этой статье рассматривается ошибка 0x8007045a, также известная как Ошибка 0x8007045a и означающая ERROR_DLL_INIT_FAILED

Об ошибке Windows

Операционная система Windows сегодня используется миллионами пользователей персональных компьютеров и ноутбуков. И вполне вероятно, что большинство из них в свое время сталкивались с тем или иным типом ошибки Windows. Отчеты об ошибках были представлены компанией Microsoft для обеспечения средств сбора и отправки отладочной информации после ошибки или для применения шагов по устранению неполадок в зависимости от того, получил ли пользователь синтаксическую, логическую ошибку или ошибку времени выполнения.

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

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

Каким бы ни был случай, вот некоторые общие сведения об устранении неполадок, которые можно использовать для устранения ошибок Windows.

Симптомы 0x8007045a — Ошибка 0x8007045a

Ошибки Windows можно классифицировать как синтаксические ошибки, логические ошибки или ошибки времени выполнения.

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

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

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

Fix Ошибка 0x8007045a (Error 0x8007045a)
(Только для примера)

Причины ошибок Ошибка 0x8007045a — 0x8007045a

Ошибки Windows могут быть вызваны неисправностью аппаратных компонентов или повреждением ОС. Некоторые из них могут быть даже связаны с проблемами программирования, которые не были решены, поскольку ошибки не были устранены на этапе проектирования. Иногда ошибки Windows могут возникать из-за изменений, внесенных в компьютер.

Методы исправления

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

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

Обратите внимание: ни ErrorVault.com, ни его авторы не несут ответственности за результаты действий, предпринятых при использовании любого из методов ремонта, перечисленных на этой странице — вы выполняете эти шаги на свой страх и риск.

Метод 1 — Восстановить базу данных Центра обновления Windows

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

  • Нажмите Пуск и введите Восстановление системы в поле поиска, затем нажмите клавишу ввода.
  • Когда появится окно восстановления системы, нажимайте Далее , пока не дойдете до окна, в котором вы можете выбрать точку восстановления. Вы увидите список дат восстановления с описанием.
  • Затем снова нажмите Далее и подтвердите процесс восстановления. Подождите, пока он прекратит обработку, и появится окно, в котором вы можете нажать кнопку Готово . Закройте окно и дайте компьютеру перезагрузиться.

Вы также можете восстановить свой компьютер с помощью установочного диска ОС .

  • Для этого загрузитесь с компакт-диска с ОС или с носителя для восстановления.
  • Следуйте инструкциям, пока не дойдете до экрана, на котором будет предложена опция Восстановить мой компьютер , нажмите и выберите Восстановление системы из списка инструментов восстановления.
  • Вы можете выбрать любую точку восстановления в окне «Восстановление системы», но убедитесь, что вы восстановили дату, при которой ваш компьютер работает нормально.
  • Дождитесь завершения процесса и позвольте вашему компьютеру перезагрузиться на рабочий стол.

Вы также можете загрузиться в безопасном режиме .

  • Загрузите компьютер и нажмите F8. Выберите Безопасный режим с командной строкой , нажимая стрелки на клавиатуре, чтобы переместить выделение вниз к этому элементу.
  • В безопасном режиме введите rstrui.exe и нажмите Enter в командной строке. Следуйте указаниям мастера восстановления и перезагрузите компьютер в обычном режиме.

Восстановление в Windows 8:
Восстановление в среде Windows

  • В Windows 8 щелкните значок поиска и введите Восстановление системы.
  • Продолжайте нажимать кнопку «Далее», пока не дойдете до окна, в котором можно выбрать дату восстановления.
  • Подтвердите восстановление, выполнив оставшиеся шаги. После этого перезагрузите компьютер в обычном режиме.

Восстановить при загрузке

  • Перезагрузите компьютер и нажмите F11, чтобы начать восстановление системы.
  • Вы увидите экран «Дополнительные параметры», на котором вы найдете пункт «Восстановление системы».
  • Вам будет предложено выбрать учетную запись администратора, просто выберите и войдите в свою учетную запись администратора.
  • Нажимайте кнопку «Далее», пока не дойдете до экрана, на котором можно выбрать даты восстановления.
  • Нажимайте кнопку «Далее», пока не дойдете до конца процесса восстановления и не увидите кнопку «Готово».
  • Перезагрузите компьютер в обычном режиме.

Восстановление в Windows 10:
Внутри окна

  • Запустите восстановление системы, введя его в поле поиска. Щелкните элемент, который появится в результатах поиска.
  • Когда откроется окно «Восстановление системы», нажимайте «Далее», пока не получите список для выбора даты восстановления, выберите ту, которая, как вы знаете, лучше всего подходит для вас.
  • Подтвердите процесс, нажав «Далее», затем «Да» и, наконец, «Готово». После закрытия окна перезагрузите компьютер.

Использование установочного носителя

  • Если вы не можете загрузиться в Windows, вам лучше загрузить файл Media Creator из Microsoft. Создайте загрузочный диск с помощью DVD или флэш-диска.
  • После этого перезагрузите компьютер и войдите в BIOS, чтобы изменить загрузочное устройство на DVD или флэш-диск.
  • Когда вы перейдете к экрану установки, выберите «Устранение неполадок»> «Дополнительные параметры»> «Восстановление системы» и выполните процесс таким же образом.

Метод 2 — Исправить неправильную системную дату и время

Иногда Windows может работать неправильно из-за неправильной настройки времени. Чтобы установить время и дату:
В Windows 7

  • Нажмите «Пуск», затем «Панель управления».
  • Нажмите «Дата и время».
  • В окне «Дата и время» нажмите «Изменить часовой пояс», чтобы выбрать правильный часовой пояс.
  • Нажмите «Применить» и «ОК».

В Windows 8

  • Откройте «Настройки», переместив указатель мыши вправо, при открытии вкладки щелкните значок шестеренки.
  • Откроется новая всплывающая вкладка «Настройки», нажмите «Панель управления».
  • На панели управления нажмите «Часы, язык и регион». Затем нажмите «Установить время и дату» в разделе «Дата и время».
  • Когда откроется окно «Дата и время», нажмите «Изменить дату и время» и перейдите к нужной дате и времени в следующем окне. Чтобы подать заявку, просто нажмите «ОК».

В Windows 10

  • Просто щелкните правой кнопкой мыши дату и время на панели задач, расположенной в правой нижней части экрана.
  • Нажмите «Настроить дату и время». Откроются настройки даты и времени.
  • Вы можете выбрать часовой пояс, а затем закрыть окно. Это автоматически обновит время и дату на панели задач.

Метод 3 — Проверьте отсутствие или повреждение файлов

  • Запустить проверку системных файлов
    • Чтобы запустить команду, откройте командную строку с повышенными привилегиями, набрав ее в окне поиска, затем щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора».
    • Введите в командной строке sfc / scannow и дождитесь успешного завершения процесса проверки.
  • Запустите Checkdisk — Chkdsk исправляет многие несоответствия с ОС. Системные ошибки также можно исправить с помощью этой утилиты. Чтобы запустить это,
    • Откройте командную строку, введя ее в поле поиска, а затем, когда вы увидите результат в верхней части списка, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».
    • Ваша система может сказать, что вы не можете запустить ее в данный момент, потому что вы все еще обрабатываете данные, и спросит вас, хотите ли вы запустить ее перед следующим запуском, просто нажмите y для подтверждения, а затем выйдите с экрана и перезагрузите компьютер.
    • После перезагрузки компьютера вы увидите, что checkdisk работает вне Windows, просто дайте ему закончить, пока он не даст вам отчет о том, что было найдено, исправлено или отмечено.
    • Закройте окно и дайте компьютеру нормально перезагрузиться.

Другие языки:

How to fix 0x8007045a (Error 0x8007045a) — ERROR_DLL_INIT_FAILED
Wie beheben 0x8007045a (Fehler 0x8007045a) — ERROR_DLL_INIT_FAILED
Come fissare 0x8007045a (Errore 0x8007045a) — ERROR_DLL_INIT_FAILED
Hoe maak je 0x8007045a (Fout 0x8007045a) — ERROR_DLL_INIT_FAILED
Comment réparer 0x8007045a (Erreur 0x8007045a) — ERROR_DLL_INIT_FAILED
어떻게 고치는 지 0x8007045a (오류 0x8007045a) — ERROR_DLL_INIT_FAILED
Como corrigir o 0x8007045a (Erro 0x8007045a) — ERROR_DLL_INIT_FAILED
Hur man åtgärdar 0x8007045a (Fel 0x8007045a) — ERROR_DLL_INIT_FAILED
Jak naprawić 0x8007045a (Błąd 0x8007045a) — ERROR_DLL_INIT_FAILED
Cómo arreglar 0x8007045a (Error 0x8007045a) — ERROR_DLL_INIT_FAILED

The Author Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.

Следуйте за нами: Facebook Youtube Twitter

Рекомендуемый инструмент для ремонта:

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

ШАГ 1:

Нажмите здесь, чтобы скачать и установите средство восстановления Windows.

ШАГ 2:

Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.

ШАГ 3:

Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.

СКАЧАТЬ СЕЙЧАС

Совместимость

Требования

1 Ghz CPU, 512 MB RAM, 40 GB HDD
Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.

ID статьи: ACX014323RU

Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000

Совет по увеличению скорости #57

Проверка на наличие плохой памяти в Windows:

Диагностируйте проблему с плохой памятью (RAM) на вашем компьютере с помощью таких инструментов, как memtest86 и Prime95. ОЗУ — один из самых важных компонентов вашего ПК, и иногда он может выйти из строя. Регулярно тестируйте его, чтобы обнаруживать проблемы на ранней стадии.

Нажмите здесь, чтобы узнать о другом способе ускорения работы ПК под управлением Windows

Если вы получаете код ошибки «0x8007045A ERROR_DLL_INIT_FAILED» при использовании Центра обновления Windows или при обновлении до Windows 10, этот пост может помочь вам. Ошибка 0x8007045A обычно возникает, если файлы MSXML dll были повреждены в операционной системе Windows.

0x8007045A

Как устранить ошибку 0x8007045A в Windows?

Чтобы устранить эту проблему, у вас есть три варианта:

  1. Запустите проверку системных файлов, в некоторых случаях это может помочь решить проблему.
  2. Замените файлы msxml3.dll, msxml3a.dll, msxml3r.dll, msxml6.dll и msxml6r.dll в вашей системе рабочими. Eсли у вас есть другой компьютер, скопируйте эти 5 файлов с другой системы, в папку C:WindowsSystem32 проблемной системы, и замените возможные поврежденные файлы. Убедитесь, что оба компьютера работают под управлением той же версии Windows.

    После того, как вы это сделаете, вам придется перерегистрировать DLL файлы:

    Чтобы зарегистрировать dll или ocx файл, откройте командную строку Windows с правами администратора введите следующую команду и нажмите Enter:

    regsvr32 “path & filename of dll or ocx

    и

    regsvr32 C:WindowsSystem32msxml3.dll

    Сделайте то же самое для остальных четырех файловmsxml3a.dll, msxml3r.dll, msxml6.dll и msxml6r.dll.

    Перезагрузить компьютер.

  3. Если это не работает для вас, у вас есть еще один вариант. Загрузите последнюю версию XML-парсер из MSDN и установите его на вашем компьютере.

Мы публикуем настольное приложение Windows (созданное с помощью Visual C ++ 2013 с набором инструментов платформы v120_xp), которое отлично работало в Windows 10, но мы начали получать отчеты от пользователей, которые установили обновление «Порог 2», которое наше приложение теперь не может начать, показывая следующее сообщение об ошибке:

Приложение не удалось запустить правильно (0xc0000142). Нажмите кнопку ОК, чтобы закрыть приложение.

Код ошибки — STATUS_DLL_INIT_FAILED, поэтому мы, вероятно, ищем DLL, которая не может быть инициализирована.

Мы предприняли несколько попыток решить эту проблему, наблюдая за запуском приложения в отладчике и используя Process Monitor, чтобы увидеть, какие DLL загружаются. Последняя загруженная DLL-библиотека (на компьютере с установленным Threshold 2) — «davhlpr.dll». Когда мы наблюдаем, как наше приложение запускается в Windows 10 без Threshold 2, оно запускается без видимой загрузки этой DLL. Это говорит о том, что проблема может быть связана с davhlpr.dll, но наш код явно не зависит от этой библиотеки DLL, и я понятия не имею, что это такое.

Кто-нибудь еще видел что-нибудь подобное?

У кого-нибудь есть идеи относительно того, как мы можем устранить эту проблему? Попробовав отладчик и Process Monitor, у меня закончились идеи.

6

Решение

В конце концов мы дошли до сути. Подход, который мы выбрали, был следующим:

  1. Скажите компоновщику отложить загрузку всех библиотек DLL, от которых зависит наше приложение (отложить любые проблемы инициализации до момента запуска приложения).
  2. Работайте с приложением до тех пор, пока оно не сломалось, что оказалось при загрузке comdlg32.dll для отображения диалогового окна «Открыть».
  3. Создать простую тестовую программу, которая просто использует comdlg32.dll, чтобы показать диалог «Открыть».
  4. Запустите тестовую программу в Windows 10 build 15086 и посмотрите, какие DLL она загружает, сравнивая ее с DLL, которые загружаются, когда мы запускаем диалоговое окно «Открыть» в загруженной с задержкой версии нашего приложения.

Короче говоря: выясняется, что сбой произошел из-за компонента Windows под названием «fwbase.dll» (по-видимому, часть брандмауэра Windows), который по какой-либо причине пытался загрузить comdlg32.dll. Наше приложение включало компонент с именем «fwBase.dll» (часть библиотеки AMD Framewave), и загрузчик Windows, по-видимому, не пытался загрузить fwbase.dll, так как считал, что он уже загружен. Катастрофа последовала вскоре после этого.

На данный момент, я не уверен, является ли это ошибкой в ​​Windows или чем-то, но мы решили ее, переименовав fwBase.dll.

5

Другие решения

Я столкнулся с аналогичной проблемой, когда программа скомпилирована & запущена без каких-либо проблем на Win 7 (также на сервере Win 2008), но не удалась для машины с Win 10. Один из приемов, который мне помог, заключался в «устранении неполадок» исполняемого файла (с использованием ОС Win 10).

  • Щелкните правой кнопкой мыши на исполняемый файл & выберите опцию «Устранение неполадок совместимости».
  • Затем выберите «Программа устранения неполадок» & затем выберите «Программа работала в более ранней версии Windows». (1-й флажок.)
  • Выберите ОС (у меня была Win 7) и перейдите к следующим шагам.

Обязательно «Протестируйте программу» и двигайтесь дальше, чтобы наконец выбрать опцию «Сохранить настройки».

0

Если вы получаете код ошибки 0x8007045A ERROR_DLL_INIT_FAILED при использовании Центра обновления Windows или при обновлении до Windows 10, этот пост может вам помочь. Эта ошибка обычно возникает, если файлы DLL msxml повреждены в вашей операционной системе Windows.

0x8007045A

Microsoft XML Core Services или MSXML — это собственный Win32 API для высокопроизводительных приложений на основе XML, которые соответствуют стандарту XML 1.0. MSXML6 сначала поставлялся с Windows Vista и более поздними версиями и имеет усовершенствования для обеспечения безопасности, производительности, стабильности и другие улучшения, а также поддержку архитектур x64 и Itanium.

Чтобы решить эту проблему, у вас есть три варианта:

1]Запустите средство проверки системных файлов и посмотрите, поможет ли это.

2]Замените msxml3.dll, msxml3a.dll, msxml3r.dll, msxml6.dll и msxml6r.dll в вашей системе хорошими файлами. Вы можете сохранить эти файлы в другом месте в качестве меры предосторожности. Теперь, если у вас есть другой компьютер, скопируйте эти 5 файлов из другой системы в папку C: Windows System32 папку проблемной системы и замените возможные поврежденные файлы. Убедитесь, что на обоих компьютерах установлена ​​одна и та же версия Windows.

Как только вы это сделаете, вам придется повторно зарегистрировать эти файлы dll:

Чтобы зарегистрировать файл dll или ocx, откройте окно командной строки от имени администратора, введите следующее и нажмите Enter:

regsvr32 «путь и имя файла dll или ocx»

Итак, здесь в поле Run введите следующее и нажмите Enter:

regsvr32 C: Windows System32 msxml3.dll

Сделайте то же самое с остальными четырьмя — msxml3a.dll, msxml3r.dll, msxml6.dll а также msxml6r.dll.

Перезагрузите систему и посмотрите, поможет ли это.

3]Если это не сработает, у вас есть еще один вариант. Загрузите последнюю версию анализатора XML из MSDN и установите его в своей системе.

Надеюсь, что-то поможет.

0x8007045A .

0x8007045A ERROR_DLL_INIT_FAILED error

Are you the one receiving 0x8007045A ERROR_DLL_INIT_FAILED while using Windows update or during an upgrade process on Windows 10.

Wondering what went wrong or how to fix 0x8007045a error or 0x8007045A ERROR_DLL_INIT_FAILED error.

Then this article is for you, here you will get the best possible solutions to fix 0x8007045A ERROR_DLL_INIT_FAILED error.

ERROR_DLL_INIT_FAILED error generally appears and irritates the users while browsing or using PC. And due to this error, the system starts running slow and crashes without any warning.

The DLL INIT FAILED error is one of the common Windows 10 error, it is directly related to msxml.dll file, which is used by XML apps mainly.

Well, the DLL INIT FAILED file is one of the important DLL file used by Windows updates for transmitting information back and forth to the servers.

So, if once this file gets misplaced or damaged then Windows 10 system may become ‘pettish’ and you will receive following error messages:

Error_dll_init_failed.
Cannot find [PATH]Error_dll_init_failed.
Windows could not search for new updates.
Run-time Error XXX, Abnormal program termination.
A fatal exception has occurred.

Despite this,  there are lots of factors that can generate the ERROR_DLL_INIT_FAILED, such as the improper configuration of system files, incorrectly Windows 10 upgrading, misplaced/damaged system drivers, lack of hard drive’s storage and more.

So, without wasting time follow the fixes given below to resolve 0x8007045A ERROR_DLL_INIT_FAILED error

How Fix 0x8007045A ERROR_DLL_INIT_FAILED Error on Windows 10

#Fix 1: Scan Windows for Damaged DLL files

As discussed above the ERROR_DLL_INIT_FAILED is generally caused due to corrupted system files, or damaged/ incompatible DLL files.

So here it is suggested to run the inbuilt SFC (System File Checker) command to scan the system files.

Follow the steps to do so:

  • Press Windows Key + R > type Command Prompt and choose Command Prompt (Admin).

Command Prompt (Admin)

  • Then in the command prompt, type sfc/scannow > hit Enter key

SFC-scan-now-command-prompt

  • Wait for the scanning process to complete (approx. 15 min.)

If you get an empty result then it means that there are no damaged/corrupted system files. And check if the 0x8007045A ERROR_DLL_INIT_FAILED is fixed or not.

But if the error still appears then try running the DISM command, follow the steps to do so:

  • Press Windows Key + R > type Command Prompt and choose Command Prompt (Admin).

Command Prompt (Admin)

  • Then in the Command Prompt type Dism /Online /Cleanup-Image /RestoreHealth > hit Enter 

dism /online /cleanup-image /restorehealth

  • Wait for the scanning process to complete (approx. 30 min.)

Now restart your computer and check if the 0x8007045A ERROR_DLL_INIT_FAILED is fixed or not.

#Fix 2: Re-register DLL Files

In order to get rid of ERROR_DLL_INIT_FAILED error, you need to fix the damaged DLL files. To do this, you should copy msxml3a.dll, msxml3r.dll, msxml6.dll, msxml3.dll and msxml6r.dll files from C:WindowsSystem32 directory and save in another location.

After all, copy them to the same folder.

  • And next copy them from the new location and paste them back to C:\Windows\System32 directory and click Save.

#Fix 3: Try to reinstall the Microsoft XML parser

As the error is related to an XML file so here it is related to reinstall Microsoft XML parser

  • Visit http://msdn2.microsoft.com/en-us/xml/bb190622.aspx website > download the latest version of Microsoft XML parser.
  • Install and run it > now check if the error 0x8007045A ERROR_DLL_INIT_FAILED is fixed.

It is estimated the 0x8007045A ERROR_DLL_INIT_FAILED is fixed now. But if not then it is worth scanning your system with an automatic PC Repair Tool. 

Best & Easy Solution to Fix 0x8007045A ERROR_DLL_INIT_FAILED

If none of the above given manual solutions works for you then it is suggested to try running the PC Repair Tool, this is an advanced repair tool, that is capable to fix various Windows errors and issues.

This is capable to fix various errors like DLL errors, BSOD errors, prevent virus/malware infection, registry corruption, and many others.

This works as a guard to your PC and enhances the PC performance.

Get PC Repair Tool, to Fix 0x8007045A ERROR_DLL_INIT_FAILED Error

Conclusion:

So, this is all about the 0x8007045A ERROR_DLL_INIT_FAILED error. I had done my job.

Now it’s your turn to fix 0x8007045A ERROR_DLL_INIT_FAILED error in Windows 10.

Follow the fixes given one by one and check which on works for you. Or else go for the automatic repair utility to fix the error easily.

Good Luck..!

Always up to help others with their PC-related issues, Jack loves to write on subjects such as Windows 10, Xbox, and numerous technical things. In his free time, he loves to play with his dog “Bruno” and hang out with his friends.


Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 12:01
Оценка:

Столкнулся с загадочной для себя ситуацией.

Есть написанная мной простая dll. На момент написания все в ней работало корректно. В общем, написал ее, выложил для пользователей, жалоб не было, и я забыл про нее. Понадобилось мне немного модифицировать dll под новые запросы пользователей. И тут вскрылось нечто загадочное. Оказалось, что в Windows 10 со всеми обновлениями dll загружается через раз. Точнее, корректно загружается она очень редко, а нормальной ситуацией является либо ERROR_DLL_INIT_FAILED, либо какой AV где то внутри системы. Это происходит только в Windows 10. В dllmain ничего криминального не делается.

Я стал сокращать функциональность, что бы поймать момент, в который dll будет грузиться нормально. В какой то момент это случилось. Я сравнил импорт новой dll и старой — разница в импорте одной функции InternetCrackUrlW. Я включил весь свой исходный код, отключенный в эксперименте, поставил заглушку на InternetCrackUrlW (что бы она не появлялась в импорте) — и, о чудо, dll стала грузиться нормально. Но где логика?

Я где читал, что в Creators Update был оптимизирован механизм загрузки dll. Может ли моя ситуация быть следствием этого? Также заметил что Delphi, на которой я пишу, иногда в импорт помещает одну и туже функцию несколько раз. Это вообще законно?

Как искать решение такой проблемы?


Re: Причины ERROR_DLL_INIT_FAILED

От:

EreTIk

EreTIk’s Box
Дата:  04.12.17 12:58
Оценка:

A>Я стал сокращать функциональность, что бы поймать момент, в который dll будет грузиться нормально. В какой то момент это случилось. Я сравнил импорт новой dll и старой — разница в импорте одной функции InternetCrackUrlW. Я включил весь свой исходный код, отключенный в эксперименте, поставил заглушку на InternetCrackUrlW (что бы она не появлялась в импорте) — и, о чудо, dll стала грузиться нормально. Но где логика?

Очень похоже на срабатывание эвристических правил детекта антивируса: размер, строки и набор импортов, например.

A>Как искать решение такой проблемы?

Если сторонних антивирусных решений нет, то для подтверждения false positiv’а нужно смотреть логи Windows Defender. У него должен быть свой журнал, плюс стоит посмотреть в системный EventLog.

Что бы Windows Defender/SmartScreen совсем не ругался можно купить и подписать EV-цифровой подписью (SmartScreen и сертификат CodeSign EV, например, обсуждалось). Или экспериментировать (подбирать безопасные импорты и т.п.).


Re: Причины ERROR_DLL_INIT_FAILED

От:

ononim

 
Дата:  04.12.17 13:21
Оценка:

+1

A>Есть написанная мной простая dll. На момент написания все в ней работало корректно. В общем, написал ее, выложил для пользователей, жалоб не было, и я забыл про нее. Понадобилось мне немного модифицировать dll под новые запросы пользователей. И тут вскрылось нечто загадочное. Оказалось, что в Windows 10 со всеми обновлениями dll загружается через раз. Точнее, корректно загружается она очень редко, а нормальной ситуацией является либо ERROR_DLL_INIT_FAILED, либо какой AV где то внутри системы. Это происходит только в Windows 10. В dllmain ничего криминального не делается.
Хочу заметить что AV внутри DllMain будет словлено SEH фильром загрузчика и наверх вылезет тот же самый ERROR_DLL_INIT_FAILED
Так что полагаю стоит подебажить этот AV, когда он виден

Как много веселых ребят, и все делают велосипед…


Re: Причины ERROR_DLL_INIT_FAILED

От:

Сергей Мухин

Россия

 
Дата:  04.12.17 13:22
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>Есть написанная мной простая dll.

если это делается в dllMain, то см
https://msdn.microsoft.com/en-us/library/windows/desktop/dn633971(v=vs.85).aspx


С уважением,
Сергей Мухин


Re[2]: Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 13:25
Оценка:

Здравствуйте, EreTIk, Вы писали:

ETI>Очень похоже на срабатывание эвристических правил детекта антивируса: размер, строки и набор импортов, например.

Ок, пусть это будет родной виндовый антивирус. Но почему возникают AV? И после это процесс не закрывается (его не возможно удалить, и не возможно удалить dll), но исчезает из диспетчера задач.

A>>Как искать решение такой проблемы?


ETI>Если сторонних антивирусных решений нет, то для подтверждения false positiv’а нужно смотреть логи Windows Defender. У него должен быть свой журнал, плюс стоит посмотреть в системный EventLog.

В системном логе есть записи, которые относятся к моей проблеме, они имею вид:

Faulting application name: Client.exe, version: 1.0.0.0, time stamp: 0x5a2532f2
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc0000005
Fault offset: 0x36b436af
Faulting process id: 0x1cb0
Faulting application start time: 0x01d36cfb217b489b
Faulting application path: D:DelphiProjectsTestClient.exe
Faulting module path: unknown
Report Id: ad90fc20-d29b-4052-af87-1a75389ca473
Faulting package full name:
Faulting package-relative application ID:

Но мне это ничего не дает.


Re[2]: Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 13:27
Оценка:

Здравствуйте, Сергей Мухин, Вы писали:

СМ>если это делается в dllMain, то см

СМ>https://msdn.microsoft.com/en-us/library/windows/desktop/dn633971(v=vs.85).aspx

AV возникают еще до dllmain.


Re[3]: Причины ERROR_DLL_INIT_FAILED

От:

EreTIk

EreTIk’s Box
Дата:  04.12.17 13:42
Оценка:

4 (1)

A>Ок, пусть это будет родной виндовый антивирус. Но почему возникают AV? И после это процесс не закрывается (его не возможно удалить, и не возможно удалить dll), но исчезает из диспетчера задач.

AV в оригинальном сообщении это был ACCESS_VIOLATION. Сорри, я не верно понял суть проблемы

A>В системном логе есть записи, которые относятся к моей проблеме, они имею вид:

A>Faulting application name: Client.exe, version: 1.0.0.0, time stamp: 0x5a2532f2
A>Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
A>Exception code: 0xc0000005
A>Fault offset: 0x36b436af
A>Faulting process id: 0x1cb0
A>Faulting application start time: 0x01d36cfb217b489b
A>Faulting application path: D:DelphiProjectsTestClient.exe
A>Faulting module path: unknown
A>Report Id: ad90fc20-d29b-4052-af87-1a75389ca473
A>Faulting package full name:
A>Faulting package-relative application ID:
A>Но мне это ничего не дает.

Так надо запустить под отладчиком (WinDbg, например) и посмотреть на точку возникновения исключения: что за код, кем вызван и т.п.


Re: Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 13:51
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>Как искать решение такой проблемы?

Проблему решил, но тем не менее ее причины мне до сих пор не ясны.

Delphi при создании таблицы импорта для одной и той же dll может создавать несколько IMAGE_IMPORT_DESCRIPTOR, и в каждой будет свой (может быть даже пересекающийся) набор импортируемых функций. В моем случае для wininet.dll создавались две записи IMAGE_IMPORT_DESCRIPTOR, в первой была функция InternetCrackUrlW, во второй InternetTimeFromSystemTimeW. Некоторыми манипуляциями с кодом я добился создания одной записи с двумя функциями. После этого проблема исчезла.

Нашел статью, она немного описывает изменения в методике загрузки dll в Windows 10. Правда, в статье описываются проблемы при нескольких записях в таблице экспорта, а не импорта, но возможно, у этих проблем общее начало.


Re[4]: Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 13:55
Оценка:

Здравствуйте, EreTIk, Вы писали:

ETI>Так надо запустить под отладчиком (WinDbg, например) и посмотреть на точку возникновения исключения: что за код, кем вызван и т.п.

Пишу на Delphi, соответственно использую отладчик Delphi. Вижу следующее. После того, как произошел вызов LoadLibrary, но до вызова dllmain происходит AV. Где конкретно — данных в отладчике нет.


Re[2]: Причины ERROR_DLL_INIT_FAILED

От:

enigmas

Ниоткуда

 
Дата:  04.12.17 14:39
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>Здравствуйте, Aniskin, Вы писали:


A>>Как искать решение такой проблемы?


A>Проблему решил, но тем не менее ее причины мне до сих пор не ясны.


A>Delphi при создании таблицы импорта для одной и той же dll может создавать несколько IMAGE_IMPORT_DESCRIPTOR, и в каждой будет свой (может быть даже пересекающийся) набор импортируемых функций. В моем случае для wininet.dll создавались две записи IMAGE_IMPORT_DESCRIPTOR, в первой была функция InternetCrackUrlW, во второй InternetTimeFromSystemTimeW. Некоторыми манипуляциями с кодом я добился создания одной записи с двумя функциями. После этого проблема исчезла.

Ничего криминального, в нескольких записей для одной и той же библиотеки в импорте, нет. Посмотрите на таблицу импорта любого delphi файла с gui, там наверняка несколько записей для kernel32.dll и user32.dll. В общем, ситуация штатная.

Скорее всего проблема в чем то другом, просто решилась попутно.


Re[5]: Причины ERROR_DLL_INIT_FAILED

От:

EreTIk

EreTIk’s Box
Дата:  04.12.17 14:53
Оценка:

ETI>>Так надо запустить под отладчиком (WinDbg, например) и посмотреть на точку возникновения исключения: что за код, кем вызван и т.п.

A>Пишу на Delphi, соответственно использую отладчик Delphi. Вижу следующее. После того, как произошел вызов LoadLibrary, но до вызова dllmain происходит AV. Где конкретно — данных в отладчике нет.

Много лет уже не видел среду Delphi, как там выглядит отладка и не помню уже. Нужно взять любой отладчик, который сможет отображать системные символы (внутри ntdll.dll, kernelbase.dll и т.п.) и отладочную информацию Delphi. Возможно поддержка Delphi и не понадобиться, если падение происходит в системном коде.

Если выбор падет на WinDbg, то в строке ввода команд (в момент отлова целевого ACCESS_VIOLATION) нужно ввести что-то такое:

.symfix;!analyze -v


Re[3]: Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 15:06
Оценка:

Здравствуйте, enigmas, Вы писали:

E>Скорее всего проблема в чем то другом, просто решилась попутно.

Я не утверждаю, что проблема в загрузчике Windows. Но ситуация такова, что dll, которая корректно загружалась до Creators Update перестала загружаться с Creators Update, в котором были изменения в механизме загрузки dll. Повторюсь, в dllmain нет ничего, кроме инициализации глобальных структур. Могу выложить эту dll. Если кому либо интересно, то можете посмотреть, что происходит при загрузке. У меня на это знаний не хватает.


Re[4]: Причины ERROR_DLL_INIT_FAILED

От:

ononim

 
Дата:  04.12.17 15:42
Оценка:

A>Я не утверждаю, что проблема в загрузчике Windows. Но ситуация такова, что dll, которая корректно загружалась до Creators Update перестала загружаться с Creators Update, в котором были изменения в механизме загрузки dll. Повторюсь, в dllmain нет ничего, кроме инициализации глобальных структур. Могу выложить эту dll. Если кому либо интересно, то можете посмотреть, что происходит при загрузке. У меня на это знаний не хватает.
А какие нибудь глобальные объекты с конструкторами есть, которые конструируются _до_ dllmain (а по сути — внутри него)? Я с делфями давно дел не имел, не помню как у него с этим.

Как много веселых ребят, и все делают велосипед…


Re[4]: Причины ERROR_DLL_INIT_FAILED

От:

mjau

Ниоткуда

 
Дата:  04.12.17 15:45
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>Я не утверждаю, что проблема в загрузчике Windows. Но ситуация такова, что dll, которая корректно загружалась до Creators Update перестала загружаться с Creators Update, в котором были изменения в механизме загрузки dll. Повторюсь, в dllmain нет ничего, кроме инициализации глобальных структур. Могу выложить эту dll. Если кому либо интересно, то можете посмотреть, что происходит при загрузке. У меня на это знаний не хватает.

выложите, желательно так, чтобы ее можно было запустить без танцев.


Re[5]: Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 16:18
Оценка:

Здравствуйте, mjau, Вы писали:

A>>Могу выложить эту dll. Если кому либо интересно, то можете посмотреть, что происходит при загрузке. У меня на это знаний не хватает.


M>выложите, желательно так, чтобы ее можно было запустить без танцев.

Ссылка. В архиве две dll: good.eDecoder.32.dll — в этой dll обе функции из wininet.dll находятся в одной IMAGE_IMPORT_DESCRIPTOR, и bad.eDecoder.32.dll, в которой функции из wininet.dll находятся в разных IMAGE_IMPORT_DESCRIPTOR. Это единственное отличие в библиотеках. Проверка очень простая — вызвать LoadLibrary для каждой библиотеки. У меня good.* грузится корректно, bad.* — ERROR_DLL_INIT_FAILED, иногда ловится исключение. Ну а сама dll — это просто плагин для 7Zip.


Re[5]: Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 16:24
Оценка:

Здравствуйте, ononim, Вы писали:

O>А какие нибудь глобальные объекты с конструкторами есть, которые конструируются _до_ dllmain (а по сути — внутри него)? Я с делфями давно дел не имел, не помню как у него с этим.

Не понятно, что подразумевается под термином «до dllmain». Как мой код может получить управление до вызова dllmain? В любом случае в dllmain происходит только выделение небольшого количества памяти под список и его заполнение.


Re[6]: Причины ERROR_DLL_INIT_FAILED

От:

EreTIk

EreTIk’s Box
Дата:  04.12.17 16:44
Оценка:

M>>выложите, желательно так, чтобы ее можно было запустить без танцев.

A>Ссылка. В архиве две dll: good.eDecoder.32.dll — в этой dll обе функции из wininet.dll находятся в одной IMAGE_IMPORT_DESCRIPTOR, и bad.eDecoder.32.dll, в которой функции из wininet.dll находятся в разных IMAGE_IMPORT_DESCRIPTOR. Это единственное отличие в библиотеках. Проверка очень простая — вызвать LoadLibrary для каждой библиотеки. У меня good.* грузится корректно, bad.* — ERROR_DLL_INIT_FAILED, иногда ловится исключение. Ну а сама dll — это просто плагин для 7Zip.

  • Windows 10.0.15063 — не проявляется
  • Windows 10.0.16299 — не проявляется

Возможно, для воспроизведения нужен еще и специфический exe-файл, вызывающий LoadLibrary?


Re[7]: Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 16:49
Оценка:

Здравствуйте, EreTIk, Вы писали:

ETI>

    ETI>

  • Windows 10.0.15063 — не проявляется
    ETI>
  • Windows 10.0.16299 — не проявляется
    ETI>



Спасибо за информацию. А битность систем какая? У меня x64.

ETI>Возможно, для воспроизведения нужен еще и специфический exe-файл, вызывающий LoadLibrary?

У меня любое приложение, что сам 7zip, что простая программа выполняющая единственный LoadLibrary воспроизводят проблему.


Re[6]: Причины ERROR_DLL_INIT_FAILED

От:

mjau

Ниоткуда

 
Дата:  04.12.17 17:12
Оценка:

Здравствуйте, Aniskin, Вы писали:

A>>>Могу выложить эту dll. Если кому либо интересно, то можете посмотреть, что происходит при загрузке. У меня на это знаний не хватает.

M>>выложите, желательно так, чтобы ее можно было запустить без танцев.

A>Ссылка. В архиве две dll: good.eDecoder.32.dll — в этой dll обе функции из wininet.dll находятся в одной IMAGE_IMPORT_DESCRIPTOR, и bad.eDecoder.32.dll, в которой функции из wininet.dll находятся в разных IMAGE_IMPORT_DESCRIPTOR. Это единственное отличие в библиотеках. Проверка очень простая — вызвать LoadLibrary для каждой библиотеки. У меня good.* грузится корректно, bad.* — ERROR_DLL_INIT_FAILED, иногда ловится исключение. Ну а сама dll — это просто плагин для 7Zip.

у меня bad грузится нормально, видимо у вас чисто местные или трудновоспроизводимые грабли.


Re[7]: Причины ERROR_DLL_INIT_FAILED

От:

Aniskin

 
Дата:  04.12.17 17:31
Оценка:

Здравствуйте, mjau, Вы писали:

M>у вас чисто местные или трудновоспроизводимые грабли.

Видимо вы правы. Специально поставил на виртуалку чистую десятку — не воспроизводится. Буду надеяться, что я единственный такой неудачник с такой комбинацией железа и ПО.

Подождите ...

Wait...

  • Переместить
  • Удалить
  • Выделить ветку

Пока на собственное сообщение не было ответов, его можно удалить.

Обновлено 2023 января: перестаньте получать сообщения об ошибках и замедлите работу вашей системы с помощью нашего инструмента оптимизации. Получить сейчас в эту ссылку

  1. Скачайте и установите инструмент для ремонта здесь.
  2. Пусть он просканирует ваш компьютер.
  3. Затем инструмент почини свой компьютер.

Если вы получаете код ошибки 0x8007045A ERROR_DLLL_INIT_FAILED при использовании Центра обновления Windows или обновлении до Windows 10, это сообщение может помочь. Эта ошибка обычно возникает, когда файлы msxml DLL в вашей операционной системе Windows повреждены.

Microsoft XML Core Services или MSXML — это собственный Win32 API для мощных приложений XML, соответствующих стандарту XML 1.0. MSXML6 впервые был поставлен с Windows Vista и более поздними версиями и предлагает улучшения для безопасности, производительности, стабильности и других улучшений, а также поддержку архитектур x64 и Itanium.

Обновление за январь 2023 года:

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

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

скачать

Есть три способа решения этой проблемы:

1] Запустите средство проверки системных файлов и посмотрите, поможет ли это.

2] Заменить файлы msxml3.dll, msxml3a.dll, msxml3r.dll, msxml6.dll и msxml6r.dll в вашей системе с хорошими файлами. Вы можете сохранить эти файлы в другом месте в качестве меры предосторожности. Если у вас теперь есть другой компьютер, скопируйте эти файлы 5 из другой системы в папку C: WindowsSystem32 проблемной системы и замените любые поврежденные файлы. Убедитесь, что оба компьютера используют одну и ту же версию Windows.

Как только вы сделали это, вы должны перезаписать эти DLL-файлы:

или файл, откройте командную строку от имени администратора, введите и нажмите Enter:

/ промежуток>

0x8007045A

В поле времени выполнения введите следующее и нажмите Enter:

regsvr32 C: WindowsSystem32msxml3. длл

0x8007045A

Сделайте то же самое для остальных четырех — msxml3a.dll, msxml3r.dll, msxml6.dll и msxml6r.dll.

Перезагрузите систему и проверьте, помогает ли это.

3] Если это не сработает, у вас есть другой вариант. Загрузите последнюю версию анализатора XML MSDN и установите его в своей системе.

Будем надеяться, что что-то поможет.

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

Связанные видео

Сообщение Просмотров: 72

SeriousRacoon

2019.04.02 18:17

#3  

Это сильная печаль, похоже. У кого-то проблема возникает при линковке с wininet, у кого-то от msxml, у третьего при статической линковке с сишным рантаймом из-за нехватки слотов TLS. Причин может быть масса. Welcome to DLL hell ))

Denis Sartakov

2019.04.02 21:32

#4  

SeriousRacoon:
Это сильная печаль, похоже. У кого-то проблема возникает при линковке с wininet, у кого-то от msxml, у третьего при статической линковке с сишным рантаймом из-за нехватки слотов TLS. Причин может быть масса. Welcome to DLL hell ))

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

ОС — Windows Server 2016 Standard

вот эта ошибка вылезла…

Sergey Dzyublik

2019.04.03 00:11

#5  

Если бы у меня была такая проблема то:
1) На Windows Server 2016 Standard поставил бы Visual C++ Redistributable Packages начиная с 2010 года;
2) Пересобрал бы dll с исходников под целевую машину Windows 10;
3) Отключил бы политику безопасности и групповые политики в Windows Server.

SeriousRacoon

2019.04.03 11:31

#6  

Denis Sartakov:

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

ОС — Windows Server 2016 Standard

вот эта ошибка вылезла…

А на 2012 работает?

Я смотрю, эта фигня вылазит у народа в основном на десятке.

Понравилась статья? Поделить с друзьями:
  • Error dll build time editor dll cannot find editor dll sha1
  • Error dll 120
  • Error django is not importable in this environment pycharm
  • Error division by zero python
  • Error division by zero postgresql