comment accéder à c ++ mémoire mappée fichiers en Java
-
28-09-2019 - |
Question
J'ai une fenêtre c ++ application qui crée un fichier mappé en mémoire pour un bitmap qui est fréquemment mis à jour. Je voudrais accéder à ce fichier mappé en mémoire pour afficher l'image en direct dans une application java. Comment puis-je faire?
Je sais que FileChannel peut être mis en correspondance avec la mémoire, mais je ne vois pas comment accéder à un fichier mappé mémoire créé par un autre processus.
J'utilise déjà la JNA dans mon application java, dois-je utiliser pour accéder à la mémoire standard de Windows fonctionnalité de fichiers mappés?
Ou avez-vous une autre solution que le fichier de mémoire mappée pour afficher un flux d'images en direct en Java à partir d'une image créée par un programme distinct?
La solution 2
J'ai utilisé et jna plateforme bibliothèque qu'ils fournissent. Le paquet Kernel32 annonces accès à la CreateFileMapping et MapViewOfFile fonctions.
Autres conseils
Un fichier de mémoire mappée est toujours un fichier. Vous pouvez le lire avec java.io, ou vous pouvez utiliser un MappedByteBuffer de java.nio si vous le voulez mémoire mappée en Java aussi.