Форум программистов, компьютерный форум CyberForum.ru

Определение ОС на этапе прекомпиляции - C++

Восстановить пароль Регистрация
 
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
21.09.2011, 21:09     Определение ОС на этапе прекомпиляции #1
собственно САБЖ.
хочется что-то вроде
C++
1
2
3
4
5
6
#ifdef __windows
#include<win.h>
#endif
#ifdef __linux
#include<lin.h>
#endif
как на этапе прекомпиляции однозначно определить ОС ??
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
22.09.2011, 01:33     Определение ОС на этапе прекомпиляции #2
открываем любой хедер.
видим
C
1
2
3
4
5
6
7
8
9
10
#if     _MSC_VER > 1000
#pragma once
#endif
 
#ifndef _INC_STDIO
#define _INC_STDIO
 
#if     !defined(_WIN32) && !defined(_MAC)
#error ERROR: Only Mac or Win32 targets supported!
#endif
значит чё-то типа
_WIN32 и _MAC,
про линь не знаю.
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
22.09.2011, 11:25  [ТС]     Определение ОС на этапе прекомпиляции #3
вобщем:
C
1
2
3
4
5
6
#if defined(linux) || defined(__linux)
    printf("this is linux!\n");
#endif
#if defined(_WIN32) || defined (_WIN64) /*первый для обеих определён*/
    printf("this is windows!\n");
#endif
пруф
-=ЮрА=-
Заблокирован
Автор FAQ
22.09.2011, 11:55     Определение ОС на этапе прекомпиляции #4
Цитата Сообщение от Vladimir. Посмотреть сообщение
как на этапе прекомпиляции однозначно определить ОС ??
Кусок кода из рабочей кросплатформенной программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// this version is for both Windows and UNIX, the following line
// specifies that this is for WINDOWS
#ifndef WINDOWS_XP
    #define WINDOWS_XP
#endif
 
// #include <XPCException.h>  // add this later
 
#ifdef UNIX
    #include <arpa/inet.h>
    #include <netdb.h>
    #include <netinet/in.h>
    #include <sys/socket.h>
#else
    #include <winsock2.h>
#endif
Yandex
Объявления
22.09.2011, 11:55     Определение ОС на этапе прекомпиляции
Ответ Создать тему
Опции темы

Текущее время: 02:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru