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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
#1

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

21.09.2011, 21:09. Просмотров 1021. Ответов 3
Метки нет (Все метки)

собственно САБЖ.
хочется что-то вроде
C++
1
2
3
4
5
6
#ifdef __windows
#include<win.h>
#endif
#ifdef __linux
#include<lin.h>
#endif
как на этапе прекомпиляции однозначно определить ОС ??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2011, 21:09     Определение ОС на этапе прекомпиляции
Посмотрите здесь:

Ошибка на этапе выполнения работы C++
C++ Создание отчетов на этапе выполнения
Ошибка на этапе компиляции C++
Создание программы на начальном этапе C++
Шаблоны и определение SSE типов на этапе компиляции C++
C++ Несистематическая ошибка на этапе компиляции
Ошибка прекомпиляции при отправке в проверочный сайт C++
Проверка значения аргумента функции на этапе компиляции C++
C++ Создать tuple на этапе выполнения программы в C++ 11
Ошибка на этапе выполнения быстрой сортировки C++
Как на этапе компиляции определить принадлежность к классу? C++
Размерность статического массива на этапе выполнения C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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     Определение ОС на этапе прекомпиляции
Ответ Создать тему
Опции темы

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