000245-0000-0000-C000-000000000046 80040154 класс не зарегистрирован
У меня есть пара настольных приложений VB.2010, которые успешно работают в течение многих лет на многих клиентах.
Один из моих клиентов получил новый ПК с Windows 10.
Он установил Office 2010.
Когда наша программа запускается она получает
000245-0000-0000-C000-000000000046 80040154 класс не зарегистрирован
ошибка.
Затем он установил Office 365, но это не помогло.
Так как программы, где работает на его старой машине без проблем в течение многих лет (и на многих других системах) Я не могу поверить, что это код.
Так что же именно означает класс, не зарегистрированный?
Как вы зарегистрировали класс?
Что же на самом деле вызывает эту проблему?
Спасибо
Что я уже пробовал:
Объяснено выше.
Установлен Office 365
Richard MacCutchan
С какой версией Excel вы создавали свое приложение?
F-ES Sitecore
Это означает, что dll, необходимый код не зарегистрирован на целевом компьютере. Перейдите на компьютер, где работает код, и найдите класс в реестре (CTR\CLSID\{....}). посмотрите на вложенные ключи, которые дадут вам некоторую информацию о классе\code\dll, который он ищет. Как предположил Ричард, это, скорее всего, проблема версии.
Edit: сделал это на моей собственной машине;
Сборка: Microsoft.Офис.Взаимодействие.Excel, версия=15.0.0.0, культура=нейтральная, PublicKeyToken=71E9BCE111E9429C
Мыши runtimeversion: версия V2.0.50727
ZurdoDev
Пожалуйста, опубликуйте в качестве решения.
Richard Deeming
Также может быть 32/64-битная проблема, если новый компьютер 64-разрядный и приложение компилируется как "любой процессор".
QuickBooksDev
В настоящее время разрабатывается на W10, Office 365 2016. Эти программы существуют уже около 10 лет и были разработаны и работали на многих версиях Office/Excel. Разрабатываю на Office 2016 уже около 1 года.
Поиск с помощью RegEdit зависает система и вызывает жесткую перезагрузку. Просмотр экспорта в блокноте - не самый простой способ увидеть, что происходит в реестре.
Ближе всего я вижу это
[Раздел HKEY_CLASSES_ROOT\Wow6432Node\интерфейс\{000214F9-0000-0000-C000-000000000046}\ProxyStubClsid32]
@="{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Приложение должно быть 32-битным. Раньше он работал на 64-битном excel.
Я экспортировал классы и не могу их найти
clsid\{000214F9-0000-0000-C000-000000000046}
в nodepad
Daniele Rota Nodari
Поиск в RegEdit не должен быть проблемой, даже если вы вводите неправильные параметры поиска: если это действительно зависает система, то я бы искал что-то более серьезное, чем несоответствие DLL. Это может быть повреждение реестра, которое препятствует правильному поведению системы и может привести к непредсказуемым проблемам.
QuickBooksDev
Редактор зависает уже происходит в течение длительного времени. Ошибка с DLL не возникает в одной и той же системе. Проблемы RegEdit не кажутся вам новыми, если вы загуглите его.
QuickBooksDev
Моя ошибка (я слепну, глядя на эти GUID). Я нашел
[Ключ ключа\CLSID\{00024500-0000-0000-C000-000000000046}]
@="Приложение Microsoft Excel"
и еще куча других.
Вышеприведенный комментарий имел неправильный guid.