![]() |
![]() |
gMan |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Реальное имя: Вася Пупкин Репутация: ![]() ![]() ![]() |
Решил написать про программирование на асме под Win32.
И так сегодня в номере ![]() ![]() Мы разберем простую программу, которая выводит только окно. Я взял пример программы Wap32.asm из пакета TASM и несколько упростил ее. .386 Файл win32.inc содержит некоторые нужные константы и структуры
Получим дескриптор программы. Далее инициализируем структуру WndClass для регистрации окна
clsStyle - определяет стиль класса
clsLpfnWndProc - указывает на процедуру окна
clsHInstance - содержит дескриптор программы
clsLpszClassName - определяет имя класса окна
Создаем окно:
newhwnd - дескриптор окна Покажем окно:
Обновим окно:
Создаем цикл для обработки сообщений окна
выход из программы:
Процедура окна: WndProc proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD, Win32 требует, чтобы EBX, EDI, и ESI были сохранены
На первый взгляд кажется, что слишком много написано для простой программы. На самом же деле писать все полностью не нужно, достаточно написать файл один раз, а потом использовать его как шаблон для своих новых программ. Можно создать объектный файл и использовать его как загрузочный код, а писать только процедуру окна (WinProc). А в следующий раз мы разберём что нибудь посложнее... -------------------- Стабильность - признак мастерства
|
![]() ![]() |
gMan |
![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Реальное имя: Вася Пупкин Репутация: ![]() ![]() ![]() |
Я бы с интересом почитал:
06 - Ввод с помощью мыши 07 - Ввод с помощью мыши часть 2 08 - Ввод мышью и цвет фона 09 - HPENs 10 - HBRUSHs 11 - Рисование контуров 14 - Горизонтальная прокрутка 15 - Установка значка 16 - Установка курсора 17 - Меню 18 - Меню часть 2 -------------------- Стабильность - признак мастерства
|
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 12:14 |