Cómo reparar errores de tiempo de ejecución de Windows Visual C ++

Los errores de Visual C ++ son un problema común para los usuarios de Windows. ¿Pero sabes cómo solucionarlos?

Los errores de Visual C ++ son un problema común para los usuarios de Windows.  ¿Pero sabes cómo solucionarlos?
Anuncio

Las bibliotecas compartidas en Windows hacen que la programación sea mucho más eficiente para el programador que no necesita reinventar la rueda cada vez que necesita realizar una tarea común. También facilitan el cierre de los agujeros de seguridad en el código compartido cuando se encuentran, ya que es necesario parchearlo en menos lugares y no requiere que se vuelva a compilar cada aplicación.

A pesar de estos aspectos positivos, pueden plantear sus propios problemas cuando intentan solucionar la causa raíz de los mensajes de error que pueden generar.

Nuestra pregunta del lector:

¿Cómo puedo arreglar un problema de Windows Vista 32-bit C: \ Windows \ explorer.exe en un Dell Inspiron 530?

Después de hacer clic en el botón Aceptar en el diálogo que se muestra en la captura de pantalla, la pantalla se oscurecerá y volverá a funcionar normalmente, pero no me permitirá acceder a C, D y, a veces, al disco E al intentar acceder a ellos. desde mi computadora

Ejecutando sfc / scannow no encuentra ningún error. Descargué actualizaciones de los sitios web de Dell y Microsoft tratando de solucionar este problema. También instalé el paquete redistribuible de Microsoft Visual C ++ 2010 (x86). La PC está completamente actualizada de acuerdo con Windows Update.

Error de tiempo de ejecución

Respuesta de Bruce:

Nota: las discusiones sobre Windows Explorer en Windows 7 y versiones anteriores también se aplican al Explorador de archivos en Windows 8 y versiones posteriores. Si hay una diferencia notable entre ellos, se indicará explícitamente.

El shell de Windows

Windows Explorer es el shell y se ejecuta como el proceso explorer.exe como se ve en el Administrador de tareas o Process Explorer de Sysinternals Process Explorer - El más poderoso reemplazo de Task Manager [Windows] Process Explorer - El más potente reemplazo de Task Manager [Windows] Seamos honestos, el Administrador de tareas de Windows no es tan bueno para entender y administrar los procesos que se ejecutan en su computadora. Incluso en Windows 8, donde se mejoró mucho, el administrador de tareas no puede acercarse al ... Leer más. Al igual que muchos otros programas de Windows, toda la funcionalidad proporcionada por el shell no está incorporada en ese único archivo ejecutable. Hay docenas de otros archivos EXE y DLL Cómo solucionar errores de archivos DLL perdidos Cómo solucionar errores de archivos DLL perdidos Más Se utiliza para implementar hojas de propiedades, controladores de propiedades, controladores de vista previa, menús contextuales y muchos otros elementos que utiliza en el Explorador de Windows cada día.

Shell extensible

Las extensiones de Shell permiten a los programadores agregar fácilmente la funcionalidad al Explorador de Windows al escribir una DLL para realizar la tarea y registrar la DLL con el sistema operativo, de modo que Explorer sepa dónde encontrar el código para realizar la tarea. Por ejemplo, 7-Zip Cómo extraer archivos de ZIP, RAR, 7z y otros archivos comunes Cómo extraer archivos de ZIP, RAR, 7z y otros archivos comunes ¿Alguna vez se encontró con un archivo .rar y se preguntó cómo abrirlo? Afortunadamente, administrar archivos ZIP y otros archivos comprimidos es simple con las herramientas adecuadas. Aquí está lo que necesitas saber. Leer más agrega un submenú al menú contextual estándar, brindando acceso rápido a las tareas de manejo de archivos, Hard Disk Sentinel Vigila la salud de su disco duro y SSD con el disco duro Sentinel Vigila la salud de su disco duro y SSD con el disco duro Sentinel ¿Alguna vez ha tenido una falla en la unidad? Lamentablemente, no existe una panacea para evitar daños en el hardware. Pero monitorear su HDD o SSD, para actuar cuando su muerte sea probable, es un primer paso. Leer más agrega superposiciones de iconos a los íconos de unidad estándar, para que pueda ver el estado de la salud de la unidad de un vistazo, y HashTab agrega una nueva hoja de propiedades para calcular y visualizar los valores hash del archivo seleccionado.

Menú de contexto

Muchas de estas extensiones de shell se implementan como servidores en proceso de Modelo de Objetos Componentes (COM). Esto significa que cuando un proceso, en este caso Windows Explorer, usa la extensión, no aparecerá en el Administrador de tareas o en el Explorador de procesos como un proceso separado con su propio identificador de proceso (PID). En su lugar, se está ejecutando dentro del proceso de llamada a explorer.exe.

Proceso predeterminado de instancia única

Windows Explorer está escrito para poder ejecutarse como dos procesos separados, pero, en su configuración predeterminada, solo ejecutará una sola instancia. Cuando se ejecuta por primera vez como parte del proceso de inicio, crea el entorno de escritorio de Windows. Al ejecutarlo de nuevo se crea un nuevo hilo en el proceso existente, que muestra la familiar ventana de administración de archivos, en lugar de comenzar un nuevo proceso.

Este comportamiento permite una huella de memoria reducida, pero también puede aportar su propio pequeño giro cuando se resuelven problemas. Un error crítico o una excepción no controlada en el código que se está ejecutando en el proceso explorer.exe, incluidos los servidores en proceso provistos por las DLL, hará que todo el entorno de escritorio se caiga.

En la mayoría de los casos, el proceso del escritorio se reiniciará automáticamente. Si no se reinicia, aún debería poder usar Ctrl-Shift-Esc para abrir el Administrador de tareas. Desde allí, vaya a Archivo> Nueva tarea (Ejecutar ...)> escriba explorer.exe> ​​Aceptar para reiniciar el proceso.

Esto se puede evitar con un simple cambio. Abra Windows Explorer> Organizar> Carpeta y busque opciones en Vista / 7. Para Windows 8 y versiones posteriores, abra Explorador de archivos> Ver> Opciones> Cambiar carpeta y opciones de búsqueda . Seleccione la pestaña Ver y marque Iniciar ventanas de carpeta en un proceso separado .

opciones de carpeta

Al cambiar esta configuración, se aísla el proceso de su escritorio de todas las demás ventanas del Explorador de Windows que haya abierto. Si alguna de esas ventanas Explorer se bloquea, su escritorio permanecerá intacto.

Biblioteca de tiempo de ejecución de Microsoft Visual C ++ (CRT)

La biblioteca en tiempo de ejecución de Microsoft Visual C ++ proporciona rutinas para programar Windows que automatizan muchas tareas, como entrada / salida, manipulación de archivos, asignación de memoria, llamadas al sistema y muchas otras.

Cada instalación de Windows tendrá al menos dos versiones diferentes de CRT instaladas. Una máquina Vista SP2 a Windows 10 recién construida tendrá ambas versiones 8.0 y 9.0 (VC 2005 y VC 2008, respectivamente) presentes. Cuando se instala software adicional, también puede incluir versiones más recientes de los tiempos de ejecución, dependiendo de qué versión de Visual C ++ se utilizó para crear el programa o cualquiera de sus componentes.

Errores en tiempo de ejecución

Cuando se encuentra un error o una excepción en un fragmento de código, idealmente se tratará tan pronto como sea posible en el procedimiento que se está ejecutando actualmente, y se corregirá o se permitirá una falla elegante. Si el error no se gestiona localmente, se pasa al código que llamó al código que se está ejecutando actualmente, y el proceso continúa hasta que se maneja la excepción. Si completa su ejecución hasta la parte superior de la cadena y aún no se maneja, generará un error de tiempo de ejecución como se ve arriba.

Cuando el usuario hace clic en el botón Aceptar, el proceso finalizará. Si el programa tiene un comportamiento de falla definido, como servicios críticos, o su estado de ejecución es monitoreado por otro proceso, puede reaparecer automáticamente. Esto es lo que está sucediendo en esta instancia. La pantalla se apaga cuando finaliza el proceso explorer.exe, luego el escritorio vuelve cuando se reinicia el proceso explorer.exe.

Aunque el mensaje de error anterior indica claramente que proviene del proceso explorer.exe, no es probable que sea un problema con explorer.exe. Es mucho más probable que el culpable se encuentre en otra parte, como una extensión de terceros que esté siendo utilizada por Explorer.

Otras Consideraciones

Con la descripción de nuestro lector del problema anterior, hay un par de elementos adicionales que debemos tener en cuenta:

  • En el momento del bloqueo, Explorer intentaba, pero no podía, llenar la vista de lista.
  • La imposibilidad de acceder a las unidades después de que el escritorio haya reaparecido, puede indicar que otro proceso tiene uno o más de esos dispositivos bloqueados, lo que impide el acceso desde el proceso recién creado explorer.exe.
  • Ejecutar sfc / scannow y obtener una buena salud, deja los recursos protegidos de Windows al final de la lista para su consideración. Otras causas son mucho más probables.

Las reparaciones están en

En este caso particular, hay tres áreas donde buscaría una solución. El primero involucra el servicio de búsqueda de Windows, el segundo implica la investigación de las extensiones del shell, y el último sería el de los propios redistribuibles de VC ++.

Búsqueda de Windows

Debido a que la captura de pantalla original muestra el bloqueo que ocurre cuando Explorer está intentando llenar la vista de lista, es posible que el servicio de búsqueda de Windows bloquee el acceso a los recursos requeridos. He visto esto suceder cuando el servicio falla y no tiene los parámetros de reinicio correctos.

Presione Win + R> escriba services.msc> OK para iniciar la consola de administración con el módulo de servicios. Desplácese hacia abajo a Búsqueda de Windows y haga doble clic en la entrada para abrir el cuadro de diálogo Propiedades. Asegúrese de que la configuración en la pestaña Recuperación coincida con la imagen a continuación.

windows-search-properties

El problema más común es la configuración "Reiniciar el servicio después de". Este error ocurre frecuentemente cuando esta configuración no es cero.

Extensiones problemáticas de Shell

Descargue ShellExView de Nirsoft para la arquitectura de su sistema (x86 o x64), instálelo y ejecútelo. Tomará un poco de tiempo examinar el sistema y llenar la tabla con datos. Desplácese hasta la columna Tiempo modificado de CLSID y haga clic en el encabezado para ordenar en este campo. Si desea excluir los módulos provistos por Microsoft, puede ir a Opciones> Ocultar todas las extensiones de Microsoft . Para aquellos que usan una versión de Windows de 64 bits, es posible que también desee mostrar las extensiones de 32 bits en el sistema yendo a Opciones> Mostrar extensiones de Shell de 32 bits .

Busque extensiones que se agregaron justo antes de que comenzaran los síntomas. Seleccione uno o más y presione F7 o vaya a Archivo> Deshabilitar elementos seleccionados, o haga clic en el icono LED rojo en la barra de herramientas. Idealmente, esto debe hacerse de a uno por vez.

Pruebe para ver si los síntomas persisten. Si lo hacen, puede volver a habilitar la (s) extensión (es) previamente desactivada (s) usando F8, Archivo> Habilitar elementos seleccionados, o el icono de la barra de herramientas LED verde. Desde aquí, deshabilite una extensión diferente y repita el proceso de prueba hasta que encuentre la que está causando el problema.

Reparar / Reinstalar VC ++ Redistribuibles

Utilizo este como último recurso, si solo un programa está eliminando errores. Si tiene varios programas que tienen problemas con los errores de tiempo de ejecución de VC ++, puede probar esto primero.

Cuando miro los programas instalados en mi sistema ( Panel de control> Programas y características ), muestra cada versión de los paquetes redistribuibles (y algunas de sus actualizaciones) que van desde la versión 8 hasta la versión 12 (VC ++ 2005 a VC ++ 2013). Los tengo instalados debido a las herramientas de programación de Microsoft que uso. La mayoría de los usuarios no tendrán todos estos.

instalado-vcpp-redist

Puede encontrar las últimas descargas de versiones compatibles de Visual C ++ de Microsoft. Para nuestros propósitos aquí, solo debe preocuparse por aquellos que están etiquetados como paquetes "redistribuibles". Los enlaces que se clasifican como paquetes de servicio son para las herramientas de programación, no simplemente los tiempos de ejecución. Solo necesitará los que figuran actualmente en los programas instalados en su sistema. La instalación de otras versiones no ayudará en este caso. Los usuarios de sistemas operativos de 64 bits pueden necesitar las versiones x86 y x64 del CRT.

Windows Update comprueba si su computadora tiene instaladas las actualizaciones más recientes para estos paquetes, pero no comprueba que esté instalada correctamente y que no se haya roto. Los instaladores pueden verificar que todos los archivos de tiempo de ejecución sean los correctos y que todas las entradas de registro sean correctas.

Una vez que haya descargado los instaladores apropiados, ejecútelos en el sistema. Las versiones de 2005 le solicitarán que acepte un acuerdo de licencia antes de volver a instalar el paquete. Todos los demás tienen una GUI que le preguntará si desea reparar o desinstalar la instalación existente. En la mayoría de los casos, una operación de reparación solucionará cualquier problema.

Si desea probar el método más extremo, puede desinstalar los tiempos de ejecución, reiniciar el equipo y luego reinstalarlos. No recomiendo este método con los tiempos de ejecución de 2005 y 2008. Sin ellos, Windows generará muchos errores y una gran cantidad de funcionalidad no estará disponible para usted cuando reinicie.

Conclusión

Con un poco de observación, un toque de prueba y error, y cierta comprensión de cómo se generan los errores de los tiempos de ejecución en el sistema, los problemas de software se pueden encontrar y resolver sin recurrir a herramientas y registros de depuración complicados.

¿Te has encontrado con errores de tiempo de ejecución en tu sistema? ¿Qué se requería para resolverlos? Déjame saber abajo en los comentarios.

In this article