Runtime error 217 at 004bb10d autodata как исправить

Обновлено: 05.07.2024

p, blockquote 1,0,0,0,0 -->

p, blockquote 2,0,0,0,0 -->

p, blockquote 3,0,0,0,0 -->

Что такое Runtime Error 217?

p, blockquote 4,0,0,0,0 -->

Runtime Error 217 может возникать по одной из множества причин. Эти причины включают в себя:

  • Отказ зарегистрировать dll в процессе установки приложения.
  • Наличие вирусов на компьютере.
  • На вашем компьютере установлены неправильные региональные настройки.
  • На вашем компьютере есть устаревший файл msvcrt.dll .

на вашем компьютере.

  • Сломанные или отсутствующие файлы реестра.
  • Наличие устаревшего MS DCOM файла на вашем компьютере.
  • Отсутствует stdole32.tlb-файл на вашем компьютере.

p, blockquote 7,0,0,0,0 -->

Если вы подозреваете, что ошибка runtime error 217 возникает из-за неправильной установки, просто переустановите приложение. Однако, если ваш источник для приложения поврежден, то Вам необходимо получить новый диск или скачать новую версию приложения перед его попыткой установки. Как только приложение будет установлено правильно, ошибка runtime больше не должна возникать.

p, blockquote 8,0,0,0,0 -->

p, blockquote 9,0,0,0,0 -->

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

p, blockquote 10,1,0,0,0 -->

p, blockquote 11,0,0,0,0 -->

Если настройки Вашего компьютера неверны, может появится ошибка Runtime Error 217. Убедитесь, что настройки даты на вашем компьютере совпадают для страны, где вы находитесь.

p, blockquote 12,0,0,0,0 -->

p, blockquote 13,0,0,0,0 -->

Если ошибка происходит из-за устаревшего файла msvcrt.dll, Вам необходимо заменить файл при обновлении операционной системы. Вы можете сделать это, посетив веб-сайт корпорации Майкрософт. Пока вы там находитесь, проверьте все существующие исправления, которые были выпущены для вашей версии Windows.

p, blockquote 14,0,0,0,0 -->

p, blockquote 15,0,0,1,0 -->

Если ошибка появляется из-за устаревшего файла MS DCOM, получите последние обновления для вашей операционной системы через веб-сайт Microsoft.

p, blockquote 16,0,0,0,0 -->

p, blockquote 17,0,0,0,0 -->

Если вам не хватает файла stdole32.tlb, Вам необходимо скачать его и заменить. В то время как вы могли бы быть в состоянии получить этот файл на нескольких различных веб-сайтах, лучше всего получить его через библиотеки Microsoft dll.

p, blockquote 18,0,0,0,0 -->

p, blockquote 19,0,0,0,0 --> p, blockquote 20,0,0,0,1 -->

Файлы реестра, которые стали сломанными или повреждены, могут быть восстановлены при запуске авторитетных программ registry cleaner на вашем компьютере. Выберите ту программу, которую вы хотите скачать, установите её и запустите, чтобы выполнить ремонт вашей системы.

Что такое Runtime Error 217?

Runtime Error 217 может возникать по одной из множества причин. Эти причины включают в себя:

  • Отказ зарегистрировать dll в процессе установки приложения.
  • Наличие вирусов на компьютере.
  • На вашем компьютере установлены неправильные региональные настройки.
  • На вашем компьютере есть устаревший файл msvcrt.dll .

на вашем компьютере.

  • Сломанные или отсутствующие файлы реестра.
  • Наличие устаревшего MS DCOM файла на вашем компьютере.
  • Отсутствует stdole32.tlb-файл на вашем компьютере.

Если вы подозреваете, что ошибка runtime error 217 возникает из-за неправильной установки, просто переустановите приложение. Однако, если ваш источник для приложения поврежден, то Вам необходимо получить новый диск или скачать новую версию приложения перед его попыткой установки. Как только приложение будет установлено правильно, ошибка runtime больше не должна возникать.

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

Если настройки Вашего компьютера неверны, может появится ошибка Runtime Error 217. Убедитесь, что настройки даты на вашем компьютере совпадают для страны, где вы находитесь.

Если ошибка происходит из-за устаревшего файла msvcrt.dll, Вам необходимо заменить файл при обновлении операционной системы. Вы можете сделать это, посетив веб-сайт корпорации Майкрософт. Пока вы там находитесь, проверьте все существующие исправления, которые были выпущены для вашей версии Windows.

