- •Структура платформы .NET
- •Схема выполнения программы в .NET
- •Схема работы компиляторов .NET
- •Достоинства языка С++
- •Структура программы
- •Модификаторы памяти
- •Пространство имен
- •Константы
- •Описание идентификаторов
- •Операции С++
- •Правила преобразования типов
- •Функции
- •ПЕРЕГРУЗКА ФУНКЦИЙ
- •Неоднозначность перегрузки
- •Шаблоны функций
- •Явная спецификация типов
- •Оперативная память
- •В адресном пространстве каждого процесса содержится:
- •Виртуальная память может находиться в трех состояниях
- •Средства защиты памяти
- •Страничное преобразование
- •ПРИМЕР РАБОТЫ С УКАЗАТЕЛЯМИ
- •Еще один пример с указателями
- •Утечки памяти
- •Процесс сборки мусора
- •Сборка мусора. Поколения объектов
- •Особенности ОС Windows
- •Процесс и поток
- •Очереди сообщений
- •Структура сообщения
- •Cпособы создания интерактивных Win приложений в VS C++
- •Функция WinMain
- •Создание окна
- •Функция окна
- •Цикл обработки сообщения
- •Определение запущенной копии приложения
- •Пример приложения
- •Команды передачи данных
- •Арифметические команды:
- •Каркас программы
- •Стековый фрейм
- •Парадигмы программирования
- •Элементы объектной модели
- •Преимущества объектной модели
- •Ограничения доступа
- •Спецификатор памяти static
- •Спецификатор const
- •Указатель this
- •Дружественные функции
- •Основные свойства и правила использования спецификатора friend:
- •Наследование
- •Основные правила использования базовых и производных классов:
- •Наследование атрибутов компонентов базового класса:
- •Множественное наследование
- •Использование виртуального класса
- •Полиморфизм
- •ПРОЦЕСС
- •Структура процесса
- •Поток (thread)
- •Создание и работа с потоками
- •Создание потока
- •Завершение потока
- •Совместимость потоков и стандартной библиотеки
- •Синхронизация потоков ПРИМЕР1
- •Как можно приостановить работу потока?
- •ПРИМЕР 2
- •Объекты синхронизации
- •Мьютекс. ПРИМЕР3
- •Критические секции ПРИМЕР4
- •События. ПРИМЕР5
- •Семафоры. ПРИМЕР6
- •Структура описания технологической операции
- •Типы программ
- •Жизненный цикл программного обеспечения
- •Структура процессов ЖЦПО
- •Стратегии конструирования ПО
- •Водопадная модель ЖЦПО
- •Макетирование
- •Спиральная модель БОЭМА
- •Инкрементальная модель
- •Модель быстрой разработки приложений (RAD)
- •Схема процесса XP.
- •Эксплуатационные требования к программным продуктам
Создание окна
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{ HWND hWnd;
hWnd = CreateWindow(szWindowClass, szTitle,
WS_OVERLAPPEDWINDOW,//стиль окна
CW_USEDEFAULT, 0, // координаталевоговерхнегоугла
CW_USEDEFAULT, 0, // ширина, высотаокна
NULL, // дескрипторродительскогоокна NULL, // дескрипторменюокна
hInstance, //дескрипторэкземпляраприложения NUL) ; // указательнадополнительныданныеокна;
if (!hWnd)
{ return FALSE; }
ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); returnTRUE;
}
Функция окна
LRESULT WINAPI |
WndProc(HWND hWnd, |
|
UINT msg, |
|
WPARAM wParam, |
|
LPARAM lParam); |
LRESULT CALLBACK |
WndProc(HWND hWnd, |
|
UINT msg, |
|
WPARAM wParam, |
|
LPARAM lParam); |
|
Функция окна |
LRESULT |
WINAPI WndProc(HWND hWnd, UINTmsg, |
|
WPARAM wParam, LPARAM lParam) |
{
switch(msg)
{ case WM_LBUTTONDOWN:
{ MessageBox(NULL,"Нажаталевая клавишамыши«,"Сообщение", MB_OK|MB_ICONINFORMATION);
return0;
}
}
case WM_DESTROY:
{
PostQuitMessage(0);
return0;
}
default: DefWindowProc(hwnd, msg, wParam, lParam);
}
WM_QUERYENDSESSION
Концептуальная структура функции GetMessage()
GetMessage() |
WNDOWS |
||
|
Сообщение |
нет |
|
|
|
||
|
|
Загрузить |
|
|
Получитьсообщение |
другое |
|
|
|
приложение |
|
да |
WM_QUIT |
|
|
|
|
||
|
нет |
WinMain() |
|
|
Возвращает |
||
Возвращает |
while (GetMessage ()) |
||
true |
|||
false |
{ |
||
|
|||
|
|
… |
|
|
|
} |