CORRECÇÃO: Recebe mensagem de erro "Erro de página inválida no módulo Msvcrt.dll" depois de instalar as bibliotecas de tempo de execução do Visual C++ 6.0

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

Sintomas

Depois de instalar as bibliotecas de tempo de execução C (Msvcrt.dll) a partir do Visual C++ 6.0 no computador, as aplicações que anteriormente executou correctamente falhas e um erro de aplicação semelhante ao seguinte aparece:
<Nome da aplicação > causou um erro de página inválida no módulo Msvcrt.dll em XXXX:XXXXXXXX.

Causa

Uma causa possível este erro é que a aplicação foi escrita após o bloco de memória que é possuído por um determinado objecto. O Gestor de bloco pequeno heapmemory que é fornecido com as bibliotecas de tempo de execução do Visual C++ 6.0 incorpora estruturas de controlo da área de dados dinâmicos numa pilha de bloco pequeno. Substituir o bloco de memória altera endereços de ponteiro de pilha pequeno bloco, effecting um ponteiro incorrecto e, possivelmente, uma falha em Msvcrt.dll quando o ponteiro é referenciado.

Resolução

Fornecedores de aplicação tem de se certificar de que as aplicações estão a utilizar a pilha de pequeno bloco de tempo de execução C correctamente.

Para ajudar os clientes que tenham este problema nas suas aplicações terceiros, a Microsoft disponibilizou uma nova tempo de execução C dinâmica biblioteca de ligação (DLL), Msvcrt.dll, que implementa dois gestores de pilha: o Gestor de pilha 5.0 compatível de versão do Visual C++ e o Visual C++ versão 6.0 compatível pilha gestor. Msvcrt.dll detecta a versão do Visual C++ está incorporada com a aplicação e utiliza o Gestor de pilha adequado para essa aplicação. Se a versão Visual C++ 6.0 ou superior, o Gestor de pilha 6.0 compatível Visual C++ é utilizado, se a versão for anterior à versão 6.0, a pilha de 5.0 compatível Visual C++ é utilizada.

Visual Studio 6.0 utilizadores podem obter o novo ficheiro Msvcrt.dll instalando o Microsoft Visual Studio Service Pack mais recente. Se não estiver a utilizar o Visual Studio, instalar a Microsoft Libraries Update; para obter informações adicionais, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
197298Actualizar bibliotecas do Microsoft: o que, em que, por que razão

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos do Microsoft listados na secção "Aplica-se a".

Este erro foi corrigido no Visual Studio 6.0 Service Pack 3. Para obter mais informações sobre service packs do Visual Studio, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
194022Visual Studio 6.0 service packs, o que, em que, por que razão
194295Como saber que um Visual Studio service pack está instalado

Mais Informação

A pilha de bloco pequeno inclui atribuições que são menores que 1 K de tamanho. Ter erros deste natureza poderão comportamentos diferentes em versões anteriores da biblioteca de tempo de execução C porque as estruturas de controlo estão incluídas numa localização diferente e separada na memória. Muitas vezes, estes tipos de erros de codificação provocar a Corrupção de outro bloco de memória e, possivelmente, uma falha. A sequência de eventos que conduzir a uma violação de acesso são diferentes quando utiliza as bibliotecas de Visual C++ 6.0 C Runtime.

Pode controlar estes tipos de problemas utilizando a pilha de depuração. Consulte a documentação online do título, "Utilizar a pilha de depuração". Tem de activar a pilha de depuração através da chamada _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF |_CRTDBG_CHECK-_ALWAYS_DF) no processo de inicialização de uma compilação de depuração da aplicação.

Propriedades

Artigo: 190536 - Última revisão: 3 de outubro de 2005 - Revisão: 3.3
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á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: 190536

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