¿Qué es la ‘Violación de acceso en la dirección de error de Delphi’ en Windows 10?
En este artículo, vamos a discutir cómo corregir la infracción de acceso en el error de dirección, la infracción de acceso en la dirección de error de Delphi en Windows 10/8/7. Se le guiará con pasos/métodos sencillos para resolver el problema. Comencemos la discusión.
‘Delphi’: Delphi es un software que utiliza el dialecto Delphi del lenguaje de programación Object Pascal y proporciona un entorno de desarrollo integrado (IDE) para el desarrollo rápido de aplicaciones de software de escritorio, móvil, web y consola, actualmente desarrollado y mantenido por Embarcadero Technologies. El compilador de Delphi genera código nativo para dispositivos basados en Microsoft Windows, MacOS, iOS, Android y Linux OS.
Sin embargo, varios usuarios de Delphi informaron que se enfrentaron a una “violación de acceso en la dirección de error de Delphi” cuando escribieron el programa, lo probaron y luego lo enviaron a todas partes. Este error indica cuando usa Delphi en cualquier desarrollo de software cuando el programa no puede enviar el programa probado. Podría considerar compilar su programa con la instrucción de compilación {$ D}: Delphi puede crear un archivo de imagen que ayude a localizar el código fuente para los errores de Violación de acceso.
El cuadro de diálogo Opciones de proyecto le ofrece especificar todo lo que necesita. Para el archivo de unidad, la información de depuración se registra en el archivo de unidad junto con el código de objeto de la unidad. El error de infracción de acceso en la dirección suele aparecer en medio de su trabajo en Delphi y provocó que pospusiera la resolución del problema. Ahora, sabrá cómo encontrar fácilmente la ruta exacta, el archivo doe de origen y la línea donde se produce la infracción de acceso en el error de dirección si solo se proporciona una dirección en conflicto como “Error de búsqueda-búsqueda…”. Aparece una infracción de acceso en la dirección del error de Delphi de la siguiente manera o similar.
“Infracción de acceso en la dirección <valor hexadecimal> en el módulo <nombre de la aplicación> Lectura de la dirección <valor hexadecimal>”
En Delphi IDE en su computadora con Windows, si su programa cumple con la información de depuración, puede ubicar la línea de código fuente que causó el error. La posible razón detrás del problema puede ser que el programa Delphi sea el uso de un objeto que no ha sido creado. Si habilita ‘Detener en excepciones de Delphi’ en la ventana de opciones del depurador, es posible que vea un mensaje que dice que se ha producido una infracción de acceso electrónico. EAccessViolation es la clase de excepción para errores de acceso a memoria no válidos.
¿Razón detrás de los errores y cómo corregir la infracción de acceso en la dirección de error de Delphi en una PC con Windows?
1: llamar a un objeto inexistente
Este problema puede ocurrir debido a que Delphi usa un objeto que no se ha creado o que no se ha publicado. Puede solucionar el problema asegurándose de que todos los objetos a los que acceda se creen primero. Por ejemplo, cuando una tabla se encuentra en un módulo de datos que no se ha creado, puede abrir la tabla en el evento OnCreate del formulario. En el siguiente código, después de llamar a un evento que se eliminó, aparece el error de infracción de acceso en la dirección:
var b:TBitmap;
comenzar
b:=TBitmap.Crear;
tratar
//Hacer algunas cosas en el objeto b Operación
por fin
b.gratis;
fin;
…
//Debido a que b ha sido liberado, aparecerá un error de violación de Acceso
b.Canvas.TextOut (0,0, ‘Esto es una infracción de acceso’);
fin;
2: Parámetros API inexistentes
Este error puede ocurrir si intenta pasar parámetros inexistentes a la función Win API. Puede solucionar el problema consultando la ayuda de Win API para ver la información del parámetro y el tipo de parámetro de esta llamada de función API.
3: Deja que Delphi se libere
Cuando un objeto es propietario de otro objeto, deja que elimine el trabajo por ti. Cuando finaliza la aplicación, libera el objeto de la aplicación, que libera todos los formularios. Por ejemplo, si crea automáticamente dos formularios al comienzo del programa, el siguiente código provocará una infracción de acceso en el error de dirección.
unidad Unidad1;
…
usa unidad2;
…
procedimiento TForm1.Call_Form2
comenzar
Formulario2.MostrarModal;
Form2.Libre;
//Aparecerá un error de violación de acceso
Formulario2.MostrarModal;
fin;
4: eliminar excepciones
Nunca debe eliminar los objetos de excepción temporales. El manejo de una excepción liberará automáticamente el objeto de excepción. Si libera manualmente el objeto de excepción, el programa intentará liberarlo nuevamente, luego aparecerá el error de Infracción de acceso en la dirección.
Cero:=0;
tratar
dummy:= 10/Cero;
excepto
en E: EZeroDivide hacer
MessageDlg (‘no se puede hacer con 0 Divisor!’, MtError, [mbOK], 0);
E.free.////Aparecerá un error de infracción de acceso
fin;
5: recuperar una cadena vacía
Si no lo sabe, una cadena vacía no tiene datos y si está intentando recuperar una cadena vacía, puede ver una infracción de acceso en el error de dirección.
vars: cadena;
comenzar
s: = ”;
s [1]: = ‘a’;
//Violación de acceso Aparecerá el error
fin;
6: Referirse directamente al puntero
Debe hacer referencia al puntero indirectamente; de lo contrario, cambiará la dirección del puntero y muchos destruirán otras unidades de almacenamiento.
Conclusión
Estoy seguro de que esta publicación lo ayudó en Cómo corregir la infracción de acceso en el error de dirección, Acceso Violación en la dirección de error de Delphi en Windows 10/8/7 con varios pasos/métodos sencillos. Puede leer y seguir nuestras instrucciones para hacerlo. Eso es todo. Para cualquier sugerencia o consulta, escriba en el cuadro de comentarios a continuación.