Como corrigir janelas c ++ erros de execução visuais

bibliotecas compartilhadas no Windows tornar a programação muito mais eficiente para o programador que não precisa reinventar a roda toda vez que ele precisa para executar uma tarefa comum. Eles também torná-lo mais fácil para tapar buracos de segurança em código compartilhado quando eles são encontrados, uma vez que tem de ser corrigido em menos lugares e não exige que cada aplicativo ser recompilados.

Apesar destes aspectos positivos, eles podem representar os seus próprios problemas ao tentar solucionar a causa raiz de mensagens de erro que podem gerar.

Nossa Pergunta do leitor:

Como faço para corrigir um Windows Vista 32-bit C: problema Windows explorer.exe em um Dell Inspiron 530?

Após clicar no botão OK na caixa de diálogo mostrada na imagem, a tela irá manchar para fora e retornar ao funcionamento normal, mas não me permite acessar o C, D, e, às vezes, a unidade E ao tentar acessá-los de meu computador.

Corrida SFC / scannow não encontrar algum erro. Eu baixei atualização de ambos os sites da Dell e da Microsoft tentando corrigir esse problema. Eu também ter instalado o Microsoft Visual C ++ 2010 Redistributable Package (x86). O PC é completamente up-to-date de acordo com o Windows Update.

Video: COMO RESOLVER FALHA NA INSTALAÇÃO C++

tempo de execução de erros

Responder de Bruce:

Nota: As discussões sobre o Windows Explorer no Windows 7 e versões anteriores também se aplicam a File Explorer no Windows 8 e versões posteriores. Se houver uma diferença notável entre eles, será declarado explicitamente.

A Shell do Windows

explorador de janelas é a casca e é executado como o processo explorer.exe como visto no Gerenciador de tarefas ou Process Explorer Sysinternals. Como muitos outros programas do Windows, toda a funcionalidade fornecida pela shell não está incorporada que único arquivo executável. Existem dezenas de outras EXE e arquivos DLL usado para implementar folhas de propriedades, manipuladores de propriedade, manipuladores de visualização, menus de contexto, e muitos outros elementos que você usa no Windows Explorer a cada dia.Process Explorer - O mais poderoso substituição Task Manager [Windows]Process Explorer - O mais poderoso substituição Task Manager [Windows]Vamos ser honestos, o Gerenciador de Tarefas do Windows não é tão grande para entender e gerenciar os processos em execução no seu computador. Mesmo no Windows 8, onde é muito melhorada, o gerenciador de tarefas não pode chegar perto do ...consulte Mais informação

Extensible Shell

Shell extensões permitem que os programadores facilmente adicionar funcionalidades ao Windows Explorer, escrevendo uma DLL para executar a tarefa e registrar a DLL com o sistema operacional, então Explorador sabe onde encontrar o código para realizar a tarefa. Por exemplo, 7-Zip adiciona um sub-menu para o menu de contexto padrão, dando acesso rápido às tarefas de manuseio de arquivo, Sentinela disco rígido acrescenta sobreposições de ícones para os ícones de unidade padrão, para que possa ver o estado de saúde da unidade de relance, e HashTab adiciona uma nova folha de propriedades, para calcular e exibir hashes do arquivo selecionado.

menu contextual

Muitas destas extensões de shell são implementados como servidores em processo Component Object Model (COM). Isto significa que quando um processo, neste caso o Windows Explorer, usa a extensão, ela não aparecerá no Gerenciador de tarefas ou Process Explorer como um processo em execução separado com seu próprio identificador de processo (PID). Em vez disso, ele está sendo executado dentro do processo de chamada explorer.exe.

Padrão de Instância Única-Process

Windows Explorer é escrito para ser capaz de funcionar como dois processos separados, mas - em sua configuração padrão - ele só será executado uma única instância. Quando é executado pela primeira vez como parte do processo de inicialização, ele cria o ambiente de trabalho do Windows. Executá-lo novamente cria um novo segmento no processo existente, que exibe a janela familiarizado gerenciamento de arquivos, em vez de começar um novo processo.

Este comportamento permite um consumo de memória reduzida, mas também pode trazer a sua própria pequena torção na solução de problemas. Um erro crítico ou exceção não tratada no código que está sendo executado no processo explorer.exe, incluindo servidores em processo fornecidos pelo DLLs, fará com que todo o ambiente de trabalho para ir para baixo com ele.

