Запуск .exe из c ++ - PullRequest
       8

Запуск .exe из c ++

0 голосов
/ 14 декабря 2011

Моя проблема в том, что мне нужно запустить программу .exe из моей программы на С ++.При запуске .exe в оболочке я перехожу в папку .exe, запускаю .exe, в оболочке запрашивает входной файл, который я затем предоставляю.Затем программа запускается.Из моих исследований я считаю, что мне нужно использовать shell32, но у меня есть некоторые проблемы.В настоящее время я программирую на Linux-машине (opensuse).Будет ли shell32 по-прежнему работать в этом сценарии, если кто-нибудь знает, где должна находиться библиотека, так как я не могу найти ее на своем компьютере для ссылки.Другая проблема, которую я потенциально вижу, заключается в том, как работает программа, как я сказал в shell, вы запускаете программу, затем предоставляете аргументы, тогда как все примеры, которые я могу найти для shellexecute, дают аргументы в одном вызове.Если есть лучшее решение, доступное, я открыт для него.В идеале это должно работать на машинах с Windows и Linux, но если бы мне пришлось выбирать, мне нужно было бы пойти на Windows.Заранее спасибо.

1 Ответ

3 голосов
/ 14 декабря 2011

shell32 зависит от Windows.

Один довольно переносимый способ запуска внешних исполняемых файлов - использование вызова system():

SYNOPSIS
       #include <stdlib.h>

       int system(const char *command);

Теперь исполняемый файл, который вы хотите запустить, должен быть собран для операционной системы, в которой вы пытаетесь его запустить. Если вы хотите запустить файл Windows .exe в Linux, вы входите в сферу эмуляции (например, Wine ) или виртуализации (например, VirtualBox ).

...