Frage

Ich habe ein Fenster C ++ Anwendung, die ein Memory-Mapped-Datei für eine Bitmap erzeugt, die häufig aktualisiert wird. Ich würde wieder in diesem Speicher abgebildeten Datei zugreifen möchte das Livebild in einer Java-Anwendung angezeigt werden soll. Wie kann ich das tun?

Ich weiß, dass Filechannel in dem Speicher abgebildet werden kann, aber ich kann nicht sehen, wie eine Memory-Mapped-Datei von einem anderen Prozess erstellt zugreifen zu können.

Ich JNA bereits in meiner Java-Anwendung verwenden, soll ich es verwenden, um den Zugriff Standard-Windows-Speicher abgebildeten Dateien Funktionalität?

Oder haben Sie eine andere Lösung als die Memory-Mapped-Datei von einem Bild, das durch ein eigenes Programm erstellt einen Livebild-Stream in Java angezeigt werden?

War es hilfreich?

Lösung 2

Ich habe finaly verwendet jna und die Plattform Bibliothek, dass sie zur Verfügung stellen. Die Kernel32 Paket bietet Zugang der Create und MapViewOfFile Funktionen.

Andere Tipps

Es ist ein Codebeispiel hier das tut, was Sie wollen JNI verwenden zu Brücke von C ++ (Win32 Memory Mapped-Dateien) auf Java. Könnte funktionieren wie sie ist, obwohl einige Bereinigung für Sicherheit und Einfädeln könnte je nach Szenario benötigt werden.

Eine Memory-Mapped-Datei ist immer noch eine Datei. Man könnte es mit java.io lesen, oder Sie können eine MappedByteBuffer von java.nio verwenden, wenn Sie es auch in Java Memory-Mapped wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top