visual foxpro ошибка ole код 0x80040154 class not registered
Visual foxpro ошибка ole код 0x80040154 class not registered
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
OLE error code 0x80040154; I tryied to register the file but could not be loaded:
Answers
A few things to understand:
b) 64Bit systems have a 32bit subsystem you need to use, not in System32, but in SysWOW64, inversely as you would think. WOW64 means Windows32OnWindows64, MS shortened it so everybody thinks it’s the 64bit system folder. The 64bit system folder is System32 and kept its name for «downward compatibility». Don’t blame me.
c) You don’t only need to put your mscomctl.ocx into SysWow64, you also need to use the regsvr32,exe from that folder, so finally the command should be:
or you CD C:\Windows\SysWoW64 and then do
regsvr32 mscomctl.ocx
I nowadays don’t assume you have a pure 32bit Windows, in that case SysWOW64 won’t exist, but you still need to take a) into account: Use the Command Promt (Admin).
Исправление ошибки Windows Installer 0x80040154
В этой статье я расскажу об исправлении одной очень распространенной ошибки Windows Installer. Обыскавши Интернет как русскоязычный, так и англоязычный, включая форумы и ньюсгруппы Microsoft, я понял что ошибка довольно распространенная, однако исправить ее, на самом деле никому не удавалось.
Суть проблемы
Как то одним жарким летним вечером я решил установить на свой компьютер ActeiveState ActivePerl. Скачал инсталлятор, который был в .msi файле и запустил его. Каково же было мое удивление, когда вместо привычного инсталлятора я увидел вот это:
Как вскоре оказалось, подобная ошибка выпадала при запуске на моем компьютере любого .msi файла.
Недолго думая, я полез в интернет, ввел в поиск появившееся сообщение, и, «О ужас!» — я увидел сотни постов людей с этой проблемой! В русскоязычном и англоязычном сегменте Интернета у множества людей была аналогичная проблема, и никто ее не смог решить по существу.
Решение проблемы
Для начала я включил Log-файл установщика Windows. Как включить лог Windows Installer вы можете почитать здесь, или поискать в любом поисковике по ключевому слову «voicewarmup».
Лог-файлы появляются во временной папке пользователя, которая обычно находится по пути C:\Users\имя_профиля\AppData\Local\Temp. Открыв лог, я увидел следующую ошибку:
MSI (c) (B8:84) [22:08:06:894]: Failed to connect to server. Error: 0x80040154
Поискав по коду ошибки в Интернете, и не нашедши никаких способов решения проблемы, я решил подумать логически.
Что означает ошибка 0x80040154? Поискав в поисковике, и воспользовавшись утилитой Error Lookup, я определил, что ошибка означает «Класс не зарегистрирован».
Обычно такая ошибка появляется, когда вы запрашиваете у системы создать COM-объект, который не был должным образом зарегистрирован в реестре. Но как определить какой именно объект не зарегистрирован?
Для начала я воспользовался старым добрым отладчиком WinDbg, который входит в пакет Debugging Tools For Windows. Мне понадобилась именно 64-разрядная версия данного отладчика.
Перед началом отладки необходимо загрузить отладочные символы для распознавания имен системных функций и переменных. Эти символы являются довольно полезной вещью не только для поиска ошибок, но также и для исследования работы Windows в целом.
Я предпочитаю указывать отладчику путь для поиска символов через переменную среды _NT_SYMBOL_PATH, которая должна быть задана как: C:\Symbols;srv*C:\Symbols*http://msdl.microsoft.com/download/symbols. В данном случае папка C:\Symbols — это хранилище загруженных символов на жестком диске, чтобы отладчик каждый раз не лез в интернет за ними.
Загрузил я в отладчик файл c:\windows\system32\msiexec.exe и задал для него параметры командной строки так, чтобы он открыл .msi файл. В моем случае параметром командной строки было: /i «C:\Users\MAV\Desktop\ActivePerl-5.12.4.1205-MSWin32-x64-294981.msi» однако можно задавать путь к любому другому .msi файлу.
Сам по себе отладчик, конечно не решит проблему, нужно ее локализовать. Поразмыслив, какие функции могут создавать COM-объекты, я остановился на CoCreateInstance, CoCreateInstanceEx и CoGetClassObject
Для установки точек прерывания на эти функции вводим в командной строке отладчика:
bp ole32!CoCreateInstance
bp ole32!CoCreateInstanceEx
bp ole32!CoGetClassObject
Если точки останова у вас не ставятся, значит вы неправильно настроили символы.
После запуска приложения (F5), срабатывает точка останова на ole32!CoCreateInstance. Если точка останова не срабатывает, а выпадает окно с параметрами Wndows Installer, то вы неправильно указали параметры командной строки для запуска.
Давайте теперь посмотрим, из какого же места кода вызывается создание нашего объекта, для этого мы можем нажать Debug->Step Out (Shift+F11). Мне пришлось нажать указанную комбинацию дважды, для того чтобы выйти в исходную вызывающую функцию.
Исходная вызывающая функция называется msi!CreateMsiServerProxy и, очевидно, находится в модуле msi.dll.
Запомнив имя функции, а также примерный вид искомого кода, я открыл дизассемблер IDA Pro, и загрузил в него файл msi.dll. Следует отметить пару особенностей данного отладчика: во первых, IDA любит блокировать доступ к исследуемому файлу, во вторых, она создает в папке с исследуемым файлом несколько своих файлов баз данных, так что я рекомендую копировать исследуемые файлы в отдельную папку. В третьих, IDA не всегда подгружает файлы с символами, поэтому рекомендую в указанную отдельную папку также скопировать файл msi.pdb из вышеуказанной папки C:\Symbols.
После нахождения функции CreateMsiServerProxy, находим знакомые строки кода в ней:
Не иначе как функция пытается создать объект по CLSID IID_IMsiServer. Здесь я не буду вдаваться в подробности COM и искать различия между CLSID и IID, важно что я получил зацепку — имя интерфейса ID_IMsiServer и CLSID .
Windows Registry Editor Version 5.00
После импорта ключа реестра я вновь попробовал запустить .msi файл, и, «О чудо!», он запустился, после чего я успешно установил ActivePerl.
У вас может быть аналогичная проблема, но при этом отсутствовать другой ключ реестра. Импортировать при этом необходимо те ключи, которых у вас нет.
Выводы
Спасибо за внимание, я очень надеюсь что статья вам понравилась, жду ваших отзывов, а также с удовольствием отвечу на ваши вопросы.
Решение проблем, которые могут возникнуть при запуске
1. Вопрос: После установки, при вводе документов выдается окно с запросом файлов *.ocx нажимаем на кнопку «Отмена» и выпадает ошибка:
«Ошибка OLE, код 0x80040154: Класс не зарегистрирован. Объект OLE игнорируется. Номер записи 6»
«Внутренняя ошибка 2738(Internal error 2738)»
Ответ:
Запустите файл reg.bat (может потребовать запуск от администратора) из папки с программой (обычно c:\Налогоплательщик ЮЛ\Inputdoc\reg.bat)
2. Вопрос: при попытке запуска программы выдаются сообщения типа:
«Несовпадение версии файла ресурсов»
«не хватает библиотеки Visual FoxPro»
Visual FoxPro cannot start
Could not load resources
Неправильный путь или имя файла
Resource file version mismatch
Cannot locate the Microsoft Visual Foxpro support library
либо выходит окно Microsoft Visual Foxpro и диалог выбора файла prg(fxp)
сама программа при этом не запускается
Oтвет:
-программа установлена в «C:\Налогоплательщик ЮЛ\»
-Объект(Target): «C:\Налогоплательщик ЮЛ\INPUTDOC\inputdoc.exe»
-Рабочая папка(Start in): «C:\Налогоплательщик ЮЛ\INPUTDOC\»
2. убедитесь, что в рабочей папке есть файлы:
vfp9rrus.dll (1 416К)
3. попробуйте отключить антивирус и запустить программу без него
6. попробуйте скачать и заменить в папке с программой файлы: http://npul.ru/download/other/9/
7. попробуйте скачать и заменить в папке с программой файлы: http://npul.ru/download/other/9sp1/
8. если 1-5 не помогли, попробуйте скачать и установить туда, где не запускается :
3. Вопрос: В программе вместо букв иероглифы, как исправить?
Ответ:
2. если не помогло, загрузите классическую схему в настройках экрана Windows
3. если не помогло, смените язык системы на английский, перезагрузитесь, затем опять на русский и снова перезагрузитесь
4.Внимание! во время смены языков windows может выдать сообщение, о том, что какие-то файлы уже имеются на диске и предлагает использовать их. Не соглашайтесь и выбирайте файл из дистрибутива windows. Смысл этих действий именно в восстановлении языковых файлов из дистрибутива windows.
1. Панель управления, Региональные стандарты, На закладке Форматы выбрать формат английский, на закладке Дополнительно (Язык программ не поддерживающих Юникод) нажать кнопку «Изменить язык системы», выбрать Английский
3. Панель управления, Региональные стандарты, На закладке Форматы выбрать формат Русский, на закладке Дополнительно (Язык программ не поддерживающих Юникод) нажать кнопку «Изменить язык системы», выбрать Русский
5.Внимание! иногда метод помогает со второй или третьей попытки
Windows 98, 2000, XP если не помогло:
измените значение строкового параметра «1252»
с «c_1252.nls» на «c_1251.nls»
ответ:
В папке с программой, после такой ошибки, будет файл VFP9Rerr.log. Пришлите его на info@mail.rvcgnivc.ru
5. Вопрос:Иногда возникает ошибка доступа к файлам, находящимся во временной папке Windows (\Documents and Settings\. \Local Settings\Temp или \Users\. \Local Settings\Temp)
Извините за ошибки, но, к сожалению, у нас нет возможности протестировать программу на всем возможном множестве программных + аппаратных платформ и с учетом всех программ, которые может у себя установить пользователь. Надеемся на ваше понимание и желание сотрудничать с нами в решении этой проблемы.
Для локализации и устранения причин ошибок в программе инсталляции большая просьба выслать нам файлы MSI*.LOG из временной папки Windows (типа:«C:\Documents and Settings\userName\Local Settings\Temp\MSI*.LOG»или Win9*:«C:\Windows\Temp\MSI*.LOG»)
Для локализации и устранения причин ошибок в программе «Налогоплательщик ЮЛ» большая просьба выслать нам все файлы из папки LOG программы «Налогоплательщик ЮЛ» (типа:«C:\Налогоплательщик ЮЛ\INPUTDOC\LOG\*.*»)
Способы самостоятельного решения OLE ошибки «класс не зарегистрирован» с кодом 0x80040154 в операционной системе Windows 7, 8 и 10
Каждый компьютер не застрахован от непредвиденных сбоев. Главной задачей пользователя ПК, попавшего в непредвиденную ситуацию — правильно определить и грамотно подойти к устранению эксцесса.
В данной статье речь пойдет об описании ошибки под номером 0x80040154, а также будут предложены методы исправления. Ошибка не является критической, что уже хорошо, так как полного выхода из операционной системы и вывода синего экрана не вызывает. Это даёт возможность, не выходя из системы, приступить к решению и устранению.
Класс не зарегистрирован при открытии JPG и других изображений
Наиболее часто встречающийся случай — ошибка «Класс не зарегистрирован» при открытии JPG, а также других фотографий и изображений.
Чаще всего проблема бывает вызвана неправильным удалением сторонних программ для просмотра фото, сбоями параметров приложений по умолчанию Windows 10 и подобными, однако решается это в большинстве случаев очень просто.
По завершении проверьте, открываются ли файлы изображений теперь. Если открываются, но вам требуется, чтобы с JPG, PNG и иными фото работала сторонняя программа, попробуйте удалить ее через Панель управления — Программы и компоненты, а затем установить заново и назначить используемой по умолчанию.
Примечание: еще один вариант этого же способа: нажать правой кнопкой мыши по файлу изображения, выбрать пункт «Открыть с помощью» — «Выбрать другое приложение», указать работающую программу для просмотра и о.
Если ошибка возникает просто при запуске приложения «Фотографии» Windows 10, то попробуйте способ с перерегистрацией приложений в PowerShell из статьи Не работают приложения Windows 10.
При запуске приложений Windows 10
При возникновении рассматриваемой ошибки при запуске приложений магазина Windows 10, а также при ошибке 0x80040154 в приложениях, опробуйте способы из статьи «Не работают приложения Windows 10», которая была приведена выше, а также попробуйте такой вариант:
Ошибка explorer.exe «Класс не зарегистрирован» при нажатии на кнопку Пуск или вызове параметров
Еще один распространенный вариант ошибки — не работающее меню Пуск Windows 10, или отдельные элементы в нем. При этом о том, что класс не зарегистрирован сообщает explorer.exe, код ошибки тот же — 0x80040154.
Способы исправить ошибку в данном случае:
Если это не помогло, попробуйте также способ, описанный в разделе про службу компонентов Windows.
Не работает «Пуск»
Для устранения проблем с работой меню «Пуск» есть несколько вариантов действий:
Перезапуск «Проводника»
Перезапустить «Проводник» можно через «Диспетчер задач».
Совет! Запомните сочетания клавиш: Ctrl+ALT+DEL — останавливает всю систему и выводит диалоговое окно завершения работы Ctrl+Shift+Esc – вызов «Диспетчера задач».
Диспетчер задач, также, позволяет снимать «зависшие» или вредоносные приложения и контролировать работу системы.
Обновление через «Media Creation Tool»
Это один из самых правильных и надежных способов избавиться от ошибок, но иногда, утилита не может обновить Ваш компьютер.
Изменение имя пользователя
Если имя пользователя написано на кириллице, то это может стать причиной ошибки. В таком случае нужно изменить его.
Применение DISM.exe и SFC.exe
DISM.exe («Система обслуживания образов») и SFC.exe («Средство проверки системных файлов») восстанавливают поврежденные системные файлы, удаляют, настраивают и обновляют системные компоненты. Они запускаются через приложение «Выполнить».
Использование Windows PowerShell
Перед использованием PowerShell необходимо закрыть все браузеры и приложения. Запустить программу можно через «Диспетчер задач».
Совет! Самое простое и правильное решение – переустановить Windows и установить заново все приложения.
Ошибка при запуске браузеров Google Chrome, Mozilla Firefox, Internet Explorer
При появлении ошибки в одном из интернет-браузеров, за исключением Edge (для него следует попробовать способы из первого раздела инструкции, только в контексте браузера по умолчанию, плюс перерегистрация приложений), выполните следующие шаги:
Дополнительные действие по исправлению ошибки для Internet Explorer:
По завершении действий, проверьте, была ли исправлена проблема. В случае с Internet Explorer, перезагрузите компьютер.
Для сторонних браузеров, если способы, приведенные выше не сработали, может помочь удаление браузера, перезагрузка компьютера и последующая повторная установка браузера (или удаление разделов реестра HKEY_CURRENT_USER\ SOFTWARE\ Classes\ ChromeHTML\, HKEY_LOCAL_MACHINE\ SOFTWARE\ Classes\ ChromeHTML\ и HKEY_CLASSES_ROOT\ ChromeHTML (для браузера Google Chrome, для браузеров на базе Chromium название раздела может быть, соответственно, Chromium).
Универсальный способ
Указанный ниже метод может сработать вне зависимости от ситуации, в которой появилось сообщение об ошибке:
По некоторым данным, причиной появления ошибки может являться установка iCloud для Windows, а также поврежденный реестр. Если никакие способы не помогают избавиться от неполадки, можно просто сбросить Windows 10 с сохранением или без сохранения данных.
Исправление в службе компонентов Windows 10
Этот способ может сработать вне зависимости от контекста появления ошибки «Класс не зарегистрирован», как и в случаях с ошибкой explorer.exe, так и в более специфичных, например, когда ошибку вызывает twinui (интерфейс для планшетов Windows).
Дополнительная информация
Если предложенные способы не помогли, следующая информация может оказаться полезной:
На этом завершаю и надеюсь, что в материале нашлось решение для исправления ошибки в вашей ситуации.
Регистрация классов вручную
Иногда в исправлении ошибки 0x80040154 может помочь ручная регистрация всех библиотек DLL и компонентов OCX, находящихся в системных папках. Для её выполнения: запустите командную строку от имени администратора, введите по порядку следующие 4 команды, нажимая Enter после каждой (процесс регистрации может занять продолжительное время).
for %x in (C:\Windows\System32\*.dll) do regsvr32 %x /s for %x in (C:\Windows\System32\*.ocx) do regsvr32 %x /s for %x in (C:\Windows\SysWOW64\*.dll) do regsvr32 %x /s for %x in (C:\Windows\SysWOW64\*.ocx) do regsvr32 %x /s
Последние две команды — только для 64-разрядных версий Windows. Иногда в процессе может появиться окно с предложением установить недостающие компоненты системы — сделайте это.
2147221164 (0x80040154): Класс не зарегистрирован — что делать?
В программном обеспечении 1С, как и в любом другом, иногда возникают ошибки. Это не дает софту нормально функционировать и может затормозить работу целой организации. Поэтому нужно знать, как справляться с различными сбоями. В частности, сегодня мы разберем, из-за чего возникает ошибка «2147221164 (0x80040154): Класс не зарегистрирован», и что нужно сделать, чтобы ее исправить.
Когда появляется ошибка 2147221164?
Рассматриваемая ошибка появляется из-за конфликта версий 1С, которые в данный момент устанавливают между собой соединение. Разберем подробнее. Информационные БД 1С производят обмен данных при помощи СОМ-соединения. И, если, например, платформа 1С:Предприятие конфигурации 8.3 пытается установить связь с 1С версии 8.1, то на этом этапе при попытке подключения к СОМ-серверу и выскакивает данная ошибка.
Для начала определим, что у сервера 1С есть несколько версий:
Неполадки появляются на самом сервере с БД. Корень проблемы в том, что версии 1С архитектуры х64 не могут напрямую обратиться к 32-битной библиотеке comcntr.dll. В этом случае соединение происходит при помощи приложений СОМ+, способных взаимодействовать с библиотеками х86.
Справляемся с проблемой
Заканчиваем с теорией и переходим к практике – пробуем исправить ошибку «2147221164 (0x80040154): Класс не зарегистрирован».
Регистрируем библиотеку comcntr.dll
Ошибка может проявиться, если не зарегистрирована библиотека comcntr.dll. Решаем ее следующим образом. Вызываем строку «Выполнить» (кликнув ПКМ по кнопке «Пуск») и вводим regsvr32.exe «C:\Program Files(86)\1cv82\8.3.XX.XXXX\bin\comcntr.dll». Нажимаем ОК и, если все прошло корректно, то мы увидим сообщение об успешной регистрации библиотеки.
Создаем новое приложение СОМ+
Если библиотека зарегистрирована, но проблема остается, то кликаем ПКМ по кнопке «Пуск» (для ОС Windows 10) и вызываем «Панель управления». Затем входим в раздел «Система и безопасность», после чего переходим в «Администрирование». Появляется окно, в котором мы ищем строку «Службы компонентов» и открываем ее двойным щелчком ЛКМ. В новой консоли два раза кликаем ЛКМ по папке «Компьютер» и затем «Мой компьютер». Перед нами появляется список папок. ПКМ нажимаем на «Приложения СОМ+» и выбираем «Создать» → «Приложение».
Далее действуем следующим образом.
Мы рассмотрели соединение с базой из программы 1С:Предприятие версии 8.3. Если планируется устанавливать коннект с БД 8.1 из версии 1С 8.2, то нужно добавить нового пользователя. Переходим по пути 1CV8_ComConnect → Роли → CreatorOwner → Пользователи и добавляем новую учетную запись User1CV82, под которой будет производиться запуск сервера 1С версии 8.2.