ID do artigo: 196342 - Última revisão: segunda-feira, 18 de junho de 2001 - Revisão: 1.0

PROBLEMA: ActiveDesktop erros de compilação em Visual C++ 6.0 MFC

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Em Visual C++ 6.0 Microsoft Foundation Classes (MFC), compilar o código relacionado à interface IActiveDesktop falhará com vários erros, incluindo um "identificador não declarado" para LPACTIVEDESKTOP.

Observe que isso ocorre especificamente ao compilar um programa MFC usando o Visual C++ 6.0. Não há nenhum relatório de ocorrência do problema nas versões anteriores do MFC ou o caso de Visual C++ 6.0 geral onde C ou C++ programas estão sendo compilados.

Causa

Quando um aplicativo MFC inclui o arquivo de cabeçalho stdafx.h, *\Vc98\Mfc\Include\Afxdisp.h arquivo é incluído por padrão. Dentro de Afxdisp.h o arquivo Shlobj.h (necessário para ActiveDesktop) está incluído. Mas, neste ponto, Wininet.h não foi incluído, para determinadas partes de Shlobj.h não são inicializados corretamente para ActiveDesktop suporte.

A inclusão de Shlobj.h por Afxdisp.h também define uma variável impedindo Shlobj.h sejam incluídos duas vezes. Mais tarde, quando um aplicativo MFC explicitamente e corretamente inclui Wininet.h seguido Shlobj.h, definidos anteriormente variável impede a inclusão de Shlobj.h segunda e também impede definições ActiveDesktop críticas, como para LPACTIVEDESKTOP, que está sendo feita.

Resolução

Adicionar um # include para o cabeçalho Wininet.h o arquivo de cabeçalho pré-compilado stdafx.h, logo acima do Afxdisp.h incluir. Eis um exemplo de stdafx.h:
// stdafx.h : include file for standard system include files,

...

#include <wininet.h>
#include <afxdisp.h>        // MFC Automation classes

...

#endif //!defined(AFX_STDAFX_H__D5E466A9...
				
após corrigir stdafx.h, recrie o projeto inteiro para garantir que o cabeçalho pré-compilado seja recompilado.

A informação contida neste artigo aplica-se a:
  • Microsoft Internet Explorer 4.0 Edição de 128 Bits
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Palavras-chave: 
kbmt kbactivedesktop kbprb KB196342 KbMtpt
Tradução automáticaTraduçã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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 196342  (http://support.microsoft.com/kb/196342/en-us/ )