Перерегистрация компонента

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Перерегистрация компонента

Сообщение VBTerminator » 24.01.2009 (Сб) 19:57

1. Допустим, у меня есть библиотека или компонент OCX UserLib на диске D, которую я регистрирую в системе с помощью regsrv. Если у меня уже зарегестрирована одноимённая библиотека, находящаяся, допустим, на диске C, что будет с пропиской старой библиотеки/компонента?
2. Как узнать, зарегистрирована ли уже библиотека/компонент с определённым именем в системе?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Перерегистрация компонента

Сообщение Хакер » 24.01.2009 (Сб) 20:07

Твоя ошибка в том, что ты наивно полагаешь, что COM идентифицирует компоненты по имени. Это не так. В силу этого понятие "одноимённая библиотека" — ерунда.

Для идентификации используется либо GUID (CLSID, IID, LIBID), либо ProgId.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Перерегистрация компонента

Сообщение VBTerminator » 24.01.2009 (Сб) 20:11

Хакер писал(а):...либо GUID (CLSID, IID, LIBID), либо ProgId.

Что-что?

VBTerminator писал(а):Если у меня уже зарегестрирована одноимённая библиотека ... что будет с пропиской старой библиотеки?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Перерегистрация компонента

Сообщение Хакер » 24.01.2009 (Сб) 20:15

VBTerminator писал(а):Что-что?

VBTerminator писал(а):Если у меня уже зарегестрирована одноимённая библиотека ... что будет с пропиской старой библиотеки?


Тогда и ты ещё раз почитай:
Твоя ошибка в том, что ты наивно полагаешь, что COM идентифицирует компоненты по имени. Это не так. В силу этого понятие "одноимённая библиотека" — ерунда.

Для идентификации используется либо GUID (CLSID, IID, LIBID), либо ProgId.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Перерегистрация компонента

Сообщение tyomitch » 24.01.2009 (Сб) 20:19

1. Новая регистрация перезатирает старую. (Хакеру: ProgID и есть имя.)
2. Например, проверь существование HKEY_CLASSES_ROOT\ProgID
Изображение

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Перерегистрация компонента

Сообщение VBTerminator » 25.01.2009 (Вс) 11:13

tyomitch писал(а):1. Новая регистрация перезатирает старую.

Спасибо.


2. Извините, решение найдено. Достаточно заменить библиотеку в системе на новую и перерегистрировать.

Хакер писал(а):Твоя ошибка в том, что ты наивно полагаешь, что COM идентифицирует компоненты по имени. Это не так. В силу этого понятие "одноимённая библиотека" — ерунда.

А как тогда называется следующее? (В VB: Проекты -> Информация (в списке имена напротив галочек)). Как тогда это называется?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Перерегистрация компонента

Сообщение Хакер » 25.01.2009 (Вс) 11:22

В VB, в меню "Проект" нет и не было пункта "Информация".
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Перерегистрация компонента

Сообщение tyomitch » 25.01.2009 (Вс) 11:46

VBTerminator писал(а):2. Извините, решение найдено. Достаточно заменить библиотеку в системе на новую и перерегистрировать.

Как это помогает тебе узнать, была ли зарегистрирована такая библиотека? :shock:
Изображение

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Перерегистрация компонента

Сообщение VBTerminator » 25.01.2009 (Вс) 12:24

tyomitch писал(а):Как это помогает тебе узнать, была ли зарегистрирована такая библиотека? :shock:

А никак. Для системы без разницы, была ли в системе библиотека до регистрации моей, главное, что программы использующие данную библиотеку точно смогут запуститься (ИМХО)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Перерегистрация компонента

Сообщение tyomitch » 25.01.2009 (Вс) 15:37

А вот программы, которым нужна именно старая версия библиотеки, -- они могут уже и не запуститься ;-)
Изображение

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Перерегистрация компонента

Сообщение VBTerminator » 25.01.2009 (Вс) 16:04

Хакер писал(а):В VB, в меню "Проект" нет и не было пункта "Информация".


Прилагаю скриншот, где это

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Перерегистрация компонента

Сообщение Хакер » 25.01.2009 (Вс) 16:16

Долго прилагать-то будешь?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Перерегистрация компонента

Сообщение VBTerminator » 25.01.2009 (Вс) 16:59

Приложил
Вложения
Безымянный.gif
(75.18 Кб) Скачиваний: 39

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Перерегистрация компонента

Сообщение iGrok » 25.01.2009 (Вс) 17:20

Поздравляю! У тебя самый галимый русский перевод, который я только встречал.

Это не "Информация", а "References".
"References" - это "Ссылки", "Источники", "Материалы", но никак не "Информация".
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Перерегистрация компонента

Сообщение Хакер » 25.01.2009 (Вс) 19:16

Видно переводил такой же одарённый, у которого References — Информация, а ProgId — имя библиотеки.

Тем не менее:
А как тогда называется следующее? (В VB: Проекты -> Информация (в списке имена напротив галочек)). Как тогда это называется?

То, что отображается справа от галочки называется helpstring библиотеки, и а не имя библиотеки. Если называть helpstring именем библиотеки (как это делаешь ты), то в системе может быть хоть 200 разных одноимённых библиотек.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 54

    TopList