Как определить тип OC в FreePascal ?

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
Andreich
постоялец
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Как определить тип OC в FreePascal ?

Сообщение Andreich »

Предположим имеется кроссплатформенная программа на FreePascal / Lazarus. Использовать ее планируется как в Windows так и в Linux, но с некоторыми нюансами... Как определить в какой операционной системе запущено приложение?
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

я вот так делаю ^_^

Код: Выделить всё

{$IFDEF linux}
//some linux-specific code
{$ENDIF}
{IFDEF windows}
//some M$-specific code
{$ENDIF}
Михаил Крамер
новенький
Сообщения: 73
Зарегистрирован: 08.02.2008 13:26:40

Сообщение Михаил Крамер »

Что бы быть точным, это позволяет определить, в какой системе (для какой системы) вы компилируете код. После запуска проверять Windows или Linux - нет смысла. То, что написано под Linux, в Win не работет :D

А чтобы проверить какой именно Linux или Windows - есть определённые функции API.
Andreich
постоялец
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Сообщение Andreich »

Михаил Крамер писал(а):А чтобы проверить какой именно Linux или Windows - есть определённые функции API.


А можно чуть подробнее?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Andreich писал(а):
Михаил Крамер писал(а):А чтобы проверить какой именно Linux или Windows - есть определённые функции API.


А можно чуть подробнее?

вот было дело разбирался :oops: только виндоус дальше руки не дошли ("вот тебе новое задение" - сказал шеф!!!)

... будут вопросы оброщайся...

з.ы. вот ещё бы сделать чтонибудь похожее с линухами...
Михаил Крамер
новенький
Сообщения: 73
Зарегистрирован: 08.02.2008 13:26:40

Сообщение Михаил Крамер »

А в линухе всё уже есть - команда uname. Правда не знаю, есть аналог в виде функции, ну а проанализировать её вывод - не сложно.
Ответить