Здравствуйте, Melamed, Вы писали:
bnk>>Но вообще это нехорошо (самостоятельно регистрировать DLL).
M>А как же программы с частично открытой архитектурой. Когда программе можно писать расширения. Например, модули расширения Microsoft Office представляют собой COM-объект и я не помню, что я его регистрировал с помощью RegSvr32, а просто регистрировал в программе
Не понял. Программы с частично открытой архитектурой вообще не обязаны использовать COM, насколько я понимаю.
Я же не говорю что нельзя зарегистрировать программно (тот же regsvr32 это как-то делает), скорее о том, что лучше регистрировать с помощью инсталлятора. И де-регистрировать аналогично.
Еще, не обязательно же регистрировать дергая DllRegisterServer, можно напрямую записать в реестр все что требуется.
bnk>>По-нормальному это должна быть работа инсталлятора.
M>Предлагаешь, написать все 50-60 COM-объектов, сразу, когда пользователь может уже работать с 5 СOM-объектами.
Тоже не понял. Какая разница сколько там объектов.
Когда устанавливается программа, ее установщик регистрирует все что нужно. Сколько нужно столько и регистрирует, хоть 5 хоть 50.
bnk>>Да, а что такое "CODllRegisterServer"? Гугл дает 0 результатов поиска
M>Извините описался. Конечно DllRegisterServer
Если нужно зарегистрировать только для текущего пользователя (HKCU), т.е. вызвать "regsvr32 /i: user name.dll", и name.dll это поддерживает, можно попробовать DllInstall(TRUE, "user") вместо DllRegisterServer
M>Запреты в программировании — дело условное. Если ты понимаешь, к чему он может привести, то можешь его нарушать, но на твоей ответственности нормальная работа системы.
M>Если ты не понимаешь, к чему приведет нарушение данного запрета, то он не до конца понимает данный механизм операционной системы
Ну да,
классика кун-фу