Как выполнить консольную программу C ++ в программе C ++? - PullRequest
0 голосов
/ 19 июля 2011

Я уже пробовал system () и spawnl, но, как ни странно, программа .exe, которую я пытался выполнить в моей программе на C ++, не работала должным образом.

это мойкусок кода:

    #include <stdio.h> 
    #include <process.h> 

    int main(void)
    {
    puts("Executing simpleTest.exe...."); 
    spawnl( P_WAIT, "C:/simpleTest.exe",
    "C:/simpleTest.exe", "Using spawnl", "Arg1", "Arg2", NULL );
    system("pause");  
    return 0;
    }

, что simpleTest.exe на самом деле тоже консольное приложение C ++, и я хочу вызвать его в консольном приложении C ++ с именем Invoke.exe .... Интересно,вот в чем моя проблема.Если я запускаю simpleTest.exe, дважды щелкнув по нему, он работает нормально…, но если я выполняю его с приведенным выше кодом, он завершается, потому что сталкивается с ошибкой ... Интересно, где я сделал не так?Есть ли какие-либо другие предложения, кроме приведенного выше кода?О да, я использую Microsoft Visual Studio 2008, кстати ... Любая помощь будет оценена, спасибо.

Ответы [ 2 ]

0 голосов
/ 20 июля 2011

Использование собственных функций создания процессов во время выполнения C в конечном итоге вызовет только CreateProcess. Они также могут создавать консольное окно, что может быть нежелательным. Поэтому рекомендуется использовать семейство функций CreateProcess или ShellExecute.

0 голосов
/ 19 июля 2011

MSVC (на самом деле Windows) способ выполнить процесс - через функцию CreateProcess.Однако я никогда не использовал spawnl, поэтому не знаю, как он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...