Столкнулся с проблемой которую хочется обойти:
Создаю консольное приложение HelloWorld
Вызываю project1.exe >debug.log - в debug.log записывается Hello World
Импортирую модуль crt
Вызываю project1.exe >debug.log - debug.log пустой
Что происходит? Ктонить может мне квалифицированно разъяснить?
Может кто сталкивался?
Использую crt для отладки консольных приложений для раскраски текста в консоли Windows
Может можно заменить crt на другую библиотеку?
Пример:
- Код: Выделить всё
- program project1;
 {$mode objfpc}{$H+}
 uses
 {$IFDEF UNIX}
 cthreads,
 {$ENDIF}
 Classes, SysUtils, CustApp,
 crt;
 type
 { TMyApplication }
 TMyApplication = class(TCustomApplication)
 protected
 procedure DoRun; override;
 public
 constructor Create(TheOwner: TComponent); override;
 destructor Destroy; override;
 procedure WriteHelp; virtual;
 end;
 { TMyApplication }
 procedure TMyApplication.DoRun;
 var
 ErrorMsg: String;
 begin
 // quick check parameters
 ErrorMsg:=CheckOptions('h', 'help');
 if ErrorMsg<>'' then begin
 ShowException(Exception.Create(ErrorMsg));
 Terminate;
 Exit;
 end;
 // parse parameters
 if HasOption('h', 'help') then begin
 WriteHelp;
 Terminate;
 Exit;
 end;
 { add your program here }
 writeln('Hello World!!!');
 // stop program loop
 Terminate;
 end;
 constructor TMyApplication.Create(TheOwner: TComponent);
 begin
 inherited Create(TheOwner);
 StopOnException:=True;
 end;
 destructor TMyApplication.Destroy;
 begin
 inherited Destroy;
 end;
 procedure TMyApplication.WriteHelp;
 begin
 { add your help code here }
 writeln('Usage: ', ExeName, ' -h');
 end;
 var
 Application: TMyApplication;
 begin
 Application:=TMyApplication.Create(nil);
 Application.Title:='My Application';
 Application.Run;
 Application.Free;
 end.