Na maioria dos casos, o processo área de trabalho será reiniciado automaticamente. Se ele não reiniciar, você ainda deve ser capaz de usar Ctrl-Shift-Esc para abrir o Gerenciador de Tarefas. De lá, vá para o Arquivo gt; Nova tarefa (Executar ...) gt; tipo explorer.exe gt; Está bem para reiniciar o processo.

Isto pode ser evitado com uma simples mudança. Aberto explorador de janelas gt; Organizar gt; Opções de Pasta e Pesquisa no Vista / 7. Para o Windows 8 e, mais tarde, aberta Explorador de arquivos gt; Visão gt; opções gt; Alterar pasta e opções de pesquisa. Selecione os Ver guia e verifique Lançar janelas de pastas em um processo separado.

opções de Pasta

Alterar essa configuração isola seu processo de área de trabalho de todas as outras janelas do Windows Explorer que você tem aberto. Se qualquer uma dessas falhas do Windows Explorer, o seu desktop permanecerá incólume.

Microsoft Visual C ++ Runtime Library (CRT)

O Runtime Library Microsoft Visual C ++ fornece rotinas para programação do Windows que automatizar muitas tarefas, tais como entrada / saída, manipulação de arquivos, alocação de memória, chamadas de sistema, e muitos outros.

Cada instalação do Windows terá pelo menos duas versões diferentes do CRT instalado. Um recém-construído Vista SP2 através do Windows 10 máquina terá ambas as versões 8.0 e 9.0 (VC 2005 e VC 2008, respectivamente) presentes. Quando o software adicional é instalado, ele pode também incluir versões mais recentes dos tempos de execução, dependendo de qual versão do Visual C ++ foi usada para criar o programa ou qualquer dos seus componentes.

Erros de tempo de execução

Quando um erro ou exceção é encontrada em um pedaço de código, idealmente, serão tratados o mais cedo possível no processo atualmente em execução, e quer ser corrigido ou permitir uma falha graciosa. Se o erro não é tratado localmente, ele é passado para o código que chama o código atualmente em execução, eo processo continua até que a exceção é tratada. Se completar sua corrida para o topo da cadeia e ele ainda não é tratado, ele irá gerar um erro de execução, como visto acima.



Quando o usuário clica no botão OK, o processo será encerrado. Se o programa tem um comportamento de falha definido, como serviços críticos, ou seu estado executar é monitorado por outro processo, pode ser recriado automaticamente. Isto é o que está a acontecer neste caso. A tela escurece quando o processo explorer.exe é encerrado, em seguida, a área de trabalho volta quando o processo explorer.exe é reiniciado.

Embora a mensagem de erro acima indica claramente que veio do processo explorer.exe, não é provável que seja um problema com o próprio explorer.exe. É muito mais provável que o culpado está em outro lugar, como uma extensão de terceiros que está sendo usado pelo Explorer.

outras considerações

Com a descrição de nosso leitor da questão acima, há um par de itens adicionais que temos de ter em conta:

  • No momento do acidente, o Explorer estava tentando, mas incapaz, para preencher a listview.
  • A incapacidade de aceder a unidades após a área de trabalho tem respawned, pode indicar outro processo tem um ou mais desses dispositivos bloqueadas, impedindo deste modo o acesso a partir do processo explorer.exe recém-criada.
  • Corrida SFC / scannow e obter um atestado de saúde, gotas do Windows recursos protegidos para a parte inferior da lista para consideração. Outras causas são muito mais provável.

As correções estão em

Neste caso particular, há três áreas onde eu iria procurar uma solução. A primeira envolve o serviço Windows Search, o segundo envolve a investigar extensões de shell, e o último seria o VC ++ REDISTRIBUÍVEIS si.

Pesquisa do Windows

Porque a imagem original mostra o acidente aconteceu quando o Explorer está tentando preencher a listview, é possível que o serviço de pesquisa do Windows está bloqueando o acesso aos recursos necessários. Eu já vi isso acontecer quando o serviço falha e não tem os parâmetros de reinício corretas.

pressione Win + R gt; tipo services.msc gt; Está bem para iniciar o console de gerenciamento com o módulo de serviços. Desloque-se para o Windows Search e clique duas vezes na entrada para abrir a caixa de diálogo Propriedades. Garantir que as configurações na guia Recuperação de corresponder à imagem abaixo.

