Win32asm обучение


Урок 11 - Основы ассемблера в windows - часть 2


Но подключение библиотека импорта это еще не все, что вы должны сделать. Файлы include (.inc) также необходимы. Они могут быть автоматически сгенерированы из библиотек, используя утилиту l2inc. Файлы include подключаются так:

include \masm32\include\kernel32.inc

Внутри include файлы, содержат определение прототипов функций dll, так что вы можете использовать invoke.

kernel32.inc:
...
MessageBoxA proto stdcall :DWORD, :DWORD, :DWORD, :DWORD
MessageBox textequ <MessageBoxA>
...

Вы можете заметить, что include-файл содержит ansi функции, а также определяет имена функций без суффикса 'A', чтобы они были такими-же, как их реальные имена: вы можете использовать MessageBox вместо MessageBoxA. После того, как вы подключили библиотеку и include-файл, вы можете использовать функцию:

invoke MessageBox, NULL, ADDR MsgText, ADDR MsgTitle, NULL

11.2 - include-файл 'windows'

Здесь есть еще специальный include-файл, названный windows.inc, который содержит все константы и структуры для windows API. Например, окно сообщений может иметь различные стили. Четвертый параметр функции это стиль. NULL (пустой указатель) замещает MB_OK, которая обозначает кнопку OK. Include-файл windows содержит определения для этих стилей:

MB_OK equ 0
MB_OKCANCEL equ ...
MB_YESNO equ ...

Так что вы можете использовать эти имена, как константы:

invoke MessageBox, NULL, ADDR MsgText, ADDR MsgTitle, MB_YESNO

Пример использует include-файл из пакета masm:

include \masm32\include\windows.inc

11.3 - "Каркас" программы

.486
.model flat, stdcall

option casemap:none

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\gdi32.lib

include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\gdi32.inc

include \masm32\include\windows.inc

.data

    <Здесь ваши инициализируемые данные>

.data?

    <Здесь ваши не инициализируемые данные>

.const

    <Здесь ваши константы>




- Начало -  - Назад -  - Вперед -



Книжный магазин