2010-09-07 4 views
0

Имеет ли эта команда только мягкие ссылки на x.dll, скажем, удаляю ли я x.dll вещи не будут работать?О regsvr32 x.dll

ответ

1

Программа regsvr32 вызывает DllRegisterServer entry point в DLL.

+0

Сохраняет ли 'regsvr32' другую копию' dll'? – wamp

+0

@wamp: Нет, это не так. Сама DLL может, но, вероятно, не будет. – SLaks

+0

Так должно оставить 'dll' там, где это было, чтобы заставить его работать как COM-компонент, не так ли? – wamp

2

Regsvr32 вызывает известную функцию, экспортируемую DLL, называемую DllRegisterServer. Цель этого - разрешить DLL регистрировать в реестре любые COM-компоненты, реализованные DLL.

Точное влияние удаления dll зависит от того, существуют ли клиентские приложения, которые пытаются создать и использовать экземпляр COM-объектов, реализованных в dll. Если ни одно приложение не пытается это сделать, ничего плохого не произойдет. если приложение пытается это сделать, плохие эффекты будут ограничены только этим приложением и зависят от того, насколько хорошо приложение имеет дело с кодом ошибки, который COM API вернет к нему. Если приложение хорошо себя ведет, а объект COM не имеет решающего значения для его функциональности, приложение будет продолжать работать, хотя и с уменьшенной функциональностью. Если приложение плохо написано, оно может потерпеть крах. Если объект COM имеет решающее значение, приложение может выбрать, чтобы показать ошибку пользователю и выйти или просто быстро выйти из строя.