CORRECÇÃO: DLL que utiliza o ATL CImage classe cause um bloqueio num processo

Traduções de Artigos Traduções de Artigos
Artigo: 322909 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Uma DLL que está a utilizar a classe de biblioteca de modelo de Active Directory (ATL) CImage pode causar um impasse quando é carregado a partir de um processo ou quando encerra o processo de carregamento.

Causa

Este problema ocorre porque a classe CImage inicia e encerra GDI + utilizando a classe estática aninhada CInitGDIPlus . Esta classe inicializa GDI + antes de qualquer função CImage que requer a que GDI + é chamado. GDI + é encerrado chamando GdiplusShutdown quando a classe CInitGDIPlus é destructed. CInitGDIPlus é uma classe estática que destructed de uma DLL no contexto de DllMain . A documentação indica que não pode chamar GdiplusShutdown na DllMain .

Resolução

Informações do Service pack

Para resolver este problema, obtenha o service pack mais recente do Microsoft Visual Studio. NET. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
837234Lista de erros corrigidos no Visual Studio .NET 2002 1

Informações sobre a correcção

Para obter mais informações sobre esta correcção, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
326459Comparação de COleDateTime afirma ou devolve um valor incorrecto

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a" deste artigo. Este problema foi corrigido pela primeira vez no Visual Studio .NET 2002 1.

Mais Informação

Passos para reproduzir o comportamento

  1. Criar um projecto ATL DLL denominado Control_Name .htm e, em seguida, inserir um ActiveX controlo.
  2. Adicione um membro CImage à classe de controlo ActiveX.
  3. Chame CImage::Load no Construtor de classe de controlo ActiveX.
  4. Visualizar a página .htm que criou para o controlo (Control_Name .htm) no Microsoft Internet Explorer.
  5. Saia do Internet Explorer. Deve detectar um dos seguintes condições:
    • Não é possível iniciar novamente o Internet Explorer.

      - ou -
    • O processo de IExplore.exe continua a aparecer no Gestor de tarefas.

Propriedades

Artigo: 322909 - Última revisão: 27 de setembro de 2005 - Revisão: 7.1
A informação contida neste artigo aplica-se a:
  • The Microsoft Active Template Library (ATL) 7.0 nas seguintes plataformas
    • Microsoft Visual Studio .NET 2002 Enterprise Architect
    • Microsoft Visual Studio .NET 2002 Enterprise Developer
    • Microsoft Visual Studio .NET 2002 Professional Edition
    • Microsoft Visual Studio .NET 2002 Academic Edition
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbvs2002sp1sweep kbvs2002sp1fix kbbug kbfix KB322909 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 322909

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com