[fpc-pascal] CrossPlatform problem, INFINITE not defined on Linux

Bo Berglund bo.berglund at gmail.com
Sun Jul 19 08:07:23 CEST 2020


I am porting an old application from Delphi to Lazarus and Windows to
Linux.
This application has a unit ExecWait, which was created to simplify
running tool programs from the main program, so it supplies two
procedures as:

function ExecAndWait(Cmdline: string; Hide: boolean = false; MaxWait:
DWORD = INFINITE; Prio: TExecPrio = normal): DWORD;
function ExecStart(Cmdline: string; InheritHandle: boolean = true;
Prio: TExecPrio = normal): DWORD;

I have had no problems with this unit when moving from Delphi to FPC,
it compiles just fine on Windows.

But when I move the code to Linux (via Subversion) it throws an error
on "Run/Quick Compile":

ExecWait.pas(15,79) Error: Identifier not found "INFINITE"

The line that gets the error is the declaration for ExecAndWait above.

On Windows I could check where it is defined and I found it in:
C:\Programs\Lazarus_2.0.8\fpc\3.0.4\source\rtl\win\wininc\defines.inc

How do I bring in the corresponding Linux version of this?
Is there some specific uses clause to set?

Right now I have this:

uses
  {$IFDEF UNIX}
    unix;
  {$ELSE}
	windows;
  {$ENDIF}

As it compiles in Windows it must be something I have to do when
porting to Linux....


-- 
Bo Berglund
Developer in Sweden



More information about the fpc-pascal mailing list