Основы программирования в Win32API. Марапулец Ю.В. - 8 стр.

UptoLike

Составители: 

как в Windows 3.1. Если же необходимо использовать переменную или кон-
станту длиной 16 бит, они должны быть объявлены как short (далее будет по-
казано, что для этих типов определены независимые typedef-имена). Следова-
тельно, при переносе программного кода из 16-разрядной среды необходимо
убедиться в правильности использования целочисленных элементов, которые
автоматически будут расширены до 32 битов, что может привести к появле-
нию побочных эффектов.
Другим следствием 32-разрядной адресации является то, что указатели
больше не нужно объявлять как near и far. Любой указатель может получить
доступ к любому участку памяти. В Windows 9x константы near и far объявле-
ны (с помощью директивы #define) пустыми.
Существенные изменения коснулись также функций API, которые рабо-
тают с символьными строками. Внутренние механизмы Windows 9x (не полно-
стью), NT и Windows 2000 используют символы в формате UNICODE
(16-битное значение символов). Но многие прикладные программы продолжа-
ют использовать ANSI (т. е. стандарт, в котором каждый символ кодируется
при помощи 8 бит). Чтобы решить эту проблему, каждая функция, работающая
со строками, реализована в двух вариантах. В первом варианте в качестве ар-
гумента воспринимается строка в формате ANSI (внутри функции эта строка
автоматически преобразуется в UNICODE). Второй вариант функции напря-
мую работает со строками в формате UNICODE.
Одним из подмножеств API является GDI (Graphics Device Interface – ин-
терфейс графического устройства). GDI – это та часть Windows, которая обес-
печивает поддержку аппаратно-независимой графики. Благодаря функциям
GDI Windows-приложение может выполняться на различных ПЭВМ.
Еще одной особенностью Windows является многозадачность, причем
поддерживаются два типа многозадачности: основанный на процессах и осно-
ванный на потоках. Рассмотрим их немного подробнее.
Процессэто программа, которая выполняется. При многозадачности та-
кого типа две или более программы могут выполняться параллельно. Конечно,
они по очереди используют ресурсы центрального процессора и с технической
точки зрения выполняются неодновременно, но благодаря высокой скорости
работы компьютера это практически незаметно.
Потокэто отдельная часть исполняемого кода. Название произошло от
понятиянаправление протекания процесса”. В многозадачности данного типа
отдельные потоки внутри одного процесса также могут выполняться одновре-
менно. Все процессы имеют по крайней мере один поток, но в самой Windows
их может быть несколько.
Другой особенностью Windows линейки 9x является приоритетная мно-
гозадачность. В данном случае каждому активному потоку предоставляется
определенный промежуток времени работы процессора. По истечении данного
промежутка управление автоматически передается следующему потоку. Это
не дает возможности программам полностью захватывать ресурсы процессора.
Windows 2000 использует вытесняющую многозадачность. Выполнение
8
как в Windows 3.1. Если же необходимо использовать переменную или кон-
станту длиной 16 бит, они должны быть объявлены как short (далее будет по-
казано, что для этих типов определены независимые typedef-имена). Следова-
тельно, при переносе программного кода из 16-разрядной среды необходимо
убедиться в правильности использования целочисленных элементов, которые
автоматически будут расширены до 32 битов, что может привести к появле-
нию побочных эффектов.
     Другим следствием 32-разрядной адресации является то, что указатели
больше не нужно объявлять как near и far. Любой указатель может получить
доступ к любому участку памяти. В Windows 9x константы near и far объявле-
ны (с помощью директивы #define) пустыми.
     Существенные изменения коснулись также функций API, которые рабо-
тают с символьными строками. Внутренние механизмы Windows 9x (не полно-
стью), NT и Windows 2000 используют символы в формате UNICODE
(16-битное значение символов). Но многие прикладные программы продолжа-
ют использовать ANSI (т. е. стандарт, в котором каждый символ кодируется
при помощи 8 бит). Чтобы решить эту проблему, каждая функция, работающая
со строками, реализована в двух вариантах. В первом варианте в качестве ар-
гумента воспринимается строка в формате ANSI (внутри функции эта строка
автоматически преобразуется в UNICODE). Второй вариант функции напря-
мую работает со строками в формате UNICODE.
     Одним из подмножеств API является GDI (Graphics Device Interface – ин-
терфейс графического устройства). GDI – это та часть Windows, которая обес-
печивает поддержку аппаратно-независимой графики. Благодаря функциям
GDI Windows-приложение может выполняться на различных ПЭВМ.
     Еще одной особенностью Windows является многозадачность, причем
поддерживаются два типа многозадачности: основанный на процессах и осно-
ванный на потоках. Рассмотрим их немного подробнее.
     Процесс – это программа, которая выполняется. При многозадачности та-
кого типа две или более программы могут выполняться параллельно. Конечно,
они по очереди используют ресурсы центрального процессора и с технической
точки зрения выполняются неодновременно, но благодаря высокой скорости
работы компьютера это практически незаметно.
     Поток – это отдельная часть исполняемого кода. Название произошло от
понятия “направление протекания процесса”. В многозадачности данного типа
отдельные потоки внутри одного процесса также могут выполняться одновре-
менно. Все процессы имеют по крайней мере один поток, но в самой Windows
их может быть несколько.
     Другой особенностью Windows линейки 9x является приоритетная мно-
гозадачность. В данном случае каждому активному потоку предоставляется
определенный промежуток времени работы процессора. По истечении данного
промежутка управление автоматически передается следующему потоку. Это
не дает возможности программам полностью захватывать ресурсы процессора.

    Windows 2000 использует вытесняющую многозадачность. Выполнение
                                    8