Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
13 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
128.82 kB
Просмотров:
127
Скачиваний:
1
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Системное программирование.
Лекция 2.
Введение в Windows API
№2 слайд
Содержание слайда: Введение в Windows API
Архитектура ОС Windows 2000/XP:
№3 слайд
Содержание слайда: Введение в Windows API
Схема обработки функций ввода/вывода:
№4 слайд
Содержание слайда: Введение в Windows API
Схема обработки системного сервиса:
№5 слайд
Содержание слайда: Введение в Windows API
Принципы, лежащие в основе Windows API:
Системные ресурсы представляются в виде объектов:
Объект Windows – структура данных, представляющая системный ресурс
Основные классы объектов Windows:
Объекты ядра (файлы, процессы, потоки, сокеты…)
Объекты интерфейса пользователя (окна, курсоры, меню,…)
Объекты графического интерфейса (перья, кисти,…)
Манипуляции с объектами Windows – только через Windows API
Для идентификации объектов используются дескрипторы – специальные структуры, указывающие на объекты ОС и хранящие информацию о них
Дескриптор – тип HANDLE
Создание объектов: Create<имя> (например, CreateFile)
Закрытие дескриптора: CloseHandle(<дескриптор>)
№6 слайд
Содержание слайда: Введение в Windows API
Принципы, лежащие в основе Windows API:
Имеется собственный набор типов данных:
Типы пишутся заглавными буквами (для Си)
Примеры типов: HANDLE, BOOL, DWORD, LPTSTR
Типы Windows API – «переобозначенные» базовые типы с учетом параметров компиляции:
typedef unsigned long DWORD
В именах типов Windows API «*» не используется:
LPTSTR – это TCHAR *
LPCTSTR – это const TCHAR *
LPDWORD – это DWORD *
Типы данных, представляющие собой указатели могут записываться в двух вариантах:
LPDWORD = PDWORD
LPVOID = PVOID
№7 слайд
Содержание слайда: Введение в Windows API
Принципы, лежащие в основе Windows API:
Для возможности использовать Windows API нужно подключать библиотеки (модули)
Библиотека <windows.h> – для C/C++
Модуль Windows – для Delphi
В библиотеках (модулях) содержатся внешние определения функций («мостик» для обращения к соответствующим DLL-библиотекам)
№8 слайд
Содержание слайда: Введение в Windows API
Основные типы данных в Windows API:
Типы данных объявлены в:
<WinDef.h>, <WinNT.h>, <BaseTsd.h> и некоторых других
Константы:
#define CONST const
Пустой (любой) тип:
#define VOID void
Целочисленные типы:
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef short SHORT;
typedef unsigned short USHORT;
typedef int INT; typedef unsigned int UINT;
typedef long LONG; typedef unsigned long ULONG;
Вещественные типы:
typedef float FLOAT;
№9 слайд
Содержание слайда: Введение в Windows API
Основные типы данных в Windows API:
Логические типы:
typedef int BOOL;
typedef BYTE BOOLEAN;
Символьные типы:
typedef char CHAR; typedef unsigned char UCHAR;
typedef wchar_t WCHAR;
#ifdef UNICODE typedef WCHAR TCHAR;
#else typedef char TCHAR;
Указатели:
typedef BOOL *PBOOL,*LPBOOL;
typedef BYTE *PBYTE,*LPBYTE;
typedef int *PINT,*LPINT;
typedef WORD *PWORD,*LPWORD;
typedef DWORD *PDWORD,*LPDWORD;
typedef long *PLONG,*LPLONG;
typedef FLOAT *PFLOAT;
typedef UINT *PUINT,*LPUINT; и др.
№10 слайд
Содержание слайда: Введение в Windows API
Основные типы данных в Windows API:
Указатели:
typedef void *PVOID,*LPVOID;
typedef CONST void *PCVOID,*LPCVOID;
typedef CHAR *PCHAR;
typedef CHAR *PSTR,*LPSTR;
typedef WCHAR *PWSTR,*LPWSTR;
typedef CONST CHAR *PCSTR,*LPCSTR;
typedef CONST WCHAR *PCWSTR,*LPCWSTR;
#ifdef UNICODE typedef LPWSTR PTSTR,LPTSTR;
#else typedef LPSTR PTSTR,LPTSTR;
#ifdef UNICODE typedef LPCWSTR PCTSTR,LPCTSTR;
#else typedef LPCSTR PCTSTR,LPCTSTR;
Дескриптор объектов:
typedef PVOID HANDLE;
Win32/Win64 (пара примеров):
typedef unsigned int DWORD32;
typedef unsigned __int64 DWORD64;
№11 слайд
Содержание слайда: Введение в Windows API
Символы ASCII и Unicode (UTF-16):
8-битовые символы (ASCII): char = CHAR
16-битовые символы (UTF-16): wchar_t = WCHAR
Для написания обобщенных приложений нужно:
Определить все символы и строки с использованием обобщенных типов: TCHAR, LPTSTR, LPCTSTR
Включить в самом начале во все модули (для UTF-16):
#define UNICODE – для управления компиляцией библиотек Windows
#define _UNICODE – для управления компиляцией стандартных библиотек C
Примечание: Лучше управлять выбором через тип проекта
Размеры буферов в операциях ввода/вывода и других определять с использованием операции sizeof(TCHAR)
№12 слайд
Содержание слайда: Введение в Windows API
Для написания обобщенных приложений нужно:
Включить библиотеку <tchar.h> перед <Windows.h>
Для ввода/вывода и преобразования строк использовать функции библиотеки <tchar.h>:
_tprintf вместо printf
_tscanf вместо scanf
_totupper вместо toupper
_totlower вместо tolower
_ttoi вместо atoi
и т.д.
Примечание: в библиотеке <tchar.h> определен тип _TCHAR – это аналог TCHAR Windows API
Использовать макрос _T(<строка>) для строковых констант:
Пример: _T("Hello world")
Примечание: 16-битовую строковую константу можно описать явно: L"Hello world"
№13 слайд
Содержание слайда: Введение в Windows API
Для написания обобщенных приложений нужно:
Использовать обобщенную главную функцию:
_tmain вместо main и wmain – для консольных
_tWinMain вместо WinMain и wWinMain – для Win32
Windows API предоставляет свои функции для работы с обобщенными строками и символами:
CharUpper, CharLower, IsCharAlphaNumeric и др.
Учитываются региональные особенности
Функции Windows API автоматически являются обобщенными:
Например, для функции CreateFile:
CreateFileA – вариант с использованием ASCII-строк
CreateFileW – вариант с использованием UNICODE-строк
Функции стандартных библиотек как правило обобщенными не являются!