Регулярное использование DLL: MFC, Общий по сравнению с MFC, статически связанным

Когда мы создаем DLL с помощью Visual Studio (VC8 или 9), мы получаем опцию, как создают Регулярный DLL

 using MFC as shared DLL

или

 using MFC as static library

Как они отличаются? Который желателен для использования?

5
задан AKN 16 April 2010 в 12:12
поделиться

2 ответа

[Думаю, теперь я получил свой ответ]

Если вы используете MFC DLL в качестве динамической компоновки, вашему коду потребуется DLL библиотеки Microsoft Foundation (в частности, версия, требуемая вашему коду), установленная вместе с вашим приложением или dll в конец пользователя. Таким образом, это означает, что ваш установочный пакет будет содержать

  • ваше приложение / DLL и вспомогательные файлы
  • Все библиотеки MFC

. Это увеличивает размер установочного пакета, а также заставляет пользователя загружать вашу установку.

Если вы свяжете MFC как статическую библиотеку, ваш код будет работать даже без MFC DLL на стороне пользователя. Причина довольно проста: все библиотеки MFC, на которые вы ссылаетесь в своем коде, будут связаны с вашим приложением или dll. Это означает, что библиотеки MFC, используемые в вашем приложении / dll, становятся частью вашего двоичного файла; однако ваше приложение / dll будет немного больше.

4
ответ дан 18 December 2019 в 09:05
поделиться

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

Совместно используемая библиотека вызывает библиотеку в то время, когда это необходимо (среда выполнения) для выполнения кода, но для этого требуется, чтобы пользователь установил ее (обычно определенную или минимальную версию) на своем компьютере. Вы также можете распространять требуемую версию библиотеки вместе с вашим приложением, если вам нужно.

Что лучше, я не знаю. Я не программист Windows C ++ или MFC, поэтому не могу сказать. На моих серверах Linux приложения, которые я пишу, обычно являются серверными и, следовательно, используют общие библиотеки.

Это зависит от того, как ваше приложение будет использоваться, распространяться, обновляться, как часто изменяется библиотека MFC, доступна ли она на ПК пользователей и т. Д.

12
ответ дан 18 December 2019 в 09:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: