[delphi] Przechwytywanie wyniku aplikacji konsolowej

0

Mam funkcje:[url=http://4programmers.net/Delphi/FAQ/Jak_wy%C5%9Bwietli%C4%87_wynik_dzia%C5%82ania_aplikacji_konsolowej]Link[/url]
Chcę przechwycić wynik działania kompilatora gcc:

RunCaptured('C:', 'gcc', '-v', 'raport.txt', true);

ale nie ma żadnego wyniku, co więcej kiedy napiszę:

RunCaptured('C:', 'make', '-v', 'raport.txt', true);

wszystko działa.

Co robię źle?

0

Spróbuj przerobić ten kod: dostęp do cmd z poziomu delphi
Ewentualnie sprawdź - może gcc nie wysyła rezulatatów na standardowe wyjście, ale na standardowe wyjście błędów.

0

Nie wiedziałem że jest coś takiego jak stderr :P

Czy ktoś może umieścić jakiś przykład. Niestety to co znalazłem w internecie nie działa :(

0

W kodzie ode mnie masz przecież odczytywanie zarówno wyjścia, jak i wyjścia błędów.

Odpowiada za to ta część:

  with info do
    begin
    cb := sizeof( info );
    dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
    wShowWindow := SW_HIDE;
    hStdInput := 0;
    hStdOutput := writePipe; // <-- przypisanie uchwytu jako wyjścia
    hStdError := writePipe; // <-- przypisanie uchwytu jako wyjścia błędów
    end;
0

Problem rozwiązany, należy zrobić dokładnie jak w linku który podał Szczawik tzn. odpalać programy z cmd.exe. Ja próbowałem zamiast cmd.exe odpalić gcc.exe i to nie dawało żadnego rezultatu.

Wielkie dzięki Szczawik! :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1