обмен памятью между двумя приложениями

У меня есть два разных приложения Windows (два разных человека, которые пишут код). Один из них написан на C ++, а другой – на C #. Мне нужно как-то разделить данные в ОЗУ между ними. Нужно записывать данные, а другой читать только записанные данные. Что я должен использовать, чтобы сделать его наиболее эффективным и быстрым? Благодарю.

Вы можете использовать файлы с памятью .

Вот статья MSDN, описывающая, как их использовать.

Используйте объект сопоставления файлов Windows, который позволяет обмениваться памятью между процессами.

Вы можете использовать Named Pipes .

Именованный канал является именованным, односторонним или дуплексным каналом для связи между сервером каналов и одним или несколькими клиентами канала. Все экземпляры именованного канала имеют одно и то же имя канала, но каждый экземпляр имеет свои собственные буферы и дескрипторы и предоставляет отдельный канал для взаимодействия клиент / сервер. Использование экземпляров позволяет нескольким клиентам каналов одновременно использовать один и тот же канал.

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

Я рекомендую вам переконфигурировать его, чтобы он мог использовать связь на основе сообщений. Он более прочен и намного проще в использовании в .NET с автоматическим управлением памятью (по сравнению с общей памятью). Хотя медленнее.

Должно быть, это тот баран, которым вы делитесь? Если нет, вы можете написать свои данные, чтобы сказать XML-файл из одного приложения и прочитать xml с другим. Вы должны убедиться, что только одно приложение за раз читает с ресурса. В случае xml-файла вы можете создать файл в каталоге XML-файла с именем «xml_filename.lock», который, если присутствует, указывает, что файл XML используется другим приложением.

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

Interesting Posts

Можно ли использовать GPU для повышения производительности компьютера автоматически?

Расширьте раздел Windows 7, чтобы использовать свободное пространство перед ним.

Поле заголовка запроса. Access-Control-Allow-Headers не разрешено самостоятельно в предполетном ответе

Как удалить файл в Linux, чье имя похоже, что оно ТОЛЬКО дефис, как в "-"

Любой способ ссылки на настройки уведомлений Android для моего приложения?

Android Studio IDE: перерыв на исключении

«Тип не ожидается», используя DataContractSerializer – но это просто class, не смешные вещи?

Разница между объявленной строкой и выделенной строкой

Буферизованный и небуферизованный IO

Как установить Ubuntu 14.10 на новый Lenovo Ideapad g50-70

Добавление пути к командной строке Visual Studio

Spring web, security + web.xml + mvc dispatcher + Bean создается дважды

Как вызвать статический метод в JSP / EL?

Можно ли написать собственный текст в Google Maps API v3?

Основная HTTP-аутентификация на iPhone

Давайте будем гением компьютера.