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

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

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

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

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

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

Шаблоны и определение SSE типов на этапе компиляции - C++
Добрый вечер. Задача следующая: для каждого базового типа даных int, float и double есть свой intrinsic SSE тип - __m128i, __m128 и...

Ошибка прекомпиляции при отправке в проверочный сайт - C++
Добрый день. Отправляю текст программы в проверочную систему. #pragma hdrstop #pragma argsused #include &lt;tchar.h&gt; #include...

Ошибка на этапе компиляции - C++
Добрый вечер. Ребят помогите, не могу понять в чем дело. Есть программа в которой описан 1 класс (работа с пользователями) Всё...

Чтение файла на этапе компиляции - C++
Можно ли считать файл настроек на этапе компиляции? Нужно что бы выбросить код который в рантайме не понадобится (в зависимости от...

Ошибка на этапе выполнения работы - C++
пишет что очень много ошибок, но мой мозг уже не хочет их искать. мне кажется что-то не то с переменными или с передачей, если...

Несистематическая ошибка на этапе компиляции - C++
#pragma hdrstop #pragma argsused #include &lt;iostream.h&gt; void main() { double a; int index,i_max,i_min; double...

3
OstapBender
584 / 523 / 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,
про линь не знаю.
1
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
пруф
1
-=ЮрА=-
Заблокирован
Автор 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
0
22.09.2011, 11:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2011, 11:55
Привет! Вот еще темы с ответами:

Создание отчетов на этапе выполнения - C++
Как создавать отчеты на этапе выполнения не на основе БД?

Создание программы на начальном этапе - C++
Подскажите, пожалуйста, какого типа проекта в С++ надо создать и куда именно вставить следующий программный код, что бы программа...

На каком этапе выделяется статическая память - C++
Если я создаю синглтон Маейрса: class Singleton { public: static Singleton&amp; Instance() { static Singleton...

Задание размера массива на этапе исполнения - C++
Qt 5.4.1, MinGW 32bit... спокойно кушает такой код: #include &lt;iostream&gt; int main () { int i; std::cin &gt;&gt; i; int...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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