Не очень понятно, чего именно хочет добиться автор той темы. Он пишет о стеке, значит, вероятно он пытается организовать передачу данных Lua стека из библиотеки, запущенной в рамках процесса Quik в некий внешним процесс через mapped file. Это один из способов межпроцессного взаимодействия, наряду с shared memory, named pipes и другими, который можно использовать для таких целей.
Тем не менее, в его подходе есть архитектурный изъян. Он пытается передать данные стека сразу, без предварительной обработки, тем самым перенося особенности организации данных на второй процесс. Я бы поступил иначе. Гораздо более правильно организовать интерфейс между процессами через тот же memory mapped file, но более приближенный к предметной области, а всю работу по преобразованию данных в/из Lua реализовать внутри библиотеки, запускаемой квиком.
Другой недостаток этого подхода заключается в том, что все вышеперечисленные способы межпроцессного взаимодействия ограничены рамками одной операционной системы, и передать данные, процессу, запущенному на другой машине, не получится. Для этих целей лучше использовать сетевое взаимодействие.
-
Этот ответ был изменен 7 года, 7 месяцев назад от .