Если ошибка появляется из-за устаревшего файла MS DCOM, получите последние обновления для вашей операционной системы через веб-сайт Microsoft.

Если вам не хватает файла stdole32.tlb, Вам необходимо скачать его и заменить. В то время как вы могли бы быть в состоянии получить этот файл на нескольких различных веб-сайтах, лучше всего получить его через библиотеки Microsoft dll.

Файлы реестра, которые стали сломанными или повреждены, могут быть восстановлены при запуске авторитетных программ registry cleaner на вашем компьютере. Выберите ту программу, которую вы хотите скачать, установите её и запустите, чтобы выполнить ремонт вашей системы.

(1 оценок, среднее: 1,00 из 5)


В этой статье мы расскажем вам, как избавиться от ошибки runtime 217 error at 123456.

Что делать если у вас стала возникать ошибка runtime 217 error?



Вот варианты решения проблемы:

Autodata — если у вас выдаёт ошибку Runtime error 217 004BB10D необходимо произвести следующие действия:

открываем командную строку (расположена в C:Usersимя вашего компьютера AppDataRoamingMicrosoftWindowsStart MenuProgramsSystem Tools) правой кнопкой по ярлыку, запустить от имени администратора, пишем в появившемся окне cd c:adcda2 “regsvr32 ChilkatCrypt2.dll”

если выдаёт ошибку place the cd/dvd in drive and choose ok необходимо запустить ФАЙЛ.

Если при установке windows либо другого программного обеспечения выдаёт ошибку CRC скорее всего у вас повреждён носитель, так же могут быть неисправны, дисковод, винчестер или флешка. Попробуйте другой не оцарапанный диск или другую флешку, в случае если не помогло, другой оптический накопитель или дисковод.

Видео драйвер перестал отвечать и был восстановлен, возможен перегрев графического ядра, битая память видеокарты, поврежденный кристалл ядра.


D3d.dll или DXD3D dll error — рекомендуется переустановить последний directX

AutoCAD в последних версиях, при загрузке особо ёмких чертежей, было замечено потребление оперативной памяти до 16 гб. В случае если ваш компьютер имеет характеристики intel i3 4gb ddr3*2, проблема проявляется в зависании при сохранении изменений в чертежах (особо ёмких чертежах).

Решение просто необходимо заменить батарейку.

Запуск программы не возможен, так как на компьютере отсутствует MSVCP.DLL. Попробуйте переустановить программу.

Решение: Необходимо установить microsoft visual С++ самой свежей версии.

В случае если на вашем компьютере бывают частые сбои с синим экраном, (экран смерти, он же BSOD) и каждый раз код ошибки разный 0*00000003b, 0*00000008e, 0*000000050 и т.п. есть большая вероятность неисправной оперативной памяти. Проще всего поставить другую оперативную память и запустить тот процесс или дать ту же нагрузку, какую вы давали при этих сбоях. Сбоя нет, проблем нет, память была неисправна, диагностика успешна, проблема устранена. «Почему проще всего подкинуть другую, а не запустить диагностический тест?» спросите вы, всё очень просто не все тесты видят неисправности оперативной памяти и при этом занимают уйму времени. Проще говоря можно потратить много времени и не найти причину, и двигаться дальше в неверном направлении.

Бывали случаи, что не хотели устанавливаться определённые программы, выдавали ошибки на одном и том же месте, при свеже установленной ОС без вирусов, Windows переставала работать ровно через месяц после установки, в итоге результат битая оперативная память, которая ни в одном тесте не выдавала ни единой ошибки.

Вероятно многие встречались с таким вот «партизаном» при старте или завершении приложения:


Если честно, раньше я как-то даже не задумывался по поводу данного исключения, т.к. в моих проектах оно явление редкое, пока однажды у целой череды пользователей не начала воспроизводится именно 217-я ошибка.
Впрочем, даже тогда я не пошел по правильному пути и просто добавил дополнительный уровень логирования в проект, по результатам которого достаточно оперативно нашел причину и исправил ее.
Но, по сути, я просто потратил свое время…

И тратил бы его в дальнейшем, если бы на днях со мной не связался Виктор Федоренков и не рассказал о своих мыслях по поводу ошибки за номером 217.

Теория и анализ проблемы

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

Для начала я немного освежил мои представления об ошибках в принципе, перечитав часть статьи «Обработка ошибок — глава 1.2.2» за авторством Александра Алексеева, откуда вынес информацию о том, что ошибка 217 будет отображена в том случае, если не инициализирован модуль SysUtils, причем это у Александра проиллюстрированно достаточно наглядно:



Открыть картинку в полный размер…

На основании данной картинки можно сделать грубый вывод: пока SysUtils жив — все исключения должны отображаться в нормальном виде, о чем идет отдельное упоминание:

Ну что-ж давайте проверим, пишем код, в котором SysUtils должна быть финализирована позже модуля Unit1, в котором искусственно генерируем исключение:


Билдим, запускаем, закрываем форму и… Runtime error 217.

Утверждение о том, что 217 отображается после финализации SysUtils полностью верное, но давайте-ка посмотрим на сам код финализации:


Смотрите что происходит: в процедуре FinalizeUnits вызываются все финализирующие процедуры, адреса которых расположены в массиве InitContext.InitTable^.UnitInfo в том порядке, в котором происходила их инициализация, т.е. самые первые расположены в начале массива (а финализация идет с конца).
Где-то в самом низу расположен и SysUtils + System, ну а мы, с нашим модулем Unit1 где-то в самом верху.
Но вдруг происходит исключение в нашем модуле и «бабах», порядок катарсиса нарушен.

После «бабах» FinalizeUnits вызывается повторно, пропуская наш модуль, вызвавший исключение, вследствие чего разрушается SysUtils и разные, встречающиеся по пути, class destructor-ы, до кучи грохается System с менеджером памяти (сидящий одним из первых в начале списка), после чего идет контрольный выстрел в лоб — RAISE, вот тут-то мы и приплыли — здравствуй 217.

А что если произойдет исключение в секции инициализации любого модуля?

Да все тоже самое:


Делаем вывод: любое необработанное исключение в секциях инициализации или финализации будет приводить к потере описания исключения и приводить к ошибке 217.

Отключаем финализацию модулей

В самом начале обсуждения Виктором был предложен достаточно эффективный способ обхода данной ошибки.

Его анализ заключался в следующем: общая инициализация обработчика исключений производится в процедуре InitExceptions модуля SysUtils, а финализация вызовом DoneExceptions.

Как вариант решения был предложен следующий код, который нужно подключить к файлу проекта самым первым модулем (будет работать начиная с D2005 и выше):


Если честно — аплодировал стоя.
Вот он: хак в самом грязном виде как он есть — такие вещи могут делать только те, кто действительно понимает, чем это грозит :)
И данный модуль вывел работу нашего IT отдела примерно на три часа — это была жесткая дискуссия :)

Но, впрочем, давайте разберем логику работы данного кода:
Суть его проста, необходимо выйти на данные о загруженных модулях (включая BPL) в том виде, в котором их понимает Delphi приложение. Это было сделано посредством доступа к началу однонаправленного списка структур TLibModule. Первым элементом списка будет структура, описывающая текущий образ, откуда нам нужно всего-то и получить данные о структуре UnitInfo, которая содержит в себе данные как о количестве инициализированных модулей, так и об адресах их процедур инициализации и финализации в виде записи PackageUnitEntry.

Блокирование финализации модулей происходит посредством присвоения параметру FInit значения nil у каждой записи PackageUnitEntry.

При обниливании данного параметра FinalizeUnits не сможет произвести вызов обработчика и в итоге тот самый raise, о котором я писал выше, сможет достаточно корректно произвести отображение возникшего исключения.


Но вот дальше все сложнее.

Пытаемся причесать хорошую мысль

Идея здравая и причины понятны, но вот как-же так, ресурсы все-же не освобождены, FastMem перестанет нормально работать (она собирает утечки как раз при финализации), да и совместимости маловато, к примеру, как я и сказал выше, под Delphi 7 данный код вообще работать не сможет.

После первого часа обсуждений в IT отделе мы даже умудрились прийти и к такому выводу: «да и хрен с ними с SysUtils и System — что-то критичного они за собой не несут».
А потом, опять начали спорить — ну не устраивал нас этот подход, вроде все хорошо, но не аккуратненько как-то.

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

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

Попробуем-ка проэмулировать вызов ExceptHandler.
Пишем тестовый юнит и подключаем его к проекту самым первым:


Запускаем на выполнение и…



Получилось.

Встроившись в цикл финализации, мы отобразили произошедшее исключение и продолжили финализацию дальше вызовом Halt(1).

В итоге задача решена, грамотно и документировано, и совместимо с Delphi 7, но…

А не развить ли идею?

Есть такое понятие, как «наведенные ошибки», т.е. ошибки произошедшие из-за того что перед ними тоже произошла ошибка.

Ну к примеру, функция А, которая должна возвращать экземпляр некоего класса и функция Б, использующая этот экземпляр в работе. К примеру в функции А произошло необработанное исключение (например нет доступа к файлу) и она не создала класс, а потом где-то гораздо позже по коду приложения процедура Б выполняет обращение к этому экземпляру и в итоге происходит Access Violation.

Тоже самое может произойти и в процедурах инициализации/финализации, причем исключение, произошедшее в финализации скроет от нас саму причину.

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


Мало у кого в системе присутствует диск «А» поэтому результатом этого кода будет либо «Runtime error 216» (именно 216, а не 217), либо, если подключим код из предыдущей главы:

Exception EAccessViolation in module Project2.exe at 001B1593.
Access violation at address 005B1593 in module 'Project2.exe'. Read of address 00000000.

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


Здесь идея проста, функция GetNextException по сути повторяет вызов AcquireExceptionObject, но после своего вызова не теряет ссылку на следующее в очереди исключение, а запоминает адрес следующего фрейма во внешней переменной.
После чего все исключения заносятся в список (самое последнее будет первым в списке) и выводятся программисту с соблюдением очередности, в результате чего нам будет сразу понятно, что сначала произошло вот это:


И уже только после него пошли всякие там AV.

Теперь по поводу остальных кодов ошибок.
Почему я начал именно с «Runtime error 217»?
Ну потому что она наиболее легко воспроизводима, а так технически, используя выше приведенный модуль, мы получим на руки вполне нормальное описание всех возможных Runtime ошибок, коих в наличии у нас вон сколько:

Вот таким небрежным кодом, мы можем получить то, о чем нам не хочет говорить ошибка под кодом 217.

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

А если нет — значит буду вторым.

Отдельный респект соавтору и вдохновителю данной статьи — Виктору Федоренкову.

Ошибка выполнения 217 может стать большой проблемой, если вы используете свой компьютер в деловых целях и в вашей системе хранятся конфиденциальные данные / документы.

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

Решения

Изображение коробки ресторо
Причины ошибок

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

Дополнительная информация и ручной ремонт

Хотя Runtime Error 217 настораживает, это не означает, что вам нужно паниковать. Сохраняйте спокойствие и следуйте рекомендуемым решениям для исправления ошибки выполнения 217, приведенным ниже.

  • Если ошибка возникает из-за того, что вы вызвали устаревший файл Msvcrt.dll, необходимо обновить файл. Это легко сделать, щелкнув меню «Пуск», войдя в панель управления и выбрав вкладку «Обновление Windows».
  • При возникновении ошибки выполнения 217 из-за неправильных региональных настроек на вашем компьютере, чтобы решить эту проблему, просто перейдите в меню «Пуск» и выберите «Панель управления». Теперь на панели управления вы найдете параметр часов, нажмите на него и перейдите к настройкам языка и региона. Выберите свои региональные настройки и сохраните.
  • Если причиной ошибки выполнения 217 являются неправильные записи в реестре и повреждение файлов DLL, то для исправления ошибки необходимо: скачать исправление ошибки Runtime 217, После того, как вы загрузите этот инструмент для ремонта, запустите его на своем ПК. Он сканирует и обнаруживает поврежденные файлы и быстро исправляет ошибку.
  • Тем не менее, если причиной этой проблемы является вирус, вам необходимо установить мощную антивирусную программу. Когда вы запускаете его, антивирус проверяет ваш компьютер на вирусы. После завершения сканирования результаты отображаются на экране. Результаты показывают, сколько именно вирусов установлено на вашем компьютере. После завершения сканирования удалите все файлы и нажмите «Восстановить».

Независимо от того, испытывали ли вы Runtime Error 217 на вашем компьютере или нет, рекомендуется устанавливать мощный антивирус и запускать его каждый раз, когда вы используете свой компьютер.

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

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

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