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?

Était-ce utile?

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

Il y a un exemple de code qui fait ce que vous voulez utiliser JNI à un pont de C ++ (mémoire Win32 fichiers mappé) à Java. Travail pourrait tout est, bien que certains nettoyage pour la sécurité et le filetage peut être nécessaire en fonction de votre scénario.

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top