Compartilhar via


Tipos de DLLs

Este tópico fornece informações para ajudar a determinar o tipo de DLL para compilação.

Diferentes tipos de DLLs disponível

Usando o Visual C++, você pode compilação Win32 DLLs em C ou C++ que não usam a biblioteca Microsoft Foundation classe (MFC).Você pode criar um projeto non-MFC_DLL com o Assistente de aplicativos do Win32.

A própria biblioteca MFC está disponível, em uma das bibliotecas de vínculo estático ou de várias DLLs, com o Assistente de DLL do MFC.Se sua DLL usando o MFC, o Visual C++ oferece suporte a três cenários diferentes de desenvolvimento de DLL:

  • Criar uma DLL regular que estaticamente vincula MFC

  • Criar uma DLL regular que dinamicamente vincula MFC

  • Criando uma DLL de extensão do MFC, que sempre dinamicamente vincular MFC

O que você deseja saber mais sobre?

Decidir qual tipo de DLL a ser usado

Se sua DLL não usar MFC, use o Visual C++ para compilação uma não-MFC DLL Win32.Vinculando sua DLL a MFC (estaticamente ou dinamicamente) ocupa memória e espaço em disco significativa.Você não deve vincular ao MFC, a menos que sua DLL realmente use MFC.

Se sua DLL estará usando o MFC e será usado por aplicativos MFC ou não-MFC, você deve criar em uma DLL regular que vincula dinamicamente a MFC ou uma DLL regular que se vincula estaticamente ao MFC.Na maioria dos casos, você provavelmente deseja usar uma DLL regular que vincula dinamicamente a MFC porque o dimensionar do arquivo da DLL será muito menor e a economia na memória de usar a versão do MFC compartilhada pode ser significativa.Quando você vincula estaticamente ao MFC, o dimensionar do arquivo da sua DLL será maior e potencialmente ocupar memória extra porque ele carrega sua própria cópia particular do código de biblioteca MFC.

Criação de uma DLL que vincula dinamicamente a MFC é mais rápido do que criando uma DLL que se vincula estaticamente ao MFC porque não é necessário vincular MFC propriamente dito.Isso é especialmente verdadeiro em compilações de depurar em que o vinculador deve compactar as informações de depurar.Por meio da vinculação com uma DLL que já contém as informações de depurar, há menos informações de depurar para compactar dentro de sua DLL.

Vinculando dinamicamente a MFC uma desvantagem é que você deve distribuir Mfcx0.dll DLLs compartilhadas e Msvcrxx.dll (ou arquivos similares) com sua DLL.As DLLs de MFC estão redistribuíveis gratuitamente, mas ainda terá que instalar as DLLs seu programa de instalação.Além disso, você deve fornecer Msvcrxx.dll, que contém a biblioteca de time de execução C que é usada tanto por seu programa e as DLLs de MFC propriamente ditas.

Se sua DLL será usada apenas pelos arquivos executáveis do MFC, você terá a opção de criação de uma DLL regular ou uma DLL de extensão.Se sua DLL implementa reutilizáveis classes derivadas de classes MFC existentes ou se você precisar passar objetos derivados de MFC entre o aplicativo e a DLL, você deve criar uma DLL de extensão.

Se sua DLL vínculos dinamicamente ao MFC, as DLLs do MFC pode ser redistribuídas com sua DLL.Essa arquitetura é particularmente útil para compartilhar a biblioteca de classes entre vários arquivos executável para economizar espaço em disco e minimizar o Uso de Memória.

Anteriores à versão 4.0, Visual C++ somente com suporte a dois tipos de DLLs usadas MFC: USRDLLs e AFXDLLs.Regulares DLLs vinculadas estaticamente a MFC têm sistema autônomo mesmas características sistema autônomo USRDLL anterior.DLLs de extensão do MFC têm sistema autônomo mesmas características sistema autônomo AFXDLLs anteriores.

O que você deseja saber mais sobre?

Consulte também

Conceitos

DLLs