Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 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-сайт: freeloader.folder-pro.net
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 20.04.05 15:26
Боюсь что тут как раз совместимость не была нарушена... Т.к. ему необходимо заюзать два ocx'а с одним GUID'ом...

Вывод:
1. Если есть исходники одной из программ и ocx'a - переделать...

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

Ответить

Номер ответа: 5
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #5
Добавлено: 20.04.05 17:03

Вывод один, ocx suxxxx

да, да, и виндовс suxxxx тоже....
ты бы книжки почитал перед тем, как постить.

Конечно, одна из мрограмм не будет работать потому, что GUID другой. В С++ достаточно просто в *.tlb файле изменить версию, а GUID оставить прежним - все будет работать. ВБ это ооочень слабое средство для разработки ОСХ компонентов.

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

хе, по моему это вообще не решает вопрос. Думаю, программа не будет иметь возможность знать, какой именно версии ОСХ используется.

И вообще, что это за тупая тема: работать с новой версией и старой одновременно. Это ведь очень плохо, ты подумай, если в новой будет изменены евенты (например, количество параматров) тогда что? Все умно сделано - нельзя юзать две версии как одну и ту же, просто нельзя.

Ответить

Номер ответа: 6
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #6
Добавлено: 21.04.05 09:47

2DaSharm
поверь я прочитал не одну и не две книжки, а гораздо больше, большинство книжек о .NET в том числе там как раз таки и разъясняется проблема COM, так что не надо мне тута :))

ЗЫ, какие то тут все толи нервные стали, толи злые отродясь... бедному юзеру уже мнение свое сказать нельзя... обыдно...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам