Вы получаете сообщение об ошибке "0x80040154 (класс не зарегистрирован)" при регистрации ATL-сервера

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 201191
Проблема
При регистрации ATL-сервера, может возникнуть ошибка 0x80040154 (класс не зарегистрирован). Для библиотек DLL REGSVR32.exe возвращает эту ошибку. Для EXE-файлов вызов _Module::RegisterServer(CComModule::RegisterServer) в _tWinMain() возвращает эту ошибку.
Причина
ATL70.dll не установлен или не зарегистрирован.

Примечание Для Visual Studio 6.0 и более ранних версиях среды выполнения ATL содержится в ATL.dll. При использовании Visual Studio версии 6.0 или более ранней версии, используйте ATL.dll вместо более поздней версии Visual Studio .NET.
Решение
Установите ATL70.dll (или ATL.dll для более ранних версий Visual Studio) в каталоге Windows\System или Winnt\System32. Необходимо зарегистрировать ATL70.dll, однако ATL.dll необходимо зарегистрировать с помощью Regsvr32.exe. Существуют версии ЮНИКОДА в ANSI и ATL70.dll и ATL.dll. Установите соответствующую версию в целевой операционной системе (то есть, Юникод для Microsoft Windows NT) и ANSI для Microsoft Windows 95 или Windows 98.

Примечание Представленные ниже действия применимы только к Visual Studio 6.0 и более ранних версий. Visual Studio .NET не MinDependency построить целевой объект.

Кроме того не следует использовать ATL.dll. При перестроении сервера ATL с помощью построения целевых объектов ReleaseMinDependency код в ATL.dll статически связан проект.

Даже для ATL.dll «MinDependency выпуска» может потребоваться быть отгружен.

Для получения дополнительных сведений щелкните номер статьи базы знаний Майкрософт ниже:
244955 PRB: MinDependency проекта может потребоваться включить Atl.dll
Статус
Данное поведение является особенностью.
Дополнительная информация
ATL содержит компонент регистратора, используемый во время регистрации. Этот компонент находится в ATL.dll. Во время регистрации ошибки 0x80040154 возвращается из CoCreateInstance(), если не удается создать компонент регистратора.

Расположение библиотеки ATL. Библиотеки DLL в Visual C++ версии 5.0 компакт-диска:

OS\SYSTEM (Юникод)
OS\SYSTEM\ANSI (версия ANSI)

Расположение библиотеки ATL. Библиотеки DLL в Visual C++ 6.0 компакт-диска:

DevStudio\VC\Redist (Юникод)
DevStudio\VC\Redist\Ansi (версия ANSI)

Расположение ATL70. DLL в Visual C++ .NET компакт-диска:

Win\System (Юникод)
Win\System\ansi (версия ANSI)
Ссылки
Библиотека MSDN: Регистратора, компонент ATL реестра; Regsvr32, используя

(c) Корпорация Майкрософт, 1999, все права защищены. Взносы в Samson Tanrena, корпорация Майкрософт.

REGDB_E_CLASSNOTREG

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 201191 — последний просмотр: 09/05/2015 09:52:00 — редакция: 5.0

Microsoft ActiveX Template Library 3.0

  • kberrmsg kbtshoot kbctrlcreate kbinprocsvr kbprb kbregistry kbmt KB201191 KbMtru
Отзывы и предложения