Wie herausfinden, auf welchem OS man ist...

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Es gibt mehrer Wege die nach Rom führen !
MFG
Michael Springwald

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

Beitrag von theo »

Christian hat geschrieben: Das kann mans aber grösstenteils mit defines machen
Das mit den defines ist schon klar, die braucht man (oder die LCL) ja dauernd.

Die Diskussion oben ging aber drum, das man es zur Laufzeit rausfinden will.
Dafür gibt es kaum einen Grund, es sei denn, man wolle für XP und Win2k oder SuSE und Ubuntu verschiedenen Code schreiben. Dafür stellt FPC meines Wissens keine allgemeinen Bordmittel zur Verfügung.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Jain WinXP und 2K z.b. kann man mit der Sysinfo Struktur herausbekommen

für die Distris liegen in /etc/ bei vielen distris versionsdateien
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

oliver1974
Beiträge: 13
Registriert: Sa 16. Jun 2007, 18:47

Beitrag von oliver1974 »

... da habt ihr natürlich auffallend recht, dass das irgendwie nicht wirklich viel Sinn macht, wenn man ohnehin gezielt compilieren muss.. da schwebte ich wohl noch zu sehr in der Welt der "Virtual Machines" und Konsorten... ;-)

Der Hinweis über die Defines oder auch die Sysinfo - Struktur ist aber sehr interessant, danke soweit!

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Ja, dadurch lässt sich ein und der selbe Code für verschiedene Betriebssysteme kompilieren, ohne, dass gesonderte Anpassungen notwendig sind.

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

result:= GetSystemVar('varname');

findet sich in Sysutils. Den String muß man allerdings parsen. Dann bekommt man allerdings ne Menge über das OS raus. Niemand hindert dich daran, z.B. eine kardinale Variable zu belegen:

if (pos('Windows', result) = 1) then begin
OSCounter:= os_win32;
end
else....

allerdings muß man dann vorher ein Set anlegen:

type
OSTypeSet = (os_win32, os_win64, os_lin386, os_lin686, ...);
OSType = os_win32..os_blabla;

Nun kannst du unter var dekalrieren:

var
PresentOSType: OSType;

und weil der kardinal ist in einer:
case OSType of
os_win32:{blabla};
os_win64:{blabla];
...
end; // of case

Den OsType abfragen und zur Laufzeit entscheiden welcher Code benutzt werden soll.

PASCAL ist halt super, wenn man weiß wie...:lol:
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Alles klar ? LoL
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Beitrag von theo »

Christian hat geschrieben:Alles klar ? LoL
Joh, ich denke schon. Das brauch ich dann, wenn ich mein erstes Programm schreibe, welche sich zur Laufzeit dauernd selbst neu kompiliert. Oder vielleicht auch dann nicht...? ;-)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Das auch ich meinte eigentlich plutos äußerst aussagekräftiges *hust* Post.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

In das Wespennest hätt ich jetzt nicht gestochen ;)

Das kann mans aber grösstenteils mit defines machen
Ich bezog mich auf diese Äußerung von dir, da schien mir das es dir Richtige Anwort ist:
Alle Wege führen nach Rom *G*
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Naja Alle nun doch nicht ?! Gibt auch n paar die woandershin führen.
Was ich meinte ums mal nochmal überdeutlich zu sagen das deine Codeschnipsel keinen Sinn machen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Meinst du mich ?
ich habe doch kein Code hier in diesen Thread rein geschrieben.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Stimmt, hatte gar nicht geschaut wers war und angenommen du warsts sorry
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

och Christian...wie kannst du nur.

Da hat sich Pluto einmal zurückgehalten und nun machst du ihn doch wieder fertig, dass kann ja nie was werden ;)
Johannes

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich schäm mich so :(
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten