Can anyone throw any light on an apparent partial incompatibility between TLibImp in Delphi 7and Win7 64-bit? Or suggest a less long-winded work-around than the one below?
I realise D7 is a bit long in the tooth, btw, but otherwise its IDE seems to behave faultlessly in Win7, which I suppose is a testament to MS’s efforts on backwards compatibility.
Looking into another SO question earlier, I tried to use it to import ActiveDS.Tlb from WindowsSysWOW64 using Project | Import Type library, but got an «Error accessing the OLE registry» error. I got the same error trying the copy in System32. Trying to import ActiveDS.Dll from both places I got «Error loading type library» instead.
I tried all the things which people say in the MS communities to try (Run Delphi as Administrator, Disable UAC, etc) and which David Heffernan told me (correctly) that I needn’t do when I ran into the «Error accessing the OLE registry» error when I mistakenly tried to import a type library into XE4 the wrong way.
Otoh, on Win7 64-bit, D7 imports the type library for Adobe Acrobat and many others without complaint.
I managed to work around the problem by importing the ActiveDS.Tlb using XE6 and editing out the unit namespace prefixes, fwiw.
Also, I seem to recall but can’t currently find a fix for one of the supplied units (ComObj maybe) for D5/D7
to avoid getting this error when a Delphi application started up which was caused by something like a problem in the way the COM object factory was initialized. But unfortunately, unlike some of the other Delphi utilities like TRegSvr, the source for TLibImp isn’t supplied
Вопрос:
Может ли кто-нибудь пролить свет на кажущуюся частичную несовместимость между TLibImp в Delphi 7 и Win7 64-бит? Или предложите менее продолжительный рабочий ход, чем тот, который приведен ниже?
Я понимаю, что D7 немного длинный в зубе, кстати, но в противном случае его IDE, кажется, ведет себя безупречно в Win7, что, я полагаю, является свидетельством усилий MS по обратной совместимости.
Изучая другой вопрос SO ранее, я попытался использовать его для импорта ActiveDS.Tlb из WindowsSysWOW64 с помощью Project | Импортировать библиотеку типов, но получил ошибку “Ошибка доступа к реестру OLE”. Я получил ту же ошибку при попытке копирования в System32. Пытаясь импортировать ActiveDS.Dll из обоих мест, я получил вместо этого “Ошибка загрузки библиотеки типов”.
Я пробовал все, что люди говорят в сообществах MS, чтобы попробовать (запустить Delphi как администратор, отключить UAC и т.д.), И Дэвид Хеффернан сказал мне (правильно), что мне не нужно делать, когда я столкнулся с “Ошибка доступа к OLE реестра “, когда я ошибочно попытался импортировать библиотеку типов в XE4 неправильно.
Otoh, на Win7 64-бит, D7 импортирует библиотеку типов для Adobe Acrobat и многих других без жалобы.
Мне удалось обойти проблему, импортировав ActiveDS.Tlb с помощью XE6 и отредактировав префикс пространства имен единиц, fwiw.
Кроме того, я, кажется, помню, но в настоящее время не могу найти исправление для одного из поставляемых модулей (возможно, ComObj) для D5/D7, чтобы избежать получения этой ошибки при запуске приложения Delphi, которое было вызвано чем-то вроде проблемы на пути фабрика COM-объектов была инициализирована. Но, к сожалению, в отличие от некоторых других утилит Delphi, таких как TRegSvr, источник для TLibImp не предоставляется
Лучший ответ:
Здесь нечего сказать. Импортирование библиотеки типов – это повторяющаяся проблемная область. Иногда старые версии Delphi будут импортировать библиотеки, когда новые версии не будут. И иногда наоборот, как вы столкнулись. Импортер библиотеки типов имеет ошибки, которые длинны и коротки.
Ваш обходной путь является наиболее эффективным способом решения таких проблем. Нет смысла подавать отчет о контроле качества, поскольку проблема исправлена в последней версии.
3 / 3 / 1 Регистрация: 09.09.2013 Сообщений: 116 |
|
1 |
|
12.10.2016, 16:41. Показов 4442. Ответов 9
Ребят, как установить WMI? Очень много облазил, но вот установки не нашёл. Делал import library Windows/System32/wbem/файл.tlb. Пишет ошибку: Ошибка при обращении к реестру OLE. Как же всё таки установить магическую штуку WMI?
0 |
5089 / 4103 / 1026 Регистрация: 29.08.2013 Сообщений: 26,008 Записей в блоге: 3 |
|
12.10.2016, 17:01 |
2 |
0 |
3 / 3 / 1 Регистрация: 09.09.2013 Сообщений: 116 |
|
12.10.2016, 17:09 [ТС] |
3 |
Как я понимаю, можно тупо к нему присоединиться ?
0 |
5089 / 4103 / 1026 Регистрация: 29.08.2013 Сообщений: 26,008 Записей в блоге: 3 |
|
12.10.2016, 17:17 |
4 |
Как я понимаю, можно тупо к нему присоединиться ? ДА!!
0 |
alex2131 3 / 3 / 1 Регистрация: 09.09.2013 Сообщений: 116 |
||||
13.10.2016, 22:10 [ТС] |
5 |
|||
Разобрался с подключением и классами, не могу найти реализацию через Delphi. Код есть, вот как-то у них не понятно написан, не могу разобраться, может кто помочь? Добавлено через 1 час 31 минуту
Пишет общий сбой, в чем проблема?
0 |
97 / 97 / 25 Регистрация: 25.04.2016 Сообщений: 525 |
|
14.10.2016, 00:57 |
6 |
А так импортировать пробовали? Итак, начнём с того, что нам необходимо сделать перед тем, как непосредственно начать использовать мощь технологии WMI в своих программах: установить систему Windows 2000 или NT 4.0 SP4 и выше; После того, как вы установили WMI SDK, импортируйте следующие библиотеки типов: Active DS Type Library (Version 1.0) Миниатюры
0 |
5089 / 4103 / 1026 Регистрация: 29.08.2013 Сообщений: 26,008 Записей в блоге: 3 |
|
14.10.2016, 08:41 |
7 |
Основной порядок начала работы обычно такой: ни фига подобного
Пишет общий сбой, в чем проблема? возьмите работающий пример
0 |
97 / 97 / 25 Регистрация: 25.04.2016 Сообщений: 525 |
|
14.10.2016, 12:38 |
8 |
возьмите работающий пример Приведите работающий пример, который не потребует ничего добавлять в Uses, и не потребует никаких дополнительный MagWmi и пр. компонент. Я спрашиваю для себя в том числе — т.к. самому стало интересно)
0 |
5089 / 4103 / 1026 Регистрация: 29.08.2013 Сообщений: 26,008 Записей в блоге: 3 |
|
14.10.2016, 12:56 |
9 |
который не потребует ничего добавлять в Uses и который не требует писать код?
Приведите работающий пример воспользуйся поиском по форуму ЗЫ смотри сюда
0 |
MyEternity 97 / 97 / 25 Регистрация: 25.04.2016 Сообщений: 525 |
||||
14.10.2016, 13:48 |
10 |
|||
Сообщение было отмечено alex2131 как решение Решение
и зачем WMI устанавливать?
>>Как я понимаю, можно тупо к нему присоединиться ? Мой вопрос был связан с этими постами. Ответа на вопрос я так и не получил. Добавлено через 17 минут
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
14.10.2016, 13:48 |
10 |
|
|
|
Пожалуйста, выделяйте текст программы тегом [сode=pas] … [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Соблюдайте общие правила форума
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как «свернуть» программу в трей.
3. Как «скрыться» от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры — внедрение в удаленное адресное прстранство)
… (продолжение следует) …
Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка — 60 дней. Последующие попытки — бан.
Мат в разделе — бан на три месяца…
Полезные ссылки:
MSDN Library FAQ раздела Поиск по разделу Как правильно задавать вопросы
Выразить свое отношение к модераторам раздела можно здесь: Rouse_, Krid
Не регистрируется COM server
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Delphi 2010. Win 7 x64. Создаю новый проект. Добавляю в него COM object. Все по дефолту, указываю только имя класса. и сразу же за ним еще одно с мессагой: И потом появляется еще одно окно: Exception EOleSysError in module Project1.exe at 000A4C61. Ошибка при обращении к реестру OLE. Комп перезагружал. Avast отключал. Сервер в exeшнике. Делаю: В xp sp2 все ок. В семерке тоже самое. Ошибка при обращении к реестру OLE. Что за проблема? Кто-нибудь сталкивался? |
Gonarh |
|
Нужны права админа. Запускай регистрацию от админской учетки Сообщение отредактировано: Mr. Gonarh — 28.05.11, 10:09 |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Delphi: Система, Windows API
- Следующая тема
[ Script execution time: 0,0276 ] [ 16 queries used ] [ Generated: 3.06.23, 23:55 GMT ]
Please Sign up or sign in
to vote.
0.00/5 (No votes)
See more:
Delphi
I have problems when i try to insert a ocx control in delphi XE. this present me the following error —> Error accessing the OLE registry
Posted 20-Apr-14 17:59pm
nelson_fonseca
Add a Solution
Comments
[no name]
21-Apr-14 10:35am
Well based on the enormous amount of information that you have given us, I would say that the OCX is not registered on the system, or you do not have permission to access the registry.
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)