Мое приложение выполняет другой процесс ("update.exe"), и я хотел бы передать большие данные (возможно, запись) из моего приложения в программу .Как правильно использовать сопоставление файлов и передавать данные дочернему процессу?
Использование командной строки для передачи параметров (ов) данных не является опцией, поскольку данные слишком велики (также размер данных может отличаться).
Как правильно создать CreateFileMapping
/MapViewOfFile
/UnmapViewOfFile
,
затем Исполнительное мой update.exe,
наконец Получая данные в update.exe программы (OpenFileMapping
)
и освобождение всех ручками (из основного приложения и update.exe), поэтому у меня нет памяти/утечек ручек?
Код был бы хорош (нет JCL
пожалуйста). C++ тоже прекрасен. Спасибо.
Edit: Я думаю, что моя основная проблема заключается в том, как «сигнал» главное приложение к UnmapViewOfFile
и CloseHandle
после update.exe
сделать чтение данных. (или, может быть, мне нужно использовать OpenFileMapping
с bInheritHandle
, установленным в True
в моем дочернем процессе?)
Вот Example. Как второй процесс может считывать данные, если основной процесс вызывает UnmapViewOfFile
и CloseHandle
?.
Но JCL - это удивительность ... –
Простым решением является хранение данных в файле и передача имени файла в командной строке. –
@LURD, excatlly, что я хочу сделать, но передать имя FileMapping в качестве параметра и использовать 'OpenFileMapping' ...;) – ZigiZ