Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Uma DLL (biblioteca de vínculo dinâmico) é uma biblioteca que contém código e dados que podem ser usados por mais de um aplicativo. Você pode usar o Visual Studio para criar, compilar, configurar e depurar DLLs.
Criar uma DLL
Os seguintes modelos de projeto do Visual Studio podem criar DLLs:
- Biblioteca de classes (.NET, .NET Framework e outras plataformas de aplicativo)
- Biblioteca de controle do Windows Forms (.NET e .NET Framework)
- Biblioteca Dynamic-Link (DLL) (C++)
Depurar uma Biblioteca de Controle do Windows Forms é semelhante a depurar uma Biblioteca de Classes. Para obter mais informações, consulte Controles do Windows Forms.
Você geralmente chama uma DLL de outro projeto. Quando você depurar o projeto de chamada, dependendo da configuração da DLL, você pode entrar e depurar o código da DLL.
Configuração de depuração de DLL
Quando você usa um modelo de projeto do Visual Studio para criar um aplicativo, o Visual Studio cria automaticamente as configurações necessárias para as configurações de compilação Debug e Release. Você pode alterar essas configurações, se necessário. Para obter mais informações, consulte os seguintes artigos:
- Como: Definir configurações de depuração e liberação
- Configurações do projeto para uma configuração de depuração C++
- Configurações do projeto para configurações de depuração do .NET C#
- Configurações do projeto para configurações de depuração em C#
- Configurações do projeto para uma configuração de depuração do Visual Basic
Definir C++ DebuggableAttribute
Para que o depurador se anexe a uma DLL C++, o código C++ deve emitir DebuggableAttribute.
Para definir DebuggableAttribute:
Selecione o projeto DLL C++ no Gerenciador de Soluções e selecione o ícone Propriedades , ou clique com o botão direito do mouse no projeto e selecione Propriedades.
No painel Propriedades, emDepuração do >, selecione Sim (/ASSEMBLYDEBUG) para Assembly depurável.
Para obter mais informações, consulte /ASSEMBLYDEBUG.
Definir locais de arquivos DLL C/C++
Para depurar uma DLL externa, um projeto de chamada deve ser capaz de localizar a DLL, seu arquivo .pdb e quaisquer outros arquivos que a DLL exige. Você pode criar uma tarefa de compilação personalizada para copiar esses arquivos para a <pasta> do projeto\Depurar pasta de saída, ou você pode copiar os arquivos lá manualmente.
Para projetos C/C++, você pode definir locais de cabeçalho e arquivo LIB nas páginas de propriedades do projeto, em vez de copiá-los para a pasta de saída.
Para definir os locais do cabeçalho C/C++ e dos arquivos LIB:
Selecione o projeto DLL C/C++ no Gerenciador de Soluções e selecione o ícone Propriedades , ou clique com o botão direito do mouse no projeto e selecione Propriedades.
Na parte superior do painel Propriedades , em Configuração, selecione Todas as configurações.
Em C/C++>General>Additional Include Directories, especifique a pasta que tem arquivos de cabeçalho.
EmDiretórios de bibliotecas adicionais> do >, especifique a pasta que tem arquivos LIB.
EmDependências adicionais> do >, especifique o caminho completo e o nome do arquivo para os arquivos LIB.
Selecione OK.
Para obter mais informações sobre as configurações do projeto C++, consulte Referência da página de propriedades do Windows C++.
Criar uma versão de depuração
Certifique-se de criar uma versão de depuração da DLL antes de iniciar a depuração. Para depurar uma DLL, um aplicativo de chamada deve ser capaz de encontrar seu arquivo .pdb e quaisquer outros arquivos que a DLL exige. Para obter mais informações, consulte Como definir configurações de depuração e versão.
Você pode criar uma tarefa de compilação personalizada para copiar os arquivos DLL para sua <pasta> de projeto chamando\Debug pasta de saída, ou você pode copiar os arquivos lá manualmente.
Certifique-se de chamar a DLL em seu local correto. Isso pode parecer óbvio, mas se um aplicativo de chamada encontrar e carregar uma cópia diferente da DLL, o depurador nunca atingirá os pontos de interrupção definidos.
Depurar uma DLL
Você não pode executar uma DLL diretamente. Ele deve ser chamado por um aplicativo, geralmente um arquivo .exe .
Para depurar uma DLL, você pode iniciar a depuração do aplicativo de chamada ou depurar do projeto DLL especificando seu aplicativo de chamada. Você também pode usar a janela Imediata do depurador para avaliar funções ou métodos DLL durante a fase de design, sem usar uma aplicação de chamada.
Iniciar a depuração a partir do aplicativo de chamada
O aplicativo que chama uma DLL pode ser:
- Uma aplicação de um projeto do Visual Studio na mesma solução ou em uma solução diferente daquela da DLL.
- Um aplicativo existente que já está implantado e em execução em um computador de teste ou produção.
- Localizado na web e acessado através de um URL.
- Um aplicativo Web com uma página da Web que incorpora a DLL.
Antes de começar a depurar o aplicativo de chamada, defina um ponto de interrupção na DLL. Consulte Introdução aos pontos de interrupção. Quando o ponto de interrupção da DLL é atingido, você pode percorrer o código, observando a ação em cada linha. Para obter mais informações, consulte Navegar no código no depurador.
Para depurar uma DLL a partir de uma aplicação de chamada, podes:
Abra o projeto para o aplicativo de chamada e inicie a depuração selecionando Depurar>Iniciar Depuração ou pressionando F5.
ou
Anexe a um aplicativo que já esteja implantado e em execução em um computador de teste ou produção. Use esse método para DLLs em sites ou em aplicativos Web. Para obter mais informações, consulte Como anexar a um processo em execução.
Durante a depuração, você pode usar a janela Módulos para verificar as DLLs e .exe arquivos carregados pelo aplicativo. Para abrir a janela Módulos, durante a depuração, selecione Depurar>Módulos do Windows>. Para obter mais informações, consulte Como usar a janela Módulos.
Use a janela Imediata
Você pode usar a janela Immediate para avaliar funções ou métodos DLL em tempo de design. A janela Immediate desempenha o papel de um aplicativo de chamada.
Observação
Você pode usar a janela Immediate em modo de design com a maioria dos tipos de projeto. Não há suporte para SQL, projetos da Web ou script.
Por exemplo, para testar um método nomeado Test na classe Class1:
Com o projeto DLL aberto, abra a janela Immediate selecionando Debug>Windows>Immediate ou pressionando Ctrl+Alt+I.
Instancie um objeto do tipo
Class1digitando o seguinte código C# na janela Immediate e pressionando Enter. Esse código gerenciado funciona para C# e Visual Basic, com alterações de sintaxe apropriadas:Class1 obj = new Class1();Em C#, todos os nomes devem ser totalmente qualificados. Quaisquer métodos ou variáveis devem estar no escopo e contexto atuais quando o serviço de linguagem tenta avaliar a expressão.
Supondo que
Testleva umintparâmetro, avalieTestusando a janela Immediate :?obj.Test(10);O resultado é impresso na janela Immediate .
Você pode continuar a depurar
Testcolocando um ponto de interrupção dentro dele e, em seguida, avaliando a função novamente.O ponto de interrupção será atingido e você poderá passar pelo
Test. Após a execução ter saídoTest, o depurador estará de volta ao modo de design.
Depuração de modo misto
Você pode escrever um aplicativo de chamada para uma DLL em código gerenciado ou nativo. Se seu aplicativo nativo chama uma DLL gerenciada e você deseja depurar ambos, você pode habilitar os depuradores gerenciados e nativos nas propriedades do projeto. O processo exato depende de se pretendes iniciar a depuração a partir do projeto DLL ou do projeto da aplicação chamadora. Para obter mais informações, consulte Como depurar no modo misto.
Você também pode depurar uma DLL nativa de um projeto de chamada gerenciado. Para obter mais informações, consulte Como depurar código gerenciado e nativo.
Conteúdo relacionado
- Depurar código gerenciado
- Preparar-se para depurar projetos C++
- tipos de projeto C#, F# e Visual Basic
- Definições do projeto para uma configuração de depuração C++
- Configurações do projeto para configurações de depuração do .NET C#
- Configurações do projeto para configurações de depuração em C#
- Configurações de projeto para uma configuração de debug do Visual Basic
- Segurança do Depurador