Системное программирование в среде Windows | страница 20
• Windows предлагает многочисленные механизмы синхронизации и взаимодействия, обеспечивающие удовлетворение самых разнообразных запросов.
• Базовой единицей выполнения в Windows является поток (thread). В одном процессе (process) могут выполняться один или несколько потоков.
• Для функций Windows используются длинные описательные имена. Приведенные ниже в качестве примера имена функций иллюстрируют не только соглашения об использовании имен, но и многоликость функций Windows:
>WaitForSingleObject
>WaitForSingleObjectEx
>WaitForMultipleObjects
>WaitNamedPipe
Существует также несколько соглашений, регулирующих порядок использования имен типов:
• Имена предопределенных типов данных, необходимых API, также являются описательными, и в них должны использоваться прописные буквы.
К числу наиболее распространенных относятся следующие типы данных:
BOOL (определен как 32-битовый объект, предназначенный для хранения одного логического значения)
HANDLE
DWORD (вездесущее 32-битовое целое без знака)
LPTSTR (указатель на строку, состоящую из 8– или 16-битовых символов)
LPSECURITY_ATTRIBUTES
С другими многочисленными типами данных вы будете знакомиться по мере изложения материала.
• В именах предопределенных типов указателей операция * не используется, и они отражают дополнительные отличия между указателями различного типа, как, например, в случае типов LPTSTR (определен как TCHAR *) и LPCTSTR (определен как const TCHAR *). Примечание. Тип TCHAR может обозначать как обычный символьный тип char, так и двухбайтовый тип wchar_t.
• В отношении использования имен переменных, — по крайней мере, в прототипах функций, — также имеются определенные соглашения. Так, имя lpszFileName соответствует "длинному указателю на строку, завершающуюся нулевым символом", которая содержит имя файла. Этот пример иллюстрирует применение так называемой "венгерской нотации", которой мы в данной книге, как правило, не стремимся придерживаться. Точно так же, dwAccess — двойное слово (32 бита), содержащее флаги прав доступа к файлу, где "dw" означает "double word" — "двойное слово".
Примечание
Будет очень полезно, если вы просмотрите системные заголовочные (включаемые) файлы, в которых содержатся определения функций, констант, флагов, кодов ошибок и тому подобное. Многие из представляющих для нас интерес файлов, аналогичных тем, которые предложены ниже в качестве примера, являются частью среды Microsoft Visual C++ и обычно устанавливаются в каталоге Program Files\Microsoft Visual Studio.NET\Vc7\PlatformSDK\Include (или Program Files\Microsoft Visual Studio\VC98\Include в случае VC++ 6.0):