На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Как определить ОС , Как определить, под какой ОС запущена программа
    Написал утилитку для создания плейлистов для телефонов Motorola (P2K), компилируется вроде чем угодно (C++), пробовал на GCC(MinGW и Fedora Core 12), MSVC и BCB. И собственно, вопрос - как определить под какой ОС запущена программа?
    Не скажу, что это важно, но очень интересно.

    Если кому вдруг надо саму прогу:
    http://necro.nightmail.ru/Programming/motorola.html
    но она пока несколько сыровата, хотя глюков вроде нет
      Ничего, кроме getenv() не придумал. Но и какие переменные проверять - не придумал тоже.
        Necro666, GetVersionEx() не нашел случайно?
          Перечитай мой пост, а?
            Necro666, если проблема в том, о чем ты писал в первом посте, то getenv тебе никак не поможет. Кроме того, если у тебя программа собрана для Windows, то и ОС, в которой она запущена, очевидно Windows, если для Linux, то Linux. Остается определиться с версией.
            Есть правда в линейке NT переменная "OS" равная "Windows_NT"
            Не думаю, что тебя интересует конкретно ОС, думаю тебя больше интересуют наличие кое-каких нужных тебе возможностей, которые в любой ОС могут присутствовать или отсутствовать
              используется стандартный С++, никаких платформенных вызовов, просто то, что под виндой \\.\e: под линуксом /dev/sdb2
                ExpandedWrap disabled
                  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
                  }
                  А в рантайме никак?
                    Necro666, универсального способа определения в рантайме (тем более шо ты и в винде и в Unix запускаешь - нет). В Unix можно версюю Ос определить сист. вызовом uname (или командой соотвествующей), в Windows - нет.
                      Цитата Necro666 @
                      А в рантайме никак?
                      В любом случае тебе под разные ОС придется пересобирать проект, если только ты не виндовую прогу через какой-нть вайн в линуксе запускаешь.
                        UPD: uname поддерживается и в Windows через POSIX compability level, но способ все равно не универсален
                          Не, это рога. Я думал, чем-то из того, что в RTL можно. Но нет так нет.
                            Сама программа кого-нибудь интересует?
                              Почему бы не украсть из имплементации QSysInfo
                                разве она сишная?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0388 ]   [ 16 queries used ]   [ Generated: 25.04.24, 14:57 GMT ]