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
Вопрос по версии
-
sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Вопрос по версии
Сообщение
sannx » 25 дек 2015, 13:33
Там версия Delphi XE. Примеров под Д7 и VC нет. Для Делфи любой версии примеры подправить не сложно будет.
-
Dmitriy
- Сообщения: 1
- Зарегистрирован: 25 дек 2015, 15:32
Re: Вопрос по версии
Сообщение
Dmitriy » 25 дек 2015, 16:02
sannx писал(а):Там версия Delphi XE. Примеров под Д7 и VC нет. Для Делфи любой версии примеры подправить не сложно будет.
Ага, пример то я подправил. Проект билдится, но при запуске вылетает с EOleSysError ‘Ошибка при обращении к реестру OLE’.
Может кому пригодится:
Кажется, что проблема не в версии Delphi. Проект из Example подправленный и отбилденный на Delphi 7 под Windows 7 64bit — вылетает (на этой самой Win7) с ошибкой указанной выше.
Но, когда я взял exe-файл, полученный через Delphi7/Win7_64bit и запустил его на WinXP 32 bit, то этот exe-файл запустился без ошибок.
При этом, оригинальный exe-файл «ExamplesDelphiChannelClientChannelClient.exe» из скачанного http://www.sprecord.ru/files/downloads/sdk22.zip работает и под WinXP 32bit и под Win7 64bit
Вопрос:
Может ли кто-нибудь пролить свет на кажущуюся частичную несовместимость между 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 будут импортировать библиотеки, когда новые версии не будут. И иногда наоборот, как вы столкнулись. Импортер библиотеки типов имеет ошибки, которые длинны и коротки.
Ваш обходной путь является наиболее эффективным способом решения таких проблем. Нет смысла подавать отчет о контроле качества, поскольку проблема исправлена в последней версии.
|
|
|
Пожалуйста, выделяйте текст программы тегом [с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,0226 ] [ 16 queries used ] [ Generated: 21.06.23, 19:18 GMT ]
3 / 3 / 1 Регистрация: 09.09.2013 Сообщений: 116 |
|
1 |
|
12.10.2016, 16:41. Показов 4462. Ответов 9
Ребят, как установить WMI? Очень много облазил, но вот установки не нашёл. Делал import library Windows/System32/wbem/файл.tlb. Пишет ошибку: Ошибка при обращении к реестру OLE. Как же всё таки установить магическую штуку WMI?
0 |
5157 / 4110 / 1031 Регистрация: 29.08.2013 Сообщений: 26,084 Записей в блоге: 3 |
|
12.10.2016, 17:01 |
2 |
0 |
3 / 3 / 1 Регистрация: 09.09.2013 Сообщений: 116 |
|
12.10.2016, 17:09 [ТС] |
3 |
Как я понимаю, можно тупо к нему присоединиться ?
0 |
5157 / 4110 / 1031 Регистрация: 29.08.2013 Сообщений: 26,084 Записей в блоге: 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 |
5157 / 4110 / 1031 Регистрация: 29.08.2013 Сообщений: 26,084 Записей в блоге: 3 |
|
14.10.2016, 08:41 |
7 |
Основной порядок начала работы обычно такой: ни фига подобного
Пишет общий сбой, в чем проблема? возьмите работающий пример
0 |
97 / 97 / 25 Регистрация: 25.04.2016 Сообщений: 525 |
|
14.10.2016, 12:38 |
8 |
возьмите работающий пример Приведите работающий пример, который не потребует ничего добавлять в Uses, и не потребует никаких дополнительный MagWmi и пр. компонент. Я спрашиваю для себя в том числе — т.к. самому стало интересно)
0 |
5157 / 4110 / 1031 Регистрация: 29.08.2013 Сообщений: 26,084 Записей в блоге: 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 |