0 / 0 / 0 Регистрация: 08.04.2013 Сообщений: 5 |
|
1 |
|
Ошибка «класс не зарегистрирован»08.04.2013, 09:15. Показов 12609. Ответов 9
Всем привет! Подгрузил класс и новый компонент Map для работы с картой.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
08.04.2013, 09:15 |
Ответы с готовыми решениями: Создать родительский класс «Прямоугольник» и к нему подключить дочерний класс «Куб» Ошибка в строке 97: «incompatible types», а в 99 ошибка: «identifier expected but ‘^’ found», как исправить?
Из слов «Работа», «крест», «тон» составить фразу «Кто не работает, тот не ест» и определить ее длину 9 |
2664 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,723 |
|
08.04.2013, 09:23 |
2 |
Что можно сделать? Зарегистрировать класс.
0 |
0 / 0 / 0 Регистрация: 08.04.2013 Сообщений: 5 |
|
08.04.2013, 09:28 [ТС] |
3 |
а как это сделать?
0 |
2664 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,723 |
|
08.04.2013, 09:40 |
4 |
А что значит
Подгрузил класс и новый компонент Map ?
0 |
0 / 0 / 0 Регистрация: 08.04.2013 Сообщений: 5 |
|
08.04.2013, 09:46 [ТС] |
5 |
А что значит … ? В делфи по умолчанию нет компонента, при помощи которого можно работать с картой. Его пришлось скачивать. Поскольку компонент скачали, то нужно подгрузить класс и компонент через меню Component — Import ActivX Control. Вроде так.
0 |
2664 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,723 |
|
08.04.2013, 09:50 |
6 |
ActivX-объекты должны быть зарегистрированы в реестре.
1 |
0 / 0 / 0 Регистрация: 08.04.2013 Сообщений: 5 |
|
08.04.2013, 09:53 [ТС] |
7 |
ActivX-объекты должны быть зарегистрированы в реестре. А что нужно с regsvr32 делать? Это прямо в модуле писать или в командной строке?
0 |
2664 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,723 |
|
08.04.2013, 10:01 |
8 |
В ком.строке, разумеется .. Модуль-то твой причем ?
1 |
qweVasya 0 / 0 / 0 Регистрация: 08.04.2013 Сообщений: 5 |
||||
08.04.2013, 10:13 [ТС] |
9 |
|||
Спасибо, получилось
0 |
2664 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,723 |
|
08.04.2013, 10:35 |
10 |
Регистрацию объекта должен делать инсталлятор твоего приложения, а не само приложение.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
08.04.2013, 10:35 |
Помогаю со студенческими работами здесь На форме располагаются компоненты: редактор Edit; линейка ScrollBar; радионабор с опциями «Цветы», «Деревья», «Рыбы», «Звери»
Ошибка «Undeclared identifier» и «Missing operator or semicolon»
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 10 |
Running a program on a machine that doesn’t have the IDE I get this error. I understand that the problem is a missing or unregistered DLL or OCX.
Lots of postings on how to fix it, but all the answers assume that you know which DLL/OCX is missing.
Using madExcept I see that there are 76 DLL’s listed as «modules».
I’m using Delphi XE for development.
Is there a way to get a list of DLL dependences for a program with the missing ones highlighted in some way.
asked Oct 2, 2017 at 4:27
10
My problem was indeed relating to a DLL.
I had thought that the difference between working and non working systems was the presence of the IDE, but instead it was the fact that Skype had been installed on some PC and not others.
The culprit (I think) was the Skype4COM.DLL. At some stage Skype functions had been added to the app. As we had decided to remove those functions from the app for other reasons (mainly wanting to stay independent of Skype), I removed them and the app runs OK.
Just putting that DLL onto the non-working PC did not fix the problem, but that may have been related to the old XP.
Thanks to @David Heffernan, @kobik and @Remy Lebeau for helping out.
answered Oct 9, 2017 at 1:58
Jeff CookJeff Cook
671 silver badge5 bronze badges
I know it is old. But searching the internet for solution I found this thread. I just ran into the same issue. I deployed a Delphi app on a customer machine and got the same error.
The app was using TMediaPlayer
and I found out that the target machine was a Windows 10 N
, without Media features.
Running an elevated PowerShell
and the command
Get-WindowsCapability -online | Where-Object -Property name -like "*media*" | Add-WindowsCapability -Online
solved the issue after a Windows restart.
answered Apr 27, 2022 at 17:04
Mario WernerMario Werner
1,77114 silver badges24 bronze badges
← →
Aldor_
(2004-08-06 13:47)
[0]
Программа под WinXP работает нормально, а под Win2K вылетает сабж. Подозрвеваю (нет возможности проверить точнее), что ошибка происходит на строке CreateComObject(CLASS_EnumInstalledApps) as IEnumInstalledApps
(строка из модуля, ковертнутого из IDL-файла)
Хотя в справке сказано, что поддерживаются винды 98-XP. Или тогда о чем сигнализирует сабж?
← →
Digitman ©
(2004-08-06 13:50)
[1]
> о чем сигнализирует сабж?
о том что фабрика класса CLASS_EnumInstalledApps не зарегистрирована в реестре той ОС, в среде которой предпринимается попытка создать экз-р этого класса
← →
Aldor_
(2004-08-06 14:17)
[2]
Digitman © (06.08.04 13:50) [1]
Значть дело именно в ОС и ничего здесь поделать нельзя
← →
Digitman ©
(2004-08-06 14:20)
[3]
ерунда полная
убедись что ФК действительно зарегистрирована в реестре
← →
Aldor_
(2004-08-06 14:44)
[4]
Digitman © (06.08.04 14:20) [3]
Извиняюсь за явно дилетантский вопрос, но как в этом убедиться? И если окажется, что не зарегистрен, то как зарегистрить?
← →
Digitman ©
(2004-08-06 14:47)
[5]
выполни ком.строку
regsvr32 myfabric.dll
← →
Гаврила ©
(2004-08-06 15:07)
[6]
Это что за класс то ? В MSDN про него ничего нет.
Свой собственный чтоли ?
← →
Erik1
(2004-08-06 15:13)
[7]
Возможно чтото самопальное.
← →
Aldor_
(2004-08-06 15:19)
[8]
> Это что за класс то ? В MSDN про него ничего нет.
Вообще-то странно, в msdn хорошо описана работа со списком установленных программ, и дается ссылка на idl-файл, где все соответствующие интерфейсы определены.
Импортнул я этот idl-файл (shappmgrp.idl), а там интерфейсы с другими названиями (вот IEnumInstalledApps, например) и другими методами (хотя все очень похоже), пришлось по названиям методов догадываться, что вызывать.
Вот такая вот фигня в синагоге творится. Была идея, что я наткнулся на старую информациб в msdn, но о новых интерфейс, как Вы тоже смогли убедиться тоже ничего в msdn неизвестно.
Digitman © (06.08.04 14:47) [5]
> выполни ком.строку regsvr32 myfabric.dll
LoadLibrary(«myfabric.dll») failed — The specified module counld not be found
← →
Digitman ©
(2004-08-06 15:24)
[9]
> Aldor_ (06.08.04 15:19) [8]
)) … да это к примеру я ! … посчитал что библиотека с ФК — твоей разработки ..
ок
открой XXX_TLB.PAS, найди строчку, определяющую зн-е ид-ра CLASS_EnumInstalledApps, скопируй в буфер его значение (т.е. CLSID) и поищи его в реестре
← →
Aldor_
(2004-08-06 15:34)
[10]
> )) … да это к примеру я ! … посчитал что библиотека
> с ФК — твоей разработки ..
:))))))) а я еще удивлялся, какое название библиотеки странное
> открой XXX_TLB.PAS, найди строчку, определяющую зн-е ид-ра
> CLASS_EnumInstalledApps, скопируй в буфер его значение (т.е.
> CLSID) и поищи его в реестре
На машине с WinXP, естественно, нашел, а вот на той, где Win2K — нет. Хотя, еще раз повторяю, в msdn написано, что поддержка этих интерфейсов начинается еще с Win98
← →
Digitman ©
(2004-08-06 15:38)
[11]
вот теперь открывай этот ключ в ХР и смотри, куда смотрит параметр InProcServer
← →
VMcL ©
(2004-08-06 15:42)
[12]
>>
Digitman © (06.08.04 15:38) [11]
<offtopic>
Пошаговый саппорт :))
</offtopic>
← →
Aldor_
(2004-08-06 15:45)
[13]
> вот теперь открывай этот ключ в ХР и смотри, куда смотрит
> параметр InProcServer
В {<CLSID>}\InProcServer32 параметр (Default) имеет значение System32\appwiz.cpl
← →
Digitman ©
(2004-08-06 15:54)
[14]
> Aldor_ (06.08.04 15:45) [13]
а теперь смотри, есть ли файл этого апплета в наличии в W2k — он обязан там быть !
ищи в реестре ссылки на строчку «appwiz.cpl»
у меня — Винтукей, и этот апплет присутствует и зарегистрирован в реестре так :
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B124F8C-91F0-11D1-B8B5-006008059382}\InProcServer32
← →
Digitman ©
(2004-08-06 15:56)
[15]
> VMcL © (06.08.04 15:42) [12]
ввязался же … куда теперь деваться … доведем уж слепого до цели !
← →
Aldor_
(2004-08-06 16:02)
[16]
Хм…
0B124F8F-91F0-11D1-B8B5-006008059382 - WinXP
0B124F8C-91F0-11D1-B8B5-006008059382 - Win2K
и… эээ… что теперь, проверять в ран-тайм версию системы? А может CLSID еще и от сервис пака к сервис паку меняется?
← →
Aldor_
(2004-08-06 16:03)
[17]
> доведем уж слепого до цели !
Ну почему же слепого? Просто начинающего
← →
Digitman ©
(2004-08-06 16:08)
[18]
> Aldor_ (06.08.04 16:02) [16]
эээ… я никогда не вдавался в эти подробности, это уж ты сам выясняй
в дан. же случае попробуй поменять CLSID в XXX_TLB.PAS на реально зарегистрированный и попробуй создать объект и поработать с ним — вероятность совместимости интерфейсов должна быть явно не нулевая)
← →
Aldor_
(2004-08-06 16:32)
[19]
Подставил 2К-шное значение CLSID, запустил (под Win2K), ответила опять эксепшеном: «Class factory cannot suply requeated class». Так верить msdn или нет? (я об информации о поддержке разных ОС)
← →
Digitman ©
(2004-08-06 16:51)
[20]
значится, так …
выкинь нафих то что ты получл с пом. импорта IDL
1. открой любой Делфи-проект
2. выполни меню Projects -> Import Type Library..
3. по кнопке Add выбери файл appwiz.cpl в сист.каталоге ОС
4. нажми кн. Create Unit
в рез-те у тебя будет создан файл SHAPPMGRLib_TLB.pas
повтори это для другой ОС, получи такой же файл для нее, сравни эти файлы
если они совпадают в части CLSID и декларируемых в них интерфейсов, то лажа, наверно — в использованном тобой IDL
← →
Aldor_
(2004-08-06 16:58)
[21]
Спасибо большое за консультацию, попробую, о результатах в этой ветке сообщу.
← →
Бином Ньютоныч
(2004-08-06 17:04)
[22]
Так и есть: в appwiz.cpl в TLB стоит
0B124F8F-91F0-11D1-B8B5-006008059382
а в реестре
0B124F8C-91F0-11D1-B8B5-006008059382
>Aldor_
Явно ошибка регистрации, исправь в реестре. Заодно и остальные GUID из этой библии проверь. И нам расскажи:)
← →
Aldor_
(2004-08-07 06:54)
[23]
Вот резулты импорта appwiz.cpl:
WinXP:
IID_IEnumInstalledApps: TGUID = "{1BC752E1-9046-11D1-B8B3-006008059382}";
CLASS_EnumInstalledApps: TGUID = "{0B124F8F-91F0-11D1-B8B5-006008059382}";
IID_IEnumPublishedApps: TGUID = "{0B124F8C-91F0-11D1-B8B5-006008059382}";
Win2K:
IID_IEnumInstalledApps: TGUID = "{1BC752E1-9046-11D1-B8B3-006008059382}";
CLASS_EnumInstalledApps: TGUID = "{0B124F8F-91F0-11D1-B8B5-006008059382}";
IID_IEnumPublishedApps: TGUID = "{0B124F8C-91F0-11D1-B8B5-006008059382}";
(совпадают!)
В реестре в WinXP appwiz.cpl находится в ключе 0B124F8F
В Win2K - в ключе 0B124F8C
Я правильно понимаю, что в реестре хранится CLASS GUID?
Значит в Win2K запись в реестре на самом деле указывает на IID_IEnumPublishedApps, а причем здесь PublishedApps?
Если честно, не понимаю, как мне поступать?
← →
Бином Ньютоныч
(2004-08-07 10:36)
[24]
В разделе CLSID хранятся Class ID, а вразделе Interface — Interface ID. Говорю же, ошибка регистрации. Просто сделай RegSvr32 AppWiz.cpl. И еще. Поищи в ХР в реестре интерфейсы. Если обнаружатся, то надо и W2k из зарегистрировать.
← →
Daniel.
(2004-08-07 13:42)
[25]
Не поверите, в Win2K переименовал ключ в реестре 0B124F8C
-> 0B124F8F
и все заработало!
Причем как с …TBL.pas от appwiz.cpl Win2K, так и от appwiz.cpl WinXP.
Что это? Баг винды?
> RegSvr32 AppWiz.cpl
Нет у меня приложения RegSrv32. Что оно делает?
← →
Aldor_
(2004-08-07 13:45)
[26]
Daniel. (07.08.04 13:42) [25]
Извиняюсь, это я. Опять конфликт пользователей ена одном компе.
← →
Бином Ньютоныч
(2004-08-07 16:08)
[27]
>Не поверите, в Win2K переименовал ключ в реестре 0B124F8C -> 0B124F8F и все заработало!
Ух ты! Да ты что! А про что тебе в [22] было сказано?
> Нет у меня приложения RegSrv32.
И слава Богу. Спокойней как-то.
← →
VMcL ©
(2004-08-08 11:48)
[28]
RegSvr32
← →
Aldor.
(2004-08-08 14:48)
[29]
VMcL © (08.08.04 11:48) [28]
RegSvr32
Упс, выпрямилку срочно.
RegSvr32 AppWiz.cpl — НЕ вносит измения, описанные в [25]. Как так?
← →
Бином Ньютоныч
(2004-08-08 14:55)
[30]
>Aldor. (08.08.04 14:48) [29]
Это странно. У меня внесло. В таком случае можно вручную, всего 2 места. Но, возможно, лучше просто учитывать эту ситуацию в коде.
← →
Aldor.
(2004-08-08 15:14)
[31]
> всего 2 места
Какое второе?? (первое описано в [25])
← →
Бином Ньютоныч
(2004-08-08 15:40)
[32]
>Aldor. (08.08.04 15:14) [31]
Поиском по реестру найди. Я не запомнил, а опять запускать лень:)
← →
Бином Ньютоныч
(2004-08-08 15:49)
[33]
Ищи имя ключа, а не раздела. Там отображаемое опиание класса.
При запуске Delphi-приложения может возникнуть ошибка «класс не зарегистрирован», которая указывает на отсутствие какого-то компонента необходимого для работы приложения. Это может произойти в случае если компонент был удален, переименован или перемещен в другую директорию. Чтобы решить эту проблему, необходимо проверить наличие всех файлов компонента, их версии и пути к ним. Также стоит проверить наличие ключей реестра, связанных с этим компонентом.Пример кода на Delphi:procedure LoadMyComponent;var MyComponent: TMyComponent; begin try MyComponent := TMyComponent.Create(nil); MyComponent.DoSomething; except on E: Exception do ShowMessage('Ошибка: ' + E.Message); end;end;
Если в процессе выполнения кода появится ошибка «класс не зарегистрирован», это может означать, что компонент не найден в системе. В этом случае стоит проверить версию компонента и его местонахождение. Также стоит проверить, не был ли компонент удален из системы или перемещен в другое место. Если все файлы компонента на месте, можно попробовать зарегистрировать его через командную строку с помощью утилиты Regsvr32.
Не удаётся найти explorer, не загружается рабочий стол, восстанавливаем explorer
Не грузится рабочий стол в Windows 10, 8 1, 8, 7. Ошибки Explorer.ехе. Лечение.
DELPHI Исправляем ошибки прошлого урока под номером 7 =)
Бесплатная лицензионная Delphi Community Edition. Где скачать, как зарегистрировать. Установка
Aula 081 Delphi I — corrigido problema erro
Embarcadero Delphi Обзор преимуществ / Установка / Удаление / Community Edition IDE / 2022 Бесплатно
Delphi мертв?
delphi-hlp.ru — Восстанавливаем проводник в Windows
|
|
|
Пожалуйста, выделяйте текст программы тегом [сode=pas] … [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как «свернуть» программу в трей.
3. Как «скрыться» от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
… (продолжение следует) …
Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка — 60 дней. Последующие попытки бан.
Мат в разделе — бан на три месяца…
eolesyserror класс не зарегистрирован.
, используется компонента TWMP (медиа плеер). Win 2008. Delphi7
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Full Member Рейтинг (т): 11 |
Привет всем! Добавлено Добавлено |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Delphi: Общие вопросы
- Следующая тема
[ Script execution time: 0,0378 ] [ 16 queries used ] [ Generated: 21.09.23, 09:55 GMT ]