Pregunta

Tengo un windows c ++ aplicación que crea una memoria de archivo asignado para un mapa de bits que se actualiza con frecuencia. Quisiera acceso a este archivo de memoria asignada para mostrar la imagen en vivo en una aplicación Java. ¿Cómo puedo hacer eso?

Sé que FileChannel se puede asignar a la memoria, pero no puedo ver cómo acceder a un archivo de memoria asignada creado por otro proceso.

Ya utilizo JNA en mi aplicación Java, debería utilizarlo para la funcionalidad de archivos de mapeado acceso a la memoria estándar de Windows?

O ¿tiene alguna otra solución que el archivo de memoria asignada para mostrar una secuencia de imágenes en vivo en Java desde una imagen creada por un programa separado?

¿Fue útil?

Solución 2

he utilizado finaly JNA y el plataforma biblioteca que proporcionan. El Kernel32 acceso a las ofertas de paquetes a la CreateFileMapping y MapViewOfFile funciones.

Otros consejos

Hay un ejemplo de código aquí que hace lo que quiere utilizar JNI para tender un puente de C ++ (Win32 memoria mapeada archivos) a Java. Podría funcionar como es, aunque podría ser necesario algo de limpieza para la seguridad y roscado en función de su situación.

Un archivo mapeado en memoria sigue siendo un archivo. Se podía leerlo con java.io, o se puede utilizar un MappedByteBuffer de java.nio si quieres que la memoria mapeada-in de Java también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top