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

  • Peter Holmes
  • 0
  • 5161
  • 1270
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 la conexión de agujeros de seguridad en el código compartido cuando se encuentran, ya que necesita ser parcheado en menos lugares y no requiere que todas las aplicaciones se vuelvan a compilar.

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

La pregunta de nuestro lector:

Cómo solucionar un problema de Windows Vista 32 bits C: \ Windows \ explorer.exe en un Dell Inspiron 530?

Después de hacer clic en el botón Aceptar en el cuadro de 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 la unidad C, D y, a veces, a la unidad E cuando intente acceder a ellas. desde mi computadora.

Corriendo sfc / scannow no encuentra ningún error Descargué actualizaciones de los sitios web de Dell y Microsoft que intentaban solucionar este problema. También he instalado el paquete redistribuible de Microsoft Visual C ++ 2010 (x86). La PC está completamente actualizada según Windows Update.

Respuesta de Bruce:

Nota: Las discusiones sobre el Explorador de Windows 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

Explorador de Windows es el shell y se ejecuta como el proceso explorer.exe como se ve en el Administrador de tareas o el Explorador de procesos de Sysinternals Explorador de procesos: el reemplazo más poderoso del administrador de tareas [Windows] Explorador de procesos: el reemplazo más poderoso del administrador de tareas [Windows] Seamos honestos, Windows El Administrador de tareas no es tan bueno para comprender y administrar los procesos que se ejecutan en su computadora. Incluso en Windows 8, donde se ha mejorado mucho, el administrador de tareas no puede acercarse a ... 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 corregir errores de archivos DLL faltantes Cómo corregir errores de archivos DLL faltantes utilizados para implementar hojas de propiedades, controladores de propiedades, controladores de vista previa, menús contextuales y muchos otros elementos que usa en el Explorador de Windows todos los días.

Concha extensible

Las extensiones de Shell permiten a los programadores agregar fácilmente funcionalidad al Explorador de Windows escribiendo una DLL para realizar la tarea y registrando 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 te enfrentaste a un archivo .rar y te preguntaste cómo abrirlo? Afortunadamente, administrar archivos ZIP y otros archivos comprimidos es simple con las herramientas adecuadas. Aquí está lo que necesitas saber. agrega un submenú al menú contextual estándar, que brinda acceso rápido a las tareas de manejo de archivos, Hard Disk Sentinel Vigile su estado de HDD y SSD con Hard Disk Sentinel Vigile su estado de HDD y SSD con Hard Disk Sentinel ¿Alguna vez tuvo 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 sea probable su muerte, es un primer paso. agrega superposiciones de íconos a los íconos de unidad estándar, para que pueda ver el estado de la unidad de un vistazo, y HashTab agrega una nueva hoja de propiedades, para calcular y mostrar los hash del archivo seleccionado.

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

Proceso predeterminado de instancia única

Windows Explorer está escrito para ser capaz de ejecutarse como dos procesos separados, pero, en su configuración predeterminada, solo ejecutará una única instancia. Cuando se ejecuta por primera vez como parte del proceso de inicio, crea el entorno de escritorio de Windows. Ejecutarlo nuevamente crea un nuevo hilo en el proceso existente, que muestra la ventana familiar 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 al resolver problemas. Un error crítico o una excepción no controlada en el código que se ejecuta en el proceso explorer.exe, incluidos los servidores en proceso proporcionados por las DLL, hará que todo el entorno de escritorio se caiga..

En la mayoría de los casos, el proceso de 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í, ve a Archivo> Nueva tarea (Ejecutar ...)> tipo explorer.exe> ​​Aceptar para reiniciar el proceso.

Esto se puede evitar con un simple cambio. Abierto Explorador de Windows> Organizar> Carpeta y opciones de búsqueda en Vista / 7. Para Windows 8 y posterior, abra Explorador de archivos> Ver> Opciones> Cambiar carpeta y opciones de búsqueda. Selecciona el Ver pestaña y verifica Iniciar ventanas de carpetas en un proceso separado.

Cambiar esta configuración aísla su proceso de escritorio de todas las otras ventanas del Explorador de Windows que tiene abiertas. Si alguna de esas ventanas de Explorer falla, su escritorio permanecerá indemne.

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

Microsoft Visual C ++ Runtime Library 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 recién construida a través de Windows 10 tendrá la versión 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 de tiempo de ejecución

Cuando se encuentra un error o una excepción en un fragmento de código, idealmente se manejará lo antes posible en el procedimiento que se está ejecutando actualmente, y se corregirá o permitirá una falla graciosa. Si el error no se maneja 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 este caso. 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 el propio 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 pudo, completar la vista de lista.
  • La imposibilidad de acceder a las unidades después de que el escritorio ha reaparecido, puede indicar que otro proceso tiene uno o más de esos dispositivos bloqueados, evitando así el acceso desde el proceso explorer.exe recién creado.
  • Corriendo sfc / scannow y obtener un estado de salud limpio, deja caer los recursos protegidos de Windows al final de la lista para su consideración. Otras causas son mucho más probables.

Las soluciones están en

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

Búsqueda de Windows

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

prensa Win + R> tipo services.msc> OK para iniciar la consola de administración con el módulo de servicios. Desplácese hacia abajo hasta Windows Search 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.

El problema más común es el “Reinicie el servicio después de:” ajuste. Este error ocurre con frecuencia 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 CLSID Modified Time y haga clic en el encabezado para ordenar en este campo. Si desea excluir los módulos proporcionados 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 ir a Archivo> Deshabilitar elementos seleccionados, o haga clic en el icono LED rojo en la barra de herramientas. Idealmente, esto debería hacerse uno a la vez.

Prueba para ver si los síntomas persisten. Si lo hacen, puede volver a habilitar las extensiones previamente deshabilitadas utilizando 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 encontrar la que causa el problema..

Reparar / reinstalar redistribuibles de VC ++

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.

Al mirar los programas instalados en mi sistema (Panel de control> Programas y características), muestra todas las versiones 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.

Puede encontrar las descargas más recientes para las versiones compatibles de Visual C ++ de Microsoft. Para nuestros propósitos aquí, solo debe preocuparse por aquellos que están etiquetados como “redistribuible” paquetes Los enlaces que se clasifican como service packs son para las herramientas de programación, no simplemente para los tiempos de ejecución. Solo necesitará los que están listados actualmente en los programas instalados en su sistema. Instalar 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 verifica si su computadora tiene instaladas las actualizaciones más recientes para estos paquetes, pero no verifica para asegurarse de que esté instalada correctamente y que no se haya dañado. Los instaladores pueden verificar que todos los archivos de tiempo de ejecución sean los correctos y que todas las entradas del registro sean correctas.

Una vez que haya descargado los instaladores apropiados, ejecútelos en el sistema. Las versiones de 2005 le pedirán que acepte un acuerdo de licencia antes de reinstalar 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 la máquina 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 funcionalidades no estarán disponibles 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, se pueden encontrar y resolver problemas de software 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.




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.