BRCC32, informacje o kompilacji

0

Ja mam takie pytanie:
jak przechwycić informacje o przebiegu kompilacji z kompilatora brcc32.exe, np. ewentualne błędy kompilacji.

Uruchamiam go poleceniem ShellExecute(), podając w parametrze ścieżkę dostępu do pliku *.rc.

A może w pakiecie SynEdit jest jakiś komponent?

0

Hm, już się tego podjąłem i napisałem funkcję do tego

function OpenApplication(CMD: String):TStringList;
var
  AppName    : array[0..512] of Char;
  CurrentDir : array[0..255] of Char;
  WorkDir    : String;
  StartUpInfo: TStartUpInfo;
  ProcessInfo: TProcessInformation;
begin
  OpenApplication:= TStringList.Create;

  if FileExists('c:\tmp.txt') then
    DeleteFile('c:\tmp.txt');

  OpenApplication.Add(CMD+' >> c:\tmp.txt');
  OpenApplication.SaveToFile('c:\tmp.bat');
  OpenApplication.Clear;

  CMD:= 'c:\tmp.bat';

  StrPCopy(AppName, CMD);
  GetDir(0, WorkDir);
  StrPCopy(CurrentDir, WorkDir);
  FillChar(StartUpInfo, Sizeof(StartUpInfo), #0);
  StartUpInfo.cb          := Sizeof(StartUpInfo);
  StartUpInfo.dwFlags     := STARTF_USESHOWWINDOW;
  StartUpInfo.wShowWindow := SW_HIDE;

  if (not CreateProcess(nil, AppName, nil, nil, False, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, CurrentDir, StartUpInfo, ProcessInfo)) then
  else
    begin
      WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
      CloseHandle(ProcessInfo.hProcess);
      CloseHandle(ProcessInfo.hThread);
    end;

  OpenApplication.LoadFromFile('c:\tmp.txt');
end;

Użycie: Memo1.Lines:= OpenApplication('ping wp.pl');

0

Dzięki wielkie, funkcja działa jak trzeba [soczek]

Temat można zamknąć.

edit:
O, nie wiedziałem że istnieje coś takiego jak TDoscommand.
Jeszcze raz wielkie dzięki.

0

Można użyć sposobu mgx8, ale jest inny nie zapisujący nic na dysku, mianowicie komponent TDoscommand.

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