Red de conocimiento informático - Espacio del host - ¿Por qué mi computadora no puede depurar en VB6.0? Dice que hay algún tipo de error... la memoria no se puede leer, ¡ayuda de expertos para confirmar la respuesta!

¿Por qué mi computadora no puede depurar en VB6.0? Dice que hay algún tipo de error... la memoria no se puede leer, ¡ayuda de expertos para confirmar la respuesta!

Error de que la memoria no se puede leer (o escribir): /yexiaocheng/blog/item/125684b16c3ae450092302d3.html

Los usuarios que utilizan sistemas operativos Windows a veces encuentran este tipo de mensajes de error: "La instrucción 0x se refiere a la memoria en 0x00000000, la memoria no puede ser leído o escrito" y la aplicación será cerrada. Si pregunta a algunos "expertos", la respuesta que obtiene suele ser un desdén indignado como "Windows es demasiado inestable". De hecho, este error no es necesariamente causado por la inestabilidad de Windows. Este artículo analizará brevemente las causas comunes de este error.

1. La aplicación no pudo verificar la asignación de memoria.

El programa necesita una parte de la memoria para guardar datos y necesita llamar a la "función función" proporcionada por el sistema operativo para hacerlo. aplicar Si la asignación de memoria es exitosa, la función La función devuelve la dirección del área de memoria recién abierta a la aplicación, y la aplicación puede usar esta memoria a través de esta dirección. Las aplicaciones pueden utilizar esta memoria a través de esta dirección. Esto se denomina "asignación de memoria dinámica" y las direcciones de memoria también se denominan "punteros" en programación.

La memoria no siempre está disponible y, en ocasiones, la asignación de memoria puede fallar. Cuando la asignación falla, la función del sistema devuelve un valor de 0. El valor de retorno de 0 no representa un puntero recién habilitado, sino que es una notificación del sistema a la aplicación de que se ha producido un error. Como aplicación, debe verificar si el valor de retorno es 0 después de cada solicitud de memoria. Si es 0, significa que ha ocurrido una falla y debe tomar algunas medidas para guardarlo, mejorando así la "robustez" del programa.

Si la aplicación no busca este error, "piensa" que el valor es un puntero libre a la memoria asignada y continúa usando esa memoria durante el resto de la ejecución. El área de memoria real en la dirección 0 almacena la "tabla de descriptores de interrupción" más importante del sistema informático y las aplicaciones nunca pueden usarla. En un sistema operativo desprotegido (como DOS), escribir datos en esta dirección provocará un bloqueo inmediato, mientras que en un sistema operativo robusto (como Windows), la operación será detectada inmediatamente por el mecanismo de protección del sistema, lo que provocará que el sistema operativo Forzar el cierre de la aplicación infractora para evitar que se expanda. En este caso, se produce el error "Escribir en la memoria" anterior y muestra la dirección de memoria a la que se hace referencia como "0x00000000".

Hay muchos motivos por los que falla la asignación de memoria, incluida memoria insuficiente, discrepancia en la versión de la función del sistema, etc. Por lo tanto, este tipo de falla en la asignación es más común después de que el sistema operativo se ha utilizado durante mucho tiempo, se han instalado varias aplicaciones (incluidos programas de virus que se han "instalado" involuntariamente) y una gran cantidad de parámetros y archivos del sistema. han sido cambiados.

2. La aplicación hace referencia a un puntero de memoria anormal debido a su propio error.

En aplicaciones que utilizan asignación dinámica, a veces habrá una situación en la que el programa intenta leer o escribir un sección Memoria que "debería estar disponible", pero por alguna razón el puntero que se esperaba que estuviera disponible ya no está disponible. Esto podría ser que el programa "se olvide" de pedirle al sistema operativo que asigne memoria, o podría ser que el programa mismo cancele el registro de la memoria en algún momento sin "notarse", etc. El sistema recuperará memoria. Una vez que el sistema recupera la memoria no registrada, sus derechos de acceso ya no pertenecen a la aplicación. Por lo tanto, las operaciones de lectura y escritura también activarán el mecanismo de protección del sistema. El único resultado para un programa que intenta "violar la ley" es. será cancelado y todos los recursos serán reclamados. ¡Las leyes del mundo de la informática son aún más efectivas y estrictas que las leyes de los humanos!

Situaciones como ésta son errores en el propio programa y normalmente puedes reproducir el error en una secuencia específica de operaciones. Los punteros no válidos no siempre son 0, por lo que la dirección de memoria en el mensaje de error no es necesariamente "0x00000000", sino algún otro número aleatorio.

Si el mensaje de error anterior aparece con frecuencia en el sistema, las siguientes sugerencias pueden resultar útiles:

1. Compruebe si hay troyanos o virus en el sistema. Estos programas a menudo modifican irresponsablemente el sistema para lograr el propósito de controlarlo, provocando anomalías en el sistema operativo. Siempre debe fortalecer su conciencia sobre la seguridad de la información y nunca sentir curiosidad por los programas ejecutables de origen desconocido.

2. Actualice el sistema operativo para que el programa de instalación del sistema operativo vuelva a copiar la versión correcta de los archivos del sistema y corrija los parámetros del sistema. A veces puede haber errores en el propio sistema operativo, así que tenga cuidado al instalar las actualizaciones publicadas oficialmente.

3. Pruebe una nueva versión de la aplicación.

Esto se debe a un error del programa. Puede cambiar la configuración del programa o reinstalarlo.

Creo que ha visto que algunos internautas incluso han reinstalado el sistema repetidamente debido a frecuentes mensajes de error. Supongo que el usuario medio no entenderá la complejidad de los códigos hexadecimales. Esos son solo para que los estudien los investigadores de Microsoft Research Asia (es broma).

3. Software o Hardware

Al ejecutar ciertos programas, en ocasiones aparecerá un mensaje de error de memoria y el programa se cerrará.

La instrucción "0x" se refiere a la memoria "0x". La memoria no se puede "leer"

La instrucción "0x" se refiere a la memoria "0x" y la memoria no se puede "escribir"

La instrucción "0x" se refiere a "0x" " Memoria, la memoria no se puede "leer"

La instrucción "0x" se refiere a la memoria "0x", la memoria no se puede "escribir"

No sé si ¿Has encontrado este problema similar? (El contenido después de 0x puede ser diferente)

Mire detenidamente el contenido después de 0x. ¿Sus códigos de error son diferentes? Pero sus problemas pueden ser los mismos. Hay dos razones para este mensaje de error. La primera es por razones de hardware, es decir, hay un problema con la memoria; la segunda es por razones de software, y hay muchos problemas de software;

1. Primero, el hardware:

En términos generales, el hardware de la computadora no es complicado. La posibilidad de que haya problemas de memoria es poco probable (a menos que su memoria sea realmente un desastre). Las razones principales son las siguientes:

(1) El módulo de memoria está roto (principalmente memoria de segunda mano);

(2) La memoria utilizada tiene problemas de calidad

(3) La parte del dedo dorado de la memoria insertada en la placa base tiene demasiado polvo

(4) Uso; diferentes memorias incompatibles causadas por marcas y diferentes capacidades;

(5) Problemas de disipación de calor causados ​​por el overclocking;

Puedes usar el software MemTest para verificar la memoria, que puede verificar minuciosamente la Estabilidad del sexo de la memoria.

Si tienes memoria dual y módulos de memoria mixtos de diferentes marcas, o compraste memoria de segunda mano, cuando ocurre este problema, debes verificar si hay algún problema con la memoria o si es incompatible con otros equipos.

2. Si no existe ninguna de las situaciones anteriores, entonces tenemos que resolver el problema desde el lado del software.

En primer lugar, expliquemos brevemente el principio: hay un lugar en la memoria para almacenar datos llamado búfer. Cuando el programa coloca los datos en una ubicación determinada, se producirá un desbordamiento debido a espacio insuficiente. Por ejemplo: un balde sólo puede contener un kilogramo de agua. Cuando le pones dos kilogramos de agua, se desbordará. El sistema lo mostrará en la pantalla. Este tipo de problema ocurre a menudo en Windows2000 y Condition. Esto también puede deberse a una mala compatibilidad entre los dispositivos de hardware.

Al mismo tiempo, debido a que una sección de la memoria está protegida cuando el sistema se está ejecutando, otros programas de usuario no pueden acceder a la memoria. Cuando los programas de usuario leen ilegalmente estos espacios de memoria, también se producirán tales errores.

Cuatro ejemplos:

1. Pregunta: La instrucción "08ba9ef" apunta a la memoria "0x03713644", que no se puede "leer". Para finalizar el programa, haga clic en Aceptar.

Respuesta: Se produjo un error en IE y es necesario restablecer IE.

(1) Abra la ventana "Ejecutar" en el menú "Inicio", ingrese "regsvr32 actxprxy.dll" y luego "Aceptar". Aparecerá un cuadro de diálogo que indicará "DllRegisterServer en actxprxy.dll". tuvo éxito" y haga clic en "Aceptar" nuevamente.

(2) Abra la ventana "Ejecutar" nuevamente y escriba "regsvr32 shdocvw.dll

(3) Abra la ventana "Ejecutar" nuevamente y escriba "regsvr32 oleaut32.dll

(4) Abra la ventana "Ejecutar" nuevamente y escriba "regsvr32 actxprxy.dll

(5) Abra la ventana "Ejecutar" nuevamente y escriba "regsvr32 actxprxy.dll

( 6) Abra la ventana de ejecución nuevamente y escriba "regsvr32 actxprxy.dll

(5) Abra la ventana de ejecución nuevamente y escriba "regsvr32 mshtml.dll

(6) Abra la ventana Ejecutar nuevamente y escriba "regsvr32 msjava.dll

(7) Abra la ventana Ejecutar nuevamente y escriba "regsvr32 browserui.dll

(10) Abra la ventana "Ejecutar" nuevamente y escriba "regsvr32 browserui.dll

(8) Abra la ventana "Ejecutar" nuevamente y escriba "regsvr32 urlmon.dll

2. La instrucción "0x70dcf39f" se refiere a "0x00000000. " memoria. Esta memoria no se puede "leer". Para finalizar el programa, haga clic en Aceptar.

Respuesta: Cuando cierres este mensaje, Internet Explorer también se cerrará. Solución: utilice un parche del sistema para reparar o actualizar Internet Explorer. Asegúrese de que su IE esté actualizado a 6.0.

3. P: RealOne Gold tiene un error al apagarse. Solía ​​​​ejecutarse normalmente, pero recientemente, cada vez que se apaga, aparece una instrucción "0xffffffffffff" que hace referencia a la memoria "0xffffffffffff". Esta memoria no se puede "leer".

Respuesta: Este problema ocurre cuando el método de entrada utilizado es Microsoft Pinyin Input Method 2003 y la barra de idioma está oculta (no hay problema cuando no está oculta) y RealOne está cerrado, por lo que el idioma se puede mostrar antes de cerrar RealOne. bar o utilizar cualquier otro método de entrada como método de entrada actual para resolver este problema.

4. Pregunta: La instrucción "Ox77f5cdO" se refiere a la memoria "Oxffffffffffffffff" y no se puede "leer". Para finalizar el programa, haga clic en "Leer".

Respuesta: Haga doble clic en el acceso directo del juego y se producirá un error del programa Client.dat. Solución: reinstale los controladores más recientes para su tarjeta gráfica, luego descargue e instale DirectX 9.0.

5. Pregunta: El comando "0x772b548f" hace referencia a la memoria "0x00303033" y no se puede "escribir". programa, haga clic en Aceptar.

Respuesta: QQ se desconectó automáticamente. Cuando lo abrió nuevamente, descubrió que se le habían enviado más de una docena de mensajes. Solución: Este es un ERROR de la otra parte al usar QQ, enviar códigos especiales y cometer errores de QQ. Siempre que aplique un parche o actualice a la última versión, todo estará bien.

6. Pregunta: A los pocos minutos de abrir el navegador IE, aparecerá el comando "0x70dcf39f" en la memoria. Esta memoria no se puede "leer". Para finalizar el programa, haga clic en el cuadro de mensaje "Aceptar". Después de hacer clic en "Aceptar", aparece el cuadro de mensaje "Se ha producido un error interno y la ventana que está utilizando está a punto de cerrarse". Una vez que se cierra el mensaje, Internet Explorer también se cierra.

Respuesta: Repare o actualice Internet Explorer y parcheelo. Una solución que he visto es actualizar de Win2000 a Win2000, lo que esencialmente restaura el sistema a su estado original.

Por ejemplo, si su IE se actualizó a 6.0, después de actualizarse, será reemplazado por IE 5.0.

7. Haga doble clic en el archivo "AutoRun.exe" en el CD de Windows. No se puede "escribir en esta memoria", para finalizar el programa haga clic en "Aceptar", pero funciona bien en Windows 98.

Respuesta: Esto puede ser un problema de compatibilidad del sistema. Para WinXP, haga clic derecho en el archivo "AutoRun.exe", Propiedades, Compatibilidad, seleccione el elemento "Ejecutar este programa en modo de compatibilidad" y seleccione "Windows 98/Me". "En Win2000, si hay un parche de SP, simplemente inícielo, ejecútelo y escriba: regsvr32 c:\winnt\apppatch\slayerui.dll. Haga clic derecho y la opción de compatibilidad también aparecerá en las propiedades.

8, P: Mi Haowei Super Jieba no se puede reproducir desde que me conecté. Cada vez aparece "0x060692f6" (cambia cada vez). La referencia del comando es "0xff000011". el programa, presione OK.

Respuesta: Intente reinstalar Haowei Super Jieba. Si aún no funciona después de la reinstalación, puede descargar la versión correspondiente del parche desde el sitio web oficial y probarlo. Si aún no funciona, solo puedes cambiar a otro jugador. Pruébalo.