Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.46.36] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Написал утилитку для создания плейлистов для телефонов Motorola (P2K), компилируется вроде чем угодно (C++), пробовал на GCC(MinGW и Fedora Core 12), MSVC и BCB. И собственно, вопрос - как определить под какой ОС запущена программа?
Не скажу, что это важно, но очень интересно. Если кому вдруг надо саму прогу: http://necro.nightmail.ru/Programming/motorola.html но она пока несколько сыровата, хотя глюков вроде нет |
Сообщ.
#2
,
|
|
|
Ничего, кроме getenv() не придумал. Но и какие переменные проверять - не придумал тоже.
|
Сообщ.
#3
,
|
|
|
Necro666, GetVersionEx() не нашел случайно?
|
Сообщ.
#4
,
|
|
|
Перечитай мой пост, а?
|
Сообщ.
#5
,
|
|
|
Necro666, если проблема в том, о чем ты писал в первом посте, то getenv тебе никак не поможет. Кроме того, если у тебя программа собрана для Windows, то и ОС, в которой она запущена, очевидно Windows, если для Linux, то Linux. Остается определиться с версией.
Есть правда в линейке NT переменная "OS" равная "Windows_NT" Не думаю, что тебя интересует конкретно ОС, думаю тебя больше интересуют наличие кое-каких нужных тебе возможностей, которые в любой ОС могут присутствовать или отсутствовать |
Сообщ.
#6
,
|
|
|
используется стандартный С++, никаких платформенных вызовов, просто то, что под виндой \\.\e: под линуксом /dev/sdb2
|
Сообщ.
#7
,
|
|
|
std::string get_os_name() { #if (defined __linux__) return "linux"; #else #if (defined __WIN32__) return "windows"; #else #if (defined __MACOS__) return "macos"; #else return "undefined"; #endif #endif #endif } |
Сообщ.
#8
,
|
|
|
А в рантайме никак?
|
Сообщ.
#9
,
|
|
|
Necro666, универсального способа определения в рантайме (тем более шо ты и в винде и в Unix запускаешь - нет). В Unix можно версюю Ос определить сист. вызовом uname (или командой соотвествующей), в Windows - нет.
|
Сообщ.
#10
,
|
|
|
Цитата Necro666 @ В любом случае тебе под разные ОС придется пересобирать проект, если только ты не виндовую прогу через какой-нть вайн в линуксе запускаешь. А в рантайме никак? |
Сообщ.
#11
,
|
|
|
UPD: uname поддерживается и в Windows через POSIX compability level, но способ все равно не универсален
|
Сообщ.
#12
,
|
|
|
Не, это рога. Я думал, чем-то из того, что в RTL можно. Но нет так нет.
|
Сообщ.
#13
,
|
|
|
Сама программа кого-нибудь интересует?
|
Сообщ.
#14
,
|
|
|
Почему бы не украсть из имплементации QSysInfo
|
Сообщ.
#15
,
|
|
|
разве она сишная?
|