Зачем нужен windows.h ?
От: Chelovek_  
Дата: 21.07.05 08:48
Оценка: :))
Зачем нужен и что делает windows.h ?
В какой-то библиотеке он включается следующим фрагментом:

#ifdef _WIN32
# include <windows.h>
# ifdef small
/* windows.h define small to char */
# undef small

И что за _WIN32, кем и в каком месте он определяется?
Если кто прокомментирует, буду премного благодарен.
Re: Зачем нужен windows.h ?
От: Tazman Россия  
Дата: 21.07.05 09:44
Оценка:
Здравствуйте, Chelovek_, Вы писали:

C_> Зачем нужен и что делает windows.h ?

C_> В какой-то библиотеке он включается следующим фрагментом:

Windows.h нужен для того, что бы ты мог использовать в своей программе функционал, предоставляемый операционной системой (Windows 95, 98, NT, 2000, XP).

C_>#ifdef _WIN32

C_># include <windows.h>
C_># ifdef small
C_> /* windows.h define small to char */
C_># undef small

C_> И что за _WIN32, кем и в каком месте он определяется?

C_> Если кто прокомментирует, буду премного благодарен.

А макрос _WIN32 генерируется компилятором, и говорит о том какая версия операционной системы используется.
_WIN16 — 16-ти разрядная
_WIN32 — 32-х разрядная

и вообще макрос _WIN?? говорит о том что используются винды.
Хорошо иметь достойных потомков, но слава принадлежит нашим предкам. (Плутарх)
Re[2]: Зачем нужен windows.h ?
От: Chelovek_  
Дата: 21.07.05 10:02
Оценка:
C_>> Зачем нужен и что делает windows.h ?
C_>> В какой-то библиотеке он включается следующим фрагментом:
T>Windows.h нужен для того, что бы ты мог использовать в своей программе функционал, предоставляемый операционной системой (Windows 95, 98, NT, 2000, XP).

Спасибо. А не могли бы пояснить (пример какой-нибудь), что такое функционал, предоставляемый Windows ?
Например, если программа работет в консольном режиме и занимается вычислениями, она все равно использует какие-то услуги из Windows.h ?

C_>>#ifdef _WIN32

C_>># include <windows.h>
C_>># ifdef small
C_>> /* windows.h define small to char */
C_>># undef small
C_>> И что за _WIN32, кем и в каком месте он определяется?
C_>> Если кто прокомментирует, буду премного благодарен.
T>А макрос _WIN32 генерируется компилятором, и говорит о том какая версия операционной системы используется.
T>_WIN16 — 16-ти разрядная
T>_WIN32 — 32-х разрядная
T>и вообще макрос _WIN?? говорит о том что используются винды.

Еще раз спасибо. А можно сказать компилятору (в настройках каких-нибудь), чтобы он этот макрос не генерировал? (чисто теоретически, на практике понятно, что он много кому может быть нужен).
Re[3]: Зачем нужен windows.h ?
От: jazzer Россия Skype: enerjazzer
Дата: 21.07.05 10:32
Оценка:
Здравствуйте, Chelovek_, Вы писали:

C_>>> Зачем нужен и что делает windows.h ?

C_>>> В какой-то библиотеке он включается следующим фрагментом:
T>>Windows.h нужен для того, что бы ты мог использовать в своей программе функционал, предоставляемый операционной системой (Windows 95, 98, NT, 2000, XP).

C_> Спасибо. А не могли бы пояснить (пример какой-нибудь), что такое функционал, предоставляемый Windows ?

C_> Например, если программа работет в консольном режиме и занимается вычислениями, она все равно использует какие-то услуги из Windows.h ?

имеется в виду явное использование. То, что его рантайм использует неявно, тебя не должно волновать.

C_> Еще раз спасибо. А можно сказать компилятору (в настройках каких-нибудь), чтобы он этот макрос не генерировал? (чисто теоретически, на практике понятно, что он много кому может быть нужен).


См. документацию к твоему компилятору.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: Зачем нужен windows.h ?
От: EyeOfHell  
Дата: 21.07.05 17:04
Оценка:
День добрый.


А не могли бы пояснить (пример какой-нибудь), что такое функционал, предоставляемый Windows ?
Например, если программа работет в консольном режиме и занимается вычислениями, она все равно использует какие-то услуги из Windows.h ?


Там содержаться типы, выходящие за рамки стандарта C++ и использующиеся в Windows: HANDLE, HWND, UMSG итд.
Так же там содержаться определения части системных функций и структур — CreateWindowA() и прочие.

Если программы ТОЛЬКО считает — тоесть не требует от ползователя ввода и ничего никуда не выводит, например:


void main(void)
{
  int x = 1;
  int y = 2;
  int z = x+y*2;
}


То для такой программы Windows.h включать не обязательно. А вот как только нужно вывести на экран диалог с помошью MessageBox() — сразу же придется. Бо в стандарте C++ никакого MessageBox() не предусмотрено

С уважением, Око.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.