Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-02-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Memoria Compartida. Shared Memory

Voy a intentar ser breve.

He implementado una clase C++ para compartir memoria desde mas de una aplicación, según los consejos de Microsoft. La clase es muy simple, consta de un constructor que distingue entre servidor y cliente y una función que devuelve el Buffer de memoria compartida.

El uso que quería darle y para la que la diseñé era para pasar los parámetros de la linea de comandos de un programa, a otra instancia previa del mismo. De forma que el primero en crearse recibe un Mensaje de la segunda instancia para crear un objeto SaredMemory en modo cliente y leer lo que la primera instancia le coloca en el buffer, que también ha abierto como servidor. Después, el servidor se autodestruye y el cliente cierra su SharedMemory, pero antes copia el contenido en una memoria local.

Esto funciona. Se pasan los parámetros, se procesan y todo bien, salvo que al cerrar la aplicación (primera instancia, la otra ya no "vive") se produce un error de acceso a memoria.

No se si se debe a lo fugaz de la existencia de los objetos SharedMemory, o a la destrucción del servidor. El caso es que la memoria se pasa de una instancia a la otra, la copio y no se producen errores.

Se que existe un componente TSharedMemory que he descargado, aunque no lo he probado, quizás porque el mio no es realmente un componente sino una clase... Y porque debe existir desde la fase de diseño no siendo esta mi idea original.

¿Alguien tiene una explicación o tiene ideas que me puedan ayudar?.

Saludos.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 06:14:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi