ID do artigo: 190536 - Última revisão: segunda-feira, 3 de outubro de 2005 - Revisão: 3.3

CORRECÇÃO: Exibida uma mensagem de erro "Falha de página inválida no módulo Msvcrt.dll" após a instalação das bibliotecas das tempo de execução do Visual C++ 6.0

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

Depois de instalar as bibliotecas C Runtime (Msvcrt.dll) do Visual C++ 6.0 no seu computador, os aplicativos que anteriormente executava corretamente falha e um erro de aplicativo similar à seguinte aparece:
<Nome do aplicativo > causou uma falha de página inválida no módulo Msvcrt.dll em XXXX:XXXXXXXX.

Causa

Uma causa possível deste erro é que o aplicativo foi gravado após o bloco de memória que pertence a um determinado objeto. O Gerenciador de heapmemory bloco pequeno que é fornecido com as bibliotecas do Visual C++ 6.0 tempo de execução incorpora heap estruturas de controle dentro da heap pequeno bloco. Substituir o bloco de memória altera pequeno bloco heap ponteiro endereços, effecting um ponteiro inválido e, possivelmente, uma falha em Msvcrt.dll quando o ponteiro é referenciado.

Resolução

Fornecedores de aplicativos precisam garantir que seus aplicativos estão usando a pilha de pequeno bloco de tempo de execução C corretamente.

Para ajudar os clientes que estão enfrentando esse problema em seus aplicativos de terceiros, a Microsoft lançou uma nova C Runtime biblioteca de vínculo dinâmico (DLL), Msvcrt.dll, que implementa dois gerenciadores de heap: o Gerenciador de heap compatível com o 5.0 de versão do Visual C++ e o Gerenciador de heap compatível com o 6.0 do Visual C++ versão. Msvcrt.dll detecta qual versão do Visual C++ seu aplicativo é criado com e usa o Gerenciador de heap apropriado para o aplicativo. Se a versão for Visual C++ 6.0 ou posterior, o Gerenciador de heap compatível com o 6.0 do Visual C++ é usado; se a versão for anterior à versão 6.0, a pilha de 5.0 compatível do Visual C++ é usada.

Os usuários Studio 6.0 Visual podem obter o novo arquivo Msvcrt.dll instalando o Microsoft Visual Studio Service Pack mais recente. Se você não estiver usando o Visual Studio, instalar o Microsoft Libraries Update; para obter informações adicionais, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
197298  (http://support.microsoft.com/kb/197298/ ) Bibliotecas Microsoft atualizar: o que, em que, por que

Situação

A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Esse bug foi corrigido no Visual Studio 6.0 Service Pack 3. Para obter mais informações sobre service packs do Visual Studio, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
194022  (http://support.microsoft.com/kb/194022/ ) O Visual Studio 6.0 service packs, o que, em que, por que
194295  (http://support.microsoft.com/kb/194295/ ) Como saber se um service pack do Visual Studio está instalado

Mais Informações

A pilha pequeno bloco compreende alocações que são menos de 1 K de tamanho. Bugs dessa natureza podem se comportar diferentemente em versões anteriores da biblioteca de tempo de execução C porque as estruturas de controle sejam encontram em um local diferente e separado na memória. Geralmente, esses tipos de erros de código resultam na corrupção de outro bloco de memória e possivelmente uma falha. A seqüência de eventos que levam a uma violação de acesso são diferentes quando você usa as bibliotecas Visual C++ 6.0 C Runtime.

Você pode controlar esses tipos de problemas usando a pilha de depuração. Consulte a documentação on-line intitulada, "Usar a pilha de depuração". Você precisará habilitar a pilha de depuração por chamada _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF |_CRTDBG_CHECK-_ALWAYS_DF) na inicialização de processo em uma compilação de depuração do seu aplicativo.

A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
Palavras-chave: 
kbmt kbhotfixserver kbqfe kberrmsg kbqfe kbbug kbcrt kbfix kbvs600sp2fix kbvs600sp3fix KB190536 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: 190536  (http://support.microsoft.com/kb/190536/en-us/ )