Erro: Exceção de "System.NullReferenceException" ao usar o vetor <bool> classe

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: 837698
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo descreve um bug de código no arquivo de vetor que faz com que uma exceção "System.NullReferenceException" e descreve como resolver esse erro.
Sintomas
Quando você chama o método pop_back do vector<bool> classe de modelo para excluir o último elemento é armazenado em um vector<bool> classe de modelo de objeto, você receber a seguinte mensagem de erro:
Ocorreu uma exceção sem tratamento do tipo 'System.NullReferenceException' em ApplicationName

Obter informações adicionais: não definida para uma instância de um objeto de referência de objeto.
Observação ApplicationName é um espaço reservado para o executável (.exe) nome de arquivo do programa.
Causa
Você recebe essa mensagem de erro devido a um erro de código no vector<bool> definição de classe de modelo no arquivo de vetor.
Resolução
Para resolver esse erro, modifique o código no arquivo de vetor. O arquivo de vetor está localizado na pasta vc7\include sob a pasta onde você instalou o Microsoft Visual Studio .NET 2003. Para modificar o código, execute essas etapas:
  1. Inicie o Microsoft Visual Studio .NET 2003.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Em Project Types , clique em Projetos do Visual c++ e, em seguida, clique em Aplicativo de console (NET) em modelos .
  4. Na caixa nome , digite vetor e, em seguida, clique em OK .
  5. No Solution Explorer, expanda todas as pastas e, em seguida, na pasta Arquivos de origem , clique duas vezes Vector.cpp .
  6. Adicione o seguinte código à janela de código após a instrução # using :
    #include <vector>
  7. Substitua o código na função _tmain com o código a seguir:
    std::vector< bool > v;for( int i = 0; i < 32; ++i )v.push_back( true );for( int j = 0; j < 32; ++j )v.pop_back(); // crashes herereturn 0;
  8. Na janela código, clique com botão direito do # include <vector> instrução e clique em Abrir documento <vector> .

    Isso abre o vetor de incluir arquivo na janela de código.
  9. No arquivo de vetor, localizar e, em seguida, comente o código a seguir:
    const_iterator& operator+=(difference_type _Off)	{	// increment by integer	this->_Myoff += _Off;	this->_Myptr += this->_Myoff / _VBITS;	this->_Myoff %= _VBITS;	return (*this);	}
  10. Adicione o seguinte código após o código que comentado na etapa 10:
    const_iterator& operator+=(difference_type _Off)	{ // increment by integer	if (_Off < 0 && this->_Myoff < 0 - (size_type)_Off)	{ /* add negative increment */	this->_Myoff += _Off;	this->_Myptr -= 1 + ((size_type)(-1) - this->_Myoff) / _VBITS;	this->_Myoff %= _VBITS;	}	else	{ /* add non-negative increment */	this->_Myoff += _Off;	this->_Myptr += _Myoff / _VBITS;	this->_Myoff %= _VBITS;	}	return (*this);	}
  11. No menu arquivo , clique em Salvar tudo para salvar todos os arquivos.
  12. No menu Build , clique em Rebuild Solution .
  13. No menu Debug , clique em Iniciar para executar o programa no modo de depuração.

    O programa é executado sem erros.
Situação
A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Mais Informações

Etapas para reproduzir o comportamento

  1. Descomente o código que comentado na etapa 9 da seção "Resolução".
  2. Remover ou comentário o código que você adicionou na etapa 10 da seção "Resolução".
  3. No menu arquivo , clique em Salvar tudo para salvar todos os arquivos.
  4. No menu Build , clique em Rebuild Solution .
  5. No menu Debug , clique em Start Without Debugging para executar o programa.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 837698 - Última Revisão: 12/08/2015 06:29:24 - Revisão: 1.2

Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbmt kbstl kblangcpp kbconsole kberrmsg kbcode kbbug KB837698 KbMtpt
Comentários