🗊Презентация Системное программирование. Введение в Windows API (Лекция 2)

Нажмите для полного просмотра!
Системное программирование. Введение в Windows API (Лекция 2), слайд №1Системное программирование. Введение в Windows API (Лекция 2), слайд №2Системное программирование. Введение в Windows API (Лекция 2), слайд №3Системное программирование. Введение в Windows API (Лекция 2), слайд №4Системное программирование. Введение в Windows API (Лекция 2), слайд №5Системное программирование. Введение в Windows API (Лекция 2), слайд №6Системное программирование. Введение в Windows API (Лекция 2), слайд №7Системное программирование. Введение в Windows API (Лекция 2), слайд №8Системное программирование. Введение в Windows API (Лекция 2), слайд №9Системное программирование. Введение в Windows API (Лекция 2), слайд №10Системное программирование. Введение в Windows API (Лекция 2), слайд №11Системное программирование. Введение в Windows API (Лекция 2), слайд №12Системное программирование. Введение в Windows API (Лекция 2), слайд №13

Вы можете ознакомиться и скачать презентацию на тему Системное программирование. Введение в Windows API (Лекция 2). Доклад-сообщение содержит 13 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Системное программирование.
Лекция 2.
Введение в Windows API
Описание слайда:
Системное программирование. Лекция 2. Введение в Windows API

Слайд 2





Введение в Windows API
Архитектура ОС Windows 2000/XP:
Описание слайда:
Введение в Windows API Архитектура ОС Windows 2000/XP:

Слайд 3





Введение в Windows API
Схема обработки функций ввода/вывода:
Описание слайда:
Введение в Windows API Схема обработки функций ввода/вывода:

Слайд 4





Введение в Windows API
Схема обработки системного сервиса:
Описание слайда:
Введение в Windows API Схема обработки системного сервиса:

Слайд 5





Введение в Windows API
Принципы, лежащие в основе Windows API:
Системные ресурсы представляются в виде объектов:
Объект Windows – структура данных, представляющая системный ресурс
Основные классы объектов Windows:
Объекты ядра (файлы, процессы, потоки, сокеты…)
Объекты интерфейса пользователя (окна, курсоры, меню,…)
Объекты графического интерфейса (перья, кисти,…)
Манипуляции с объектами Windows – только через Windows API
Для идентификации объектов используются дескрипторы – специальные структуры, указывающие на объекты ОС и хранящие информацию о них
Дескриптор – тип HANDLE
Создание объектов: Create<имя> (например, CreateFile)
Закрытие дескриптора: CloseHandle(<дескриптор>)
Описание слайда:
Введение в 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
Описание слайда:
Введение в 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-библиотекам)
Описание слайда:
Введение в 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;
Описание слайда:
Введение в 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; и др.
Описание слайда:
Введение в 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;
Описание слайда:
Введение в 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)
Описание слайда:
Введение в 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"
Описание слайда:
Введение в 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-строк
Функции стандартных библиотек как правило обобщенными не являются!
Описание слайда:
Введение в Windows API Для написания обобщенных приложений нужно: Использовать обобщенную главную функцию: _tmain вместо main и wmain – для консольных _tWinMain вместо WinMain и wWinMain – для Win32 Windows API предоставляет свои функции для работы с обобщенными строками и символами: CharUpper, CharLower, IsCharAlphaNumeric и др. Учитываются региональные особенности Функции Windows API автоматически являются обобщенными: Например, для функции CreateFile: CreateFileA – вариант с использованием ASCII-строк CreateFileW – вариант с использованием UNICODE-строк Функции стандартных библиотек как правило обобщенными не являются!



Похожие презентации
Mypresentation.ru
Загрузить презентацию