![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Одинаковые 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]
> Я так понимаю что какая то из библиотек не будет работать
будет ... куды она денется, если работоспособная в принципе .. но до нее просто дело не дойдет
> что с этим сделать ?
всеми средствами предотвращать факты дублирования Гвайдов