Процессы, общающиеся через именованную разделяемую память

0

Я сделал 2 проекта Visual Studio, которые обмениваются данными через сопоставленный файл. Но я должен начать каждый из них отдельно: сначала запустите A, запустите его (он создаст сопоставленный файл и заполнит его информацией). Затем я должен запустить B, который будет читать файл и печатать все, что в нем. Конечно, закрытие A и запуск B не сработают (B не найдет отображаемый файл, так как он находится в памяти только тогда, когда A работает).

Мой вопрос: есть ли способ запустить мой проект B через A, без необходимости запускать проект B вручную?

  • 0
    Взгляните на msdn.microsoft.com/en-us/library/windows/desktop/… Это Windows-эквивалент exec или системы.
  • 0
    Пример мне не совсем понятен. Должен ли я указать путь к моему файлу .cpp?
Показать ещё 1 комментарий
Теги:
winapi
process

1 ответ

0
Лучший ответ

Вместо того, чтобы запускать вручную A, а затем B, вы должны запускать только ручную программу A и позволить программе A запускать программу B с помощью функции CreateProcess:

STARTUPINFO startupinfo ;
startupinfo.cb = sizeof (startupinfo) ;
PROCESS_INFORMATION pinfo ;
memset(&startupinfo, 0, sizeof (startupinfo)) ;
bool success = CreateProcess("b.exe", NULL, NULL, NULL, false, NORMAL_PRIORITY_CLASS,
                             NULL, NULL, &startupinfo, &pinfo) ;
  • 0
    И где я должен поставить свою программу B? Или как передать его в качестве аргумента функции CreateProcess?
  • 0
    Вы кладете A.exe и B.exe в одну папку. В A.exe вы запускаете B.exe с CreateProcess . Просто подожди немного, я обновлю свой ответ.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню