Страница: 1 |
Страница: 1 |
Вопрос: Регистрация компонентов *.ocx
Добавлено: 20.04.05 12:31
Автор вопроса: ooovtu
Регистрация компонентов *.ocx
Проблема в следующем. Две разные программы используют один и тот же компонент (*.dll, *.ocx), написанный на VB, но разных версий. Стандартно одна из программ загибается. Можно ли эту проблему решить размещением компонентов где-то в каталоге программы. По-моему я что-то про это слышал
Владимир
oooVTU@yandex.ru
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 20.04.05 12:51
1. Нефиг было нарушать двоичную совместимость при разработке второй версии компонента.
2. Да, side-by-side execution существует, но только на виндах начиная с 2000, и требует эта техника полного контроля над содержимым tlb, чего VB не обеспечивает. Поэтому см. п. 1.
Номер ответа: 2
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #2
Добавлено: 20.04.05 13:09
Вывод один, ocx suxxxx
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 20.04.05 13:28
Нет, вывод в том, что не нужно было нарушать спецификации COM, которые ясно говорят, что однажды опубликованный интерфейс не должен изменяться.
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 20.04.05 15:26
Боюсь что тут как раз совместимость не была нарушена... Т.к. ему необходимо заюзать два ocx'а с одним GUID'ом...
Вывод:
1. Если есть исходники одной из программ и ocx'a - переделать...
2. Создать загрузчик, что регистрировал бы одну из версий перед запуском программы...
Номер ответа: 5
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #5
Добавлено: 20.04.05 17:03
да, да, и виндовс suxxxx тоже....
ты бы книжки почитал перед тем, как постить.
Конечно, одна из мрограмм не будет работать потому, что GUID другой. В С++ достаточно просто в *.tlb файле изменить версию, а GUID оставить прежним - все будет работать. ВБ это ооочень слабое средство для разработки ОСХ компонентов.
хе, по моему это вообще не решает вопрос. Думаю, программа не будет иметь возможность знать, какой именно версии ОСХ используется.
И вообще, что это за тупая тема: работать с новой версией и старой одновременно. Это ведь очень плохо, ты подумай, если в новой будет изменены евенты (например, количество параматров) тогда что? Все умно сделано - нельзя юзать две версии как одну и ту же, просто нельзя.
Номер ответа: 6
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #6
Добавлено: 21.04.05 09:47
2DaSharm
поверь я прочитал не одну и не две книжки, а гораздо больше, большинство книжек о .NET в том числе там как раз таки и разъясняется проблема COM, так что не надо мне тута )
ЗЫ, какие то тут все толи нервные стали, толи злые отродясь... бедному юзеру уже мнение свое сказать нельзя... обыдно...