Показать сообщение отдельно
Старый 13.11.2016, 20:29   #17
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Не полная загрузка системы

Основная программа выделяет память для обмена и передаёт её адрес в качестве параметра командной строки для запуска второй программы.
Вторая программа запускается, парсит адрес памяти для обмена, начинает главный цикл. В цикле выполняется (блокирующая) функция из DLL; после каждого выполнения, результаты сохраняются в память для обмена.
В той же памяти для обмена можно выделить бит, для сигнализации о необходимости остановки: главная программа поднимает бит, а вторичная, в очередной раз перезаписывая данные, его проверяет.

Но мне это не нравится: тут много потенциально опасных мест из-за отсутствия адекватной синхронизации (например, на случай расширения ТЗ). Думаю, антивирусные системы просто взвоют. К тому же - вторичную программу сможет использовать злоумышленник, если не шифровать параметры её запуска.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DarkInside (13.11.2016)