Betriebssystem abhängiger Code

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Betriebssystem abhängiger Code

Beitrag von DL3AD »

Hallo

ich möchte meine Anwendung unter Linux und Windows compilieren mit der Option dass z.B eine Programmzeile
nur unter Windows und eine Andere nur unter Linux im Code compiliert wird.

Code: Alles auswählen

 
  if FileExists('ADLog.exe') then    //soll nur unter Windows compiliert werden
  if FileExists('ADLog') then   //soll nur unter Linux compiliert werden
 


wie kann ich das realisieren ? - Es gibt doch diese Kompileranweisungen in den geschweiften Klammern mit {$...
Geht es damit ? - wenn ja wie ?

Gruß Frank

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Betriebssystem abhängiger Code

Beitrag von theo »

Würde ich so machen

Code: Alles auswählen

{$IFDEF UNIX}
 const FileName='ADLog';
{$ENDIF}
 
{$IFDEF MSWindows}
 const FileName='ADLog.exe';
{$ENDIF}   
 
....
 
 if FileExists(FileName) then 
 
 
 

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: Betriebssystem abhängiger Code

Beitrag von compmgmt »

Und wenn du so etwas an mehreren Stellen brauchst, kannst du es so wie ich machen:

Code: Alles auswählen

const
  exe = {$ifdef mswindows} '.exe' {$else} '' {$endif};
begin
  if FileExists('ADLog' + exe) then ...
  if FileExists('Anderes' + exe) then ...
  if FileExists('Irgendwas' + exe) then ...
end;
usw.

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: Betriebssystem abhängiger Code

Beitrag von DL3AD »

Hallo,

vielen Dank euch beiden !
Lazarus mit freepascal is schon ne geile Sache :mrgreen:

Antworten