![]() |
![]() |
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). А в следующий раз мы разберём что нибудь посложнее... -------------------- Стабильность - признак мастерства
|
![]() ![]() |
Dark |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
Direct X
это директ драв или сразу в 3D?? По моему эта тема уже может давно перейти из раздела асм в раздел виндовс программирование, но я не против того что она здесь. -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 19:07 |