2011-12-18 2 views
0

В чем разница между LIB и DLL? Я прочитал много сообщений об этом, и есть некоторые хорошие, ясные ответы, однако я пишу, чтобы просить о ясности по одному вопросу.Разница между LIB и DLL

Лучше использовать LIB (статическую библиотеку ссылок), когда есть только один пользователь, например. для клиента приложения администрирования, установленного локально на ПК? и лучше ли использовать DLL (динамическую библиотеку ссылок), когда несколько одновременных пользователей обращаются к классическому asp-приложению, которое использует классы vb6?

+0

VB6 способен создавать динамические библиотеки ActiveX (если только они не подвержены безумным навыкам, после чего он также может создавать собственные динамические библиотеки). Но он не может создавать статические библиотеки. Так почему же помечены как VB6? – GSerg

+0

Когда я скомпилирую свой проект VB6; файл LIB и DLL-файл обрабатываются. – w0051977

ответ

4

Файл LIB обычно соответствует статической библиотеке, что означает, что весь код библиотеки, который использует ваше приложение, скомпилирован непосредственно в ваше приложение.

DLL-файл представляет собой динамическую библиотеку, к которой относится ваше приложение, а затем, когда вы хотите использовать код из библиотеки, вы вызываете ее динамически во время работы вашего приложения.

Конечно, вы будете часто видеть файл LIB для динамически связанной библиотеки. Этот файл содержит «заглушки», которые линкер использует для неявной ссылки на DLL.

Очевидным преимуществом DLL (динамической компоновки) является то, что одна DLL с общей функциональностью может использоваться совместно с несколькими приложениями, использующими ту же функциональность. Исправления ошибок могут быть сделаны в одном месте, и только один компонент должен быть обновлен, чтобы все приложения могли воспользоваться этими исправлениями.

Если у вас есть только одно приложение, использующее ваш код, нет причин помещать его в DLL. Многим пользователям на нескольких компьютерах все равно придется иметь собственную копию DLL, поэтому в этой ситуации не будет совместного использования кода.

Все, что было сказано, я не знаю, что этот вопрос имеет отношение к VB 6. Насколько я знаю, вы можете использовать его только для создания DLL-файлов ActiveX (которые имеют другой вариант использования), и он не может создавать статические библиотеки вообще.

+0

Причина, по которой я добавил категорию VB6, - это приложение VB6, но, возможно, более общая категория была бы лучше. При компиляции приложение VB6 генерирует .LIB и .DLL. Я регистрирую .dll, но не .lib, и приложение работает без каких-либо ошибок. Почему мне не нужно регистрировать .LIB? – w0051977

+1

Файл LIB является частью процесса компиляции и компоновки (make). Вы никогда не используете LIB во время выполнения и никогда не развертываете его. Большинство программ не могут использовать файл LIB, и я не знаю, какой практический способ для этой программы VB. При некотором взломе вы можете создать обычную DLL на основе LIB, но нет никакого преимущества. Просто оставьте это. – Bob77

+0

Я унаследовал несколько приложений VB6 (я исхожу из фона Java). Похоже, что с одним из других приложений VB6; файл LB VB6 фактически зарегистрирован и используется классическим приложением asp. Я мог ошибаться. – w0051977

Смежные вопросы