Вопрос

У меня есть приложение Windows C ++, которое создает отображаемый файл памяти для растрового изображения, который часто обновляется. Я хотел бы получить доступ к этому отображению памяти файла, чтобы отобразить живое изображение в приложении Java. Как я могу это сделать?

Я знаю, что Filechannel можно сопоставить на память, но я не вижу, как получить доступ к файлу с отображенным памятью, созданным другим процессом.

Я уже использую JNA в моем приложении Java, я должен использовать его для доступа к стандартным функциям файлов с отображенной памятью Windows?

Или у вас есть какое-либо другое решение, чем в файл памяти, отображаемый в прямом эфире потока изображений в Java с изображения, созданного отдельной программой?

Это было полезно?

Решение 2

У меня есть финалы использованы jna. и то Платформа Библиотека, которую они предоставляют. То Kernel32. Пакет предлагает доступ к Createfilemapping. а также Mapviewoffile. Функции.

Другие советы

Есть образец кода здесь Это делает то, что вы хотите использовать JNI для моста из C ++ (Win32 Maphicated файлы) в Java. Может просто работать как есть, хотя некоторая очистка для безопасности и резьбы может потребоваться в зависимости от вашего сценария.

Файл отображения памяти по-прежнему файл. Вы можете прочитать его с помощью java.io, или вы могли бы использовать mapheapbytebuffer от java.nio, если вы хотите, чтобы он тоже был сопоставлен в Java.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top