Текущий архив: 2006.07.16;
Скачать: CL | DM;
ВнизКак определить в какой ОС работает прога? Найти похожие ветки
← →
Интересующийся (2006-03-12 07:53) [0]Доброе время суток всем.
Мастера помогите, плиз!
Нужно определить в какой ОС работает прога.
Сейчас использую эту функцию
function GetPlatformId:DWORD;
var
PlatformInfo:OSVERSIONINFO;
begin
PlatformInfo.dwOSVersionInfoSize:= Sizeof(OSVERSIONINFO);
GetVersionEx(PlatformInfo);
result:= PlatformInfo.dwPlatformId;
end;
Но как я понимаю, она понимает только Win32.
P.S.
Нужна функция работающая с Win32/Win64/Linux.
← →
begin...end © (2006-03-12 10:00) [1]GetVersion определяет все Windows -- от 95 до Vista.
Насчёт Linux -- это не очень смешная шутка.
← →
tesseract © (2006-03-12 10:58) [2]
> Насчёт Linux -- это не очень смешная шутка.
{$IFDEF LINUX}
{$ENDIF}
В случая сборки под linux это сработает. Если же запускаешь под WINE - получишь версию указанную в нём :-)
← →
Интересующийся (2006-03-12 13:56) [3]>tesseract © (12.03.06 10:58) [2]
{$IFDEF LINUX}
{$ENDIF}
Это конечно понятно, а вот что в нутри?.......
>begin...end © (12.03.06 10:00) [1]
Насколько я помнь в результате функция выводит ОС как Win31, Win32 (95,98,Me), WinNT (NT,XP,2003) и другие версии.
Но это все 32-х разрядные штуки, а как определить 64?
P.S.
Есть идея согласно которой нужно отловить все прочие ОС и проверить Linux.
Если не он возможны два варианта:
1. Неизвестная ОС
2. ОС на 64.
← →
Интересующися (2006-03-12 14:04) [4]
function GetPlatformId:DWORD;
var
PlatformInfo:OSVERSIONINFO;
begin
{$IFDEF LINUX}
Result:= DWORD;//Свое представление Linix
{$ELSE}
PlatformInfo.dwOSVersionInfoSize:= Sizeof(OSVERSIONINFO);
GetVersionEx(PlatformInfo);
result:= PlatformInfo.dwPlatformId;
{$ENDIF}
end;
> В случая сборки под linux это сработает. Если же запускаешь под WINE - получишь версию указанную в нём :-)
Если я правидьно понял, весь код будет работать только при сборке под Linux?
← →
Интересующися (2006-03-12 14:15) [5]Добавление к функции.
{$IFDEF LINUX}
Result:= VER_PLATFORM_LINUX;
{$ELSE}
← →
tesseract © (2006-03-12 14:20) [6]
> сли я правидьно понял, весь код будет работать только при
> сборке под Linux?
Мужик !!! одновременно собрать программу под WIN и под LINUX не представляется возможным.
> Если я правидьно понял, весь код будет работать только при
> сборке под Linux?
Да так собрано множество CLX - компонент.
← →
Интересующися (2006-03-12 15:11) [7]> tesseract © (12.03.06 14:20) [6]
> Одновременно собрать программу под WIN и под LINUX не представляется возможным.
А как тогла пишут крос-платформенные вещи?
$IFDEF LINUX}
{$ELSE}
{$ENDIF}
P.S.
Вопрос таков.
Как программе собранной в Win32 и запустившейся в Linux (в режиме Win) понять что она в Linux?
← →
tesseract © (2006-03-12 17:30) [8]
> Как программе собранной в Win32 и запустившейся в Linux
> (в режиме Win) понять что она в Linux?
Никак. Wine намертво тебя от linux изолирует.
А на кой тебе это ?
> А как тогла пишут крос-платформенные вещи?
Вот {$IFDEF} и используется. Это директива компилятора. Если компилируемся в win32,используем этот код, если в Linux - этот код.
← →
Интересующися (2006-03-12 19:49) [9]Может кто зает, можно DLL под Linux написать?
← →
Интересующися (2006-03-12 19:55) [10]> Интересующися (12.03.06 19:49) [9]
Дополнение к вопросу:
Что в Linux вместо Win API?
P.S.
Если кто знает примеры и инфу по этому вопросу может поделитесь?
← →
tesseract © (2006-03-12 20:03) [11]
> Может кто зает, можно DLL под Linux написать?
*nix Dll называется so. (shared object)
> Что в Linux вместо Win API?
Linux Api - не сложно догадаться :-)
Для справки linux - это ЯДРО (kernel) и соответсвенно что там реализовано - то и стандарт. Остальное - сторонние API.
← →
Интересующися (2006-03-12 20:04) [12]> tesseract © (12.03.06 17:30) [8]
> А на кой тебе это ?
Нужно exe получить который под всеми ОС работает, и сборка у него одна.
При запуске он должен определьть под какой ОС работает и действовать соответсвенно.
P.S.
Даже если это невозможно с Linux, Win64 он должен отлавливать на 100%.
← →
Интересующися (2006-03-12 20:08) [13]Понятно.
Значит надо по Linux Api инфу искать.
Большое спасибо за помощь!
← →
Ефеф (2006-04-05 17:10) [14];) пиши на Яве ;)
← →
Игорь Шевченко © (2006-04-05 17:13) [15]
> Как программе собранной в Win32 и запустившейся в Linux
> (в режиме Win) понять что она в Linux?
Нафига ?
← →
Anatoly Podgoretsky © (2006-04-05 19:58) [16]Нифига себе
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.008 c