![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problema de Access Violation en Delphi 7
![]() Estoy migrando un driver de POS de una impresora fiscal de PowerBasic 8.0 a Delphi 7, y en la rutina de enviar los comandos a la impresora obtengo siempre alguno de estos errores: Project C:\Developers\Impresora Fiscal\Delphi 7 PrnFiscal\POSPrnFiscalDLL32.EXE faulted with message: 'access violation at 0x0629f46c: read of address 0x0629f46c'. Process Stoped. Use Step or Runtime to continue. ![]() Project C:\Developers\Impresora Fiscal\Delphi 7 PrnFiscal\POSPrnFiscalDLL32.EXE raised too many consecutive exceptions access violation at 0x00000000: read of address 0x00000000. Process Stoped. Use Step or Runtime to continue. ![]() Considere varias causas para este error y todas fueron descartadas en base a pruebas, las causas descartadas fueron: 01.- Problemas de Instalación con Delphi 7 Enterprise. 02.- Problemas de Update con Delphi 7 Enterprise. 03.- Problemas con Services de WinXP 04.- Problemas con programas en el Startup de WinXP 05.- Problemas con la App Host hecha en VB6 (Se hizo un host básico en Delphi 7 con los mismos resultados) 06.- Problemas con el registro de WinXP 07.- Problemas con la inicialización de la estructura DCB La rutina ejecuta completamente sin errores, pero al finalizar la última instrucción (La cual ejecuta sin ningun problema, dado que si agrego una nueva instrucción al final de esta como por ejemplo un try..except..end o un simple exit, todas se ejecutan correctamente), da el error antes mencionado. Como dije anteriormente, la misma rutina funciona perfectamente en PowerBasic 8.0, el problema parece ser en mi humilde opinión al liberar los recursos asignados a la función en cuestión SendCmd(). Investigue varias posibles causas de los AV en la pagina web: http://delphi.about.com/od/objectpas.../aa052201a.htm, sin ningun resultado positivo. ![]() He revisado los mensajes de Access Violation en este site (http://www.clubdelphi.com) y no he podido encontrar ninguna información que me ayude a eliminar el error. Lo cierto es que cada mensaje que he leido me ha dado ideas, pero lamentablemente ninguna ha funcionado hasta ahora. Puedo decirles que llegue al punto de hacer un debub de cada una de las unidades que usa el programa sin ningún resultado. Se que el error se debe a un acceso indebido a una posición de memoria, y parece que lo más comun es por el uso de objetos que no se han creado o que ya han sido liberados, pero ese no es mi caso. Lo fundamental de este código es lo siguiente: 1.- No usa BD 2.- Hace uso de las API WIN32 para el manejo del puerto serial, via Overlapped (Aunque falla de igual forma en forma sincronizada). 3.- Esta implementado en forma de DLL. 4.- No hace uso de OOP (De forma directa). 5.- El programa original funciona sin ningún problema en PowerBasic 8.0 6.- Es 100% programatico, no hace uso de DLLs externos, ActiveX o llamadas a ningún tipo de programa externo. 7.- La comunicación con el printer fiscal solo hace uso de las lineas TX y RX, dado que asi esta implementado por hardware, el resto de las lineas del puerto serial rs232 no son utilizadas. 8.- La versión de Delphi que utilizo es Delphi 7.0 Enterprise (Build 8.1), pero el error persiste aun uso el Delphi 7.0 Entreprise sin el Update Pack 7.1 9.- El ambiente de desarrollo es un Pentium III a 1 Ghz, 1GB de Ram, 120 GB de HD con Windows XP SP2. ![]() La rutina es la siguiente: Nota: Las rutinas que se muestran en el código más abajo y que no he enviado para minimizar la cantidad de código a revisar y evitar la sobresaturación de información, ejecutan sin ningún problema y los typos de datos Buffer_n son UDT del tipo: Buffer_n = Record b : Array[0..n-1] of Byte; end;
![]() Última edición por nlsgarcia fecha: 18-02-2007 a las 00:25:49. |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema de Access Violation | johurgi | Varios | 3 | 18-07-2006 19:04:58 |
Delphi 7 Access Violation at 0x7c91edcd | Barzaugc | Varios | 2 | 03-06-2005 05:03:24 |
Delphi 7 Access Violation at 0x7c91edcd | Barzaugc | Varios | 1 | 03-06-2005 02:34:25 |
RTL70.BPL - Access violation en delphi 7 | zylmig | Varios | 1 | 22-05-2005 20:15:48 |
Problema con Quick report 'Access Violation at address 00575B9B in module' | danielcordovahe | Varios | 3 | 13-05-2005 00:51:08 |
![]() |
|