Compartilhar via


Tipos de DLLs

Este tópico fornece informações para ajudá-lo a determinar o tipo de DLL para construir.

Diferentes tipos de DLLs disponíveis

Usando o Visual C++, você pode criar DLLs de Win32 em c ou C++ que não usam a biblioteca Microsoft Foundation Class (MFC).Você pode criar um projeto de DLL não - MFC com o Assistente de aplicativos Win32.

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

  • Criar uma DLL regular que estaticamente links MFC

  • Criar uma DLL regular que dinamicamente links MFC

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

9se914de.collapse_all(pt-br,VS.110).gifO que você deseja saber mais sobre?

O tipo de DLL para uso

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

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

Criar uma DLL que vincula dinamicamente a MFC é mais rápido do que a criação de uma DLL que vincula estaticamente MFC porque não é necessário vincular MFC propriamente dito.Isso é especialmente verdadeiro em compilações de depuração onde o vinculador deve compactar as informações de depuração.Vinculando-se com uma DLL que já contém as informações de depuração, há menos informações de depuração para compactar dentro sua DLL.

Uma desvantagem vinculando dinamicamente a MFC é que você deve distribuir Mfcx0.dll de DLLs compartilhadas e Msvcrxx.dll (ou arquivos semelhantes) com sua DLL.As DLLs de MFC são redistribuíveis gratuitamente, mas você ainda deve instalar as DLLs no seu programa de instalação.Além disso, você deve entregar a Msvcrxx.dll, que contém a biblioteca de tempo de execução c é usada tanto pelo seu programa e as DLLs de MFC próprios.

Se sua DLL será usado apenas por arquivos executáveis do MFC, você pode escolher entre criar uma DLL regular ou uma extensão DLL.Se sua DLL implementa reutilizáveis classes derivadas de classes MFC existentes ou você precisa passar objetos derivados MFC entre o aplicativo e a DLL, você deve criar uma DLL de extensão.

Se a sua DLL dinamicamente conecta a 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áveis para economizar espaço em disco e minimizar o uso de memória.

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

9se914de.collapse_all(pt-br,VS.110).gifO que você deseja saber mais sobre?

Consulte também

Conceitos

DLLs no Visual C++