FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
[Al González] He mirado por encima tu código. Aunque lo mio es el C++, mas o menos lo entiendo.
Te basas en un Shared Memory tal y como propone Microsoft. Es posible que mi error esté en la brevedad de la existencia de esa memoria compartida. En tus objetos superglobales la existencia es la misma que la del propio objeto. Sin embargo Mi uso es simplemente durante el "traspaso" de información de un proceso al otro y luego lo destruyo. A esto se añade que la instancia servidora se autodestruye. Como por medio existe un mensaje Windows... Puede que se produzca algún error de sincronismo. Pienso que la solución puede pasar por la no autodestrucción de la instancia servidor, sino una destrucción desencadenada por un mensaje respuesta del cliente... |
#2
|
||||
|
||||
Pues he mirado un componente llamado TfisSharedMemory, lo he usado y obtengo el mismo problema que con mi clase: Al cerrar la aplicación obtengo una excepción de violación de memoria, pero sólo si lo ejecuto desde el debuger del Builder. Si la ejecución es directa desde S.O. no. Empiezo a dudar si realmente es un error o es una mala interpretación del mismo Builder.
El caso es que si es un verdadero error, el programa podría fallar en cualquier momento (corrupción de memoria) ¿que hago?. Si tenéis ideas.... |
#3
|
||||
|
||||
Hay que ubicar la línea de código que genera el error y a partir de ahí depurar tu aplicación para ver dónde está el problema.
¿Ya hiciste una prueba aislada? Es decir, una nueva aplicación en blanco con sólo lo indispensable para probar la memoria compartida. Quizá el problema esté en otra parte del código de tu aplicación. Saludos. Al. |
#4
|
||||
|
||||
Gracias Al, estoy en ello. Pero es difícil porque el error no salta en ninguna línea de código, sino al cerrar el programa. Lo que se puede debugear es el depurador en ensamblador, pero no código en C. Esa idea que apuntas es la que estoy barajando. Probablemente un error en punteros, que son los más difíciles de detectar y depurar cuando no sabes la línea.
|
#5
|
||||
|
||||
Error depurado. Funciona OK.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
out of memory con tablas en memoria | jrmanso | Firebird e Interbase | 8 | 20-06-2007 21:57:37 |
Sobre las perdidas de memoria (memory leak) | sitrico | OOP | 2 | 05-04-2007 19:30:54 |
Memoria compartida y semáforos | Duc | API de Windows | 2 | 03-02-2007 22:31:45 |
insuficiente memoria / insuficient memory | mmateo25v | Conexión con bases de datos | 6 | 23-03-2005 16:46:27 |
CreateFileMapping (memoria compartida) | Al González | API de Windows | 2 | 18-12-2003 15:04:44 |
|