|
|
|
Junior Member
      
участник
Last Login: 19.12.2006 17:26
Сообщ.: 10,
Visits: 71
|
|
| Доброе время суток! Никто не сталкивался с проблемой, когда (обычно на WinXP) информация о COM объекте (т.е. результаты regsvr32 object.dll) самопроизвольно исчезают из реестра через какое-то время (через одну/неск. недель, например)? На моей машине все в порядке, но у некоторых пользователей (к машинам которых доступа нет) такая проблема есть. Может, у них стоит какой-то софт, который периодически чистит реестр и "с водой выплескивает и ребенка"? И почему это может происходить, может, нужно как-то по-другому регистрировать COM объект чтобы такие утилиты его не обижали? Проверить эти догадки я, увы, не могу, т.к. связаться с пользователями тоже нельзя (я разрабатываю саму COM библиотеку, а приложение на основе этой библиотеки разрабатывает совсем другая фирма, и уже клиенты этой фирмы являются пользователями; так что в лучшем случае будет испорченный телефон).
|
|
|
|
|
Supreme Being
      
участник
Last Login: 20.01.2008 13:51
Сообщ.: 216,
Visits: 2 222
|
|
| Возможно, что просто происходит восстановление контрольной точки ОС (которая создавалась до регистрации).
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 13.12.2007 18:51
Сообщ.: 3 047,
Visits: 33 391
|
|
| Насколько помню, если COM-сервер положить в каталог COM-клиента, то можно обойтись и без регистрации: если COM-сервер поддерживает OleSelfRegister, то регистрация произойдёт автоматически. Иными словами: попробуй свою ActiveX DLL-ку положить в тот же каталог, в котором лежит EXE-шник (или другая DLL-ка), имеющий ссылку на эту DLL-ку. Просто положи и не регистрируй. И попробуй запуститься. Если честно - никогда не пробовал. Просто где-то мельком слышал. Может и враки... скорее всего - именно враки :)) PS: если COM-клиента переписать под позднее связывание - то твоя проблема отпадает автоматом: пробуешь сделать CreateObject(<ProgID>), и при ошибке (зная, где именно лежит твой COM-сервер) вызываешь LoadLibrary(<ComServerPath>) и затем дёргаешь за функцию DllRegisterServer (которая - как и DllUnRegisterServer - всегда экспортируется ActiveX-компонентами, созданными под VB6); как надо дёргать - см. исходники "VB Setup Wizard". Кстати, последнее можно сделать проще - при помощи подхода, описанного в статье MSDN KB173407 (даже не придётся вызывать LoadLibrary и т.д.).
While (!Life.EOF) { You.Money ++; You.Girls.Add(new Girl(90,60,90)); BeHappy(); }
|
|
|
|