Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Одинаковые GUID ???? [D7, Win2k, WinXP]


312Kbps ©   (2005-04-15 13:19:00) 

Уважаемые мастера, подскажите как буду вести себя *.ocx с одинаковыми GUID ???
Я так понимаю что какая то из библиотек не будет работать, что с этим сделать ?


Anatoly Podgoretsky   (2005-04-16 13:47:00) [1]

Орех


Digitman   (2005-04-16 13:31:00) [2]


> 312Kbps   (15.04.05 15:41) [11]


>  я не просинтаксис говорю !!!


и я не про на деревню дедушке говорю

вот в реестре регистрация твоего АгентКонтрола :

HKEY_CLASSES_ROOT\CLSID\ {D45FD31B-5C6E-11D1-9EC1-00C04FD7081F }

скобки фигурные видишь ? считаешь, что я их выдумал ?


Набережных С.   (2005-04-15 17:28:00) [3]


> 312Kbps   (15.04.05 15:04) [9]

Когда твой зарегистрировался, он затер то, что было. Т.е. изменил те переменные, имена которых совпали. Теперь у тебя зарегистрирован только твой класс с остатками информации от старого класса. Твой класс теперь может при создании загрузить старый через Loadlibrary and DllGetClassObject + IClassFactory.CreateInstance.


312Kbps   (2005-04-15 15:41:00) [4]

Digitman ты че прикалываешся какие скобки , я не просинтаксис говорю !!!


Digitman   (2005-04-15 15:13:00) [5]


> 312Kbps   (15.04.05 15:04) [9]


а где скобки фигурные ?


312Kbps   (2005-04-15 15:04:00) [6]

clsid:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F
это Agent.Control.2

и точно с таким же я сделал ocx, это точно !!! ни каких проблем не возникло !!! зарегилась без проблем !!!

можете сами у себя в реестре проверить и создать библиотеку с таким же ключем !


Digitman   (2005-04-15 14:51:00) [7]


> ClassID одинаковые


вообще говоря, СУБД реестра НЕ допускает дублирования имен ключей, имеющих одного и того же родителя.

так что либо ты горбатого лепишь здесь, либо под ClassID понимаешь все что угодно, но только не регистацию ид-ра фабрики класса в HKEY_CLASSES_ROOT\CLSID


312Kbps   (2005-04-15 14:41:00) [8]

ClassID одинаковые, и сделано это специально, подменяется зарегестрированный объект Виндов для загрузки в эксплоере ocx !!!
И самое интересное что *.ocx подгружается, но как то странно выполняется (((, вернее не выполняется вывод формы, а остальное работает !!!


Digitman   (2005-04-15 13:56:00) [9]


> получается что какой первый по реестру попадет тот и выполнится,
> так ?


при поиске - да.
имя ключа индексируется (по возрастанию) встроенным СУБД-движком, осуществляющим управление реестром


DVM   (2005-04-15 13:54:00) [10]


> Еще как возможны.

Вероятность генерации одинаковых GUID на разных компьютерах очень и очень мала.
Я специально в течении длительного времени ради интереса как-то в цикле их генерировал и даже на одной машине они не повторились. Сгенерировал миллиард.

Другое дело, если намеренно используются одинаковые - тогда да.


Romkin   (2005-04-15 13:48:00) [11]

DVM ©   (15.04.05 13:46) [3] Еще как возможны. И употребляются.
312Kbps   (15.04.05 13:19) Что значит одинаковые GUID? Вопрос неправильный. Одинаковые ClassID или IID? Первое недопустимо, второе - вполне естественно.


DVM   (2005-04-15 13:46:00) [12]

Одинаковые GUID статистически невозможны.


312Kbps   (2005-04-15 13:28:00) [13]

то есть получается что какой первый по реестру попадет тот и выполнится, так ?


Digitman   (2005-04-15 13:22:00) [14]


> Я так понимаю что какая то из библиотек не будет работать


будет ... куды она денется, если работоспособная в принципе .. но до нее просто дело не дойдет


> что с этим сделать ?


всеми средствами предотвращать факты дублирования Гвайдов


Наверх

Титульная страница Поиск, карта сайта Написать письмо