janelas-search-propriedades

O problema mais comum é o “Reiniciar serviço após:” configuração. Este erro ocorre com freqüência quando essa configuração é diferente de zero.

Shell Extensions problemáticos

Baixar ShellExView de Nirsoft para sua arquitetura de sistema (x86 ou x64), instalar e executá-lo. Vai levar um pouco de tempo para examinar o sistema e preencher a tabela com dados. Rolar na coluna Tempo CLSID Modificado e clique no cabeçalho para classificar neste campo. Se você deseja excluir os módulos fornecidos pela Microsoft, você pode ir para opções gt; Esconder todas as extensões da Microsoft. Para aqueles que usam uma versão do Windows de 64 bits, você também pode querer mostrar as extensões de 32 bits no sistema, indo para opções gt; Mostrar Shell Extensions 32 bits.

Olhe para as extensões que foram adicionados pouco antes de os sintomas começaram. Selecione uma ou mais e pressione F7 ou ir para Arquivo gt; Desativar itens selecionados, ou clique no ícone do LED vermelho na barra de ferramentas. Idealmente, isso deve ser feito um de cada vez.

Teste para ver se os sintomas persistirem. Se eles fizerem isso, você pode reativar a extensão anteriormente desativado (s) usando F8, Arquivo gt; Ativar itens selecionados, ou o LED verde ícone da barra de ferramentas. A partir daqui, desativar uma extensão diferente e repita o processo de teste até encontrar a causa do problema.

Reparo / reinstalação Redistribuíveis VC ++

Eu uso este como um último recurso, se apenas um programa está chutando para fora erros. Se você tiver vários programas que estão tendo problemas com erros de execução VC ++, você pode querer tentar isso primeiro.

Ao olhar para os programas instalados no meu sistema (Painel de controle gt; Programas e características), Ele mostra todas as versões dos pacotes redistribuíveis (e algumas de suas atualizações) variando de versão 8 a versão 12 (VC ++ 2005 através do VC ++ 2013). Eu tê-los instalados por causa das ferramentas de programação da Microsoft que eu uso. A maioria dos usuários não terão todos estes.

instalou-vCPP-redist

Você pode encontrar os mais recentes downloads para versões suportadas do Visual C ++ da Microsoft. Para os nossos propósitos aqui, você só precisa se preocupar com aqueles que são rotulados como pacotes “redistribuíveis”. Links que são classificados como service packs são para as ferramentas de programação, não apenas os tempos de execução. Você só vai precisar aqueles que estão atualmente listados nos programas instalados no seu sistema. Instalação de outras versões não vai ajudar neste caso. Os utilizadores de sistemas operativos de 64 bits pode precisar as versões x86 e x64 do CRT.

Windows Update verifica se o seu computador tem as últimas atualizações para esses pacotes instalados, mas não verifica para garantir que ele está instalado corretamente e não foi quebrado. Os instaladores podem verificar para garantir que todos os arquivos de tempo de execução são os adequados e todas entradas de registro estão corretas.

Depois de ter baixado os instaladores apropriados, executá-los no sistema. As versões 2005 irá pedir-lhe para aceitar um contrato de licença antes de reinstalar o pacote. Todos os outros têm uma GUI que irá perguntar se você deseja reparar ou desinstalar a instalação existente. Na maioria dos casos, uma operação de reparação irá corrigir quaisquer problemas.

Se você quiser experimentar o método mais extremo, você pode desinstalar os tempos de execução, reiniciar a máquina, em seguida, reinstalá-los. Eu não recomendo este método com os tempos de execução de 2005 e 2008. Sem eles, o Windows irá gerar uma grande quantidade de erros e uma grande quantidade de funcionalidade não vai estar lá para você quando você reiniciar.

Video: Resolvendo erro 'Parou de funcionar' (sem desativar DEP)

Conclusão

Com um pouco de observação, um toque de tentativa e erro, e alguma compreensão de como os erros são gerados a partir de tempos de execução no sistema, problemas de software pode ser encontrado e resolvido sem recorrer a ferramentas de depuração complicados e logs.

Você correr em erros de execução em seu sistema? O que era necessário para resolvê-los? Deixe-me saber nos comentários abaixo.


Artigos relacionados