![]() |
Ответ: Не полная загрузка системы
Как dll в отдельном потоке исполнять? Можно без обертки обойтись? (в виде еще одного exe, который вызывает dll и передает данные в главный exe)
|
Ответ: Не полная загрузка системы
Основная программа выделяет память для обмена и передаёт её адрес в качестве параметра командной строки для запуска второй программы.
Вторая программа запускается, парсит адрес памяти для обмена, начинает главный цикл. В цикле выполняется (блокирующая) функция из DLL; после каждого выполнения, результаты сохраняются в память для обмена. В той же памяти для обмена можно выделить бит, для сигнализации о необходимости остановки: главная программа поднимает бит, а вторичная, в очередной раз перезаписывая данные, его проверяет. Но мне это не нравится: тут много потенциально опасных мест из-за отсутствия адекватной синхронизации (например, на случай расширения ТЗ). Думаю, антивирусные системы просто взвоют. К тому же - вторичную программу сможет использовать злоумышленник, если не шифровать параметры её запуска. |
Ответ: Не полная загрузка системы
Ну я примерно так и представлял обертку.
Только хотел какой-то готовый интерфейс для обмена использовать. Кстати, какой интерфейс лучше (с минимальной задержкой и при этом наиболее надежный)? WIN_MESSAGE можно или может TCP/IP поднять с отчетом о доставке, чтобы синхронизацию обеспечить? Есть еще вариант через консольную утилиту невидимый ram-disk создать и обмениваться через простое чтение-запись файлов. UAC может мозг вынести, но его легко можно обойти через ring 2 (RunAsSystem). Если основное приложение запущено от имени системы, оно может творить что угодно (запускать exe), UAC не будет вмешиваться. Цитата:
|
Ответ: Не полная загрузка системы
Насколько мне известно, блиц уже сто лет как опенсорс. Берем его потрошка, прикручиваем многопоточность, параллельно переводя на C++14. Хотя кому оно надо
|
Ответ: Не полная загрузка системы
Не, блиц тут не при чем.
|
Ответ: Не полная загрузка системы
Цитата:
Цитата:
|
Часовой пояс GMT +4, время: 03:31. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot