Библиотека knigago >> Литература по изданиям >> Самиздат, сетевая литература >> Assembler & Win32


Газета «Совершенно секретно» Газета «Совершенно секретно 2019 №11» — очередной выпуск популярной еженедельной газеты, известной своими расследованиями, эксклюзивными материалами и сенсационными откровениями. Номер посвящён актуальным событиям в России и мире. Читателям предлагается широкий спектр тем: от политических интриг до социальных проблем и культурных трендов. На обложке представлена статья «Тайны „дела Магнитского“», в которой авторы расследуют обстоятельства гибели юриста Сергея...

Александр Усов - Assembler & Win32

Assembler & Win32
Книга - Assembler & Win32.  Александр Усов  - прочитать полностью в библиотеке КнигаГо
Название:
Assembler & Win32
Александр Усов

Жанр:

Самиздат, сетевая литература, Литература ХX века (эпоха Социальных революций), Assembler, Windows API

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Assembler & Win32"

В статье вкратце рассматриваются вопросы создания Win32-приложений на языке Ассемблер. Приведены конкретные примеры.

Читаем онлайн "Assembler & Win32". [Страница - 7]

нужды в дополнительном поле, которое сохраняет код сообщения. Тогда каждый элемент вектора будет содержать только адрес обработчика, а найти нужный элемент весьма просто. Из полученной константы, пришедшей в сообщении, вычитается идентификатор первого пункта меню или первого управляющего элемента, это и будет номер нужного элемента вектора. Остаётся только сделать переход на обработчик.

Вообще тема макроопределений весьма поучительна и обширна. Мне редко доводится видеть грамотное использование макросов и это досадно, поскольку с их помощью можно сделать работу в ассемблере значительно проще и приятнее.

Резюме

Для того, чтобы писать полноценные приложения под Win32 требуется не так много:

— собственно компилятор и компоновщик (я использую связку TASM32 и TLINK32 из пакета TASM 5.0). Перед использованием рекомендую “наложить” patch, на данный пакет. Patch можно взять на site www.borland.com или на нашем ftp сервере ftp.uralmet.ru.

— редактор и компилятор ресурсов (я использую Developer Studio и brcc32.exe);

— выполнить перетрансляцию header файлов с описаниями процедур, структур и констант API Win32 из нотации принятой в языке Си, в нотацию выбранного режима ассемблера: Ideal или MASM.

В результате у Вас появится возможность писать лёгкие и изящные приложения под Win32, с помощью которых Вы сможете создавать и визуальные формы, и работать с базами данных, и обслуживать коммуникации, и работать multimedia инструментами. Как и при написании программ под DOS, у Вас сохраняется возможность наиболее полного использования ресурсов процессора, но при этом сложность написания приложений значительно снижается за счёт более мощного сервиса операционной системы, использования более удобной системы адресации и весьма простого оформления программ.

Приложение 1. Файлы, необходимые для первого примера

Файл констант ресурсов resource.inc
IDD_DIALOG   =      65     ; 101

IDR_NAME     =      3E8    ; 1000

IDC_STATIC   =      -1


Файл заголовков resource.h
#define IDD_DIALOG                      101

#define IDR_NAME                        1000

#define IDC_STATIC                      -1


Файл определений dlg.def
NAME         TEST

DESCRIPTION  'Demo dialog'

EXETYPE      WINDOWS

EXPORTS      DlgProc                    @1


Файл компиляции makefile
#   Make file for Demo dialog

#       make -B


NAME   = dlg

OBJS   = $(NAME).obj

DEF    = $(NAME).def

RES    = $(NAME).res


TASMOPT=/m3 /mx /z /q /DWINVER=0400 /D_WIN32_WINNT=0400


!if $d(DEBUG)

TASMDEBUG=/zi

LINKDEBUG=/v

!else

TASMDEBUG=/l

LINKDEBUG=

!endif


!if $d(MAKEDIR)

IMPORT=$(MAKEDIR)\..\lib\import32

!else

IMPORT=import32

!endif


$(NAME).EXE: $(OBJS) $(DEF) $(RES)

       tlink32 /Tpe /aa /c $(LINKDEBUG) $(OBJS),$(NAME),, $(IMPORT), $(DEF), $(RES)


.asm.obj:

       tasm32 $(TASMDEBUG) $(TASMOPT) $&.asm


$(RES): $(NAME).RC

       BRCC32 -32 $(NAME).RC

Приложение 2. Файлы, необходимые для второго примера

Файл описания mylib.def
LIBRARY      MYLIB

DESCRIPTION  'DLL EXAMPLE, 1997'

EXPORTS      Hex2Str             @1


Файл компиляции makefile
#   Make file for Demo DLL#   make –B#   make –B –DDEBUG for debug information


NAME   = mylib

OBJS   = $(NAME).obj

DEF    = $(NAME).def

RES    = $(NAME).res


TASMOPT=/m3 /mx /z /q /DWINVER=0400 /D_WIN32_WINNT=0400


!if $d(DEBUG)

TASMDEBUG=/zi

LINKDEBUG=/v

!else

TASMDEBUG=/l

LINKDEBUG=

!endif


!if $d(MAKEDIR)

IMPORT=$(MAKEDIR)\..\lib\import32

!else

IMPORT=import32

!endif


$(NAME).EXE: $(OBJS) $(DEF)

       tlink32 /Tpd /aa /c $(LINKDEBUG) $(OBJS),$(NAME),, $(IMPORT), $(DEF)


.asm.obj:

       tasm32 $(TASMDEBUG) $(TASMOPT) $&.asm


$(RES): $(NAME).RC

       BRCC32 -32 $(NAME).RC

Приложение 3. Файлы, необходимые для третьего примера

Файл описания dmenu.def
NAME         TEST

DESCRIPTION  'Demo menu'

EXETYPE      WINDOWS

EXPORTS      WndProc                    @1


Файл ресурсов dmenu.rc
#include "resource.h

"MyMenu MENU DISCARDABLE

BEGIN    POPUP "Files"

    BEGIN

        MENUITEM "Open",                        ID_OPEN

        MENUITEM "Save",                        ID_SAVE

        MENUITEM SEPARATOR

        MENUITEM "Exit",                        ID_EXIT

    END

    MENUITEM "Other",                           65535

END


Файл заголовков resource.h
#define MyMenu                          101

#define ID_OPEN                         40001

#define ID_SAVE                         40002

#define ID_EXIT                         40003


Файл компиляции makefile
#   Make file for Turbo Assembler Demo menu

#       make –B

#       make -B -DDEBUG -DVERN    for debug information and version

NAME   = dmenu

OBJS   = $(NAME).obj

DEF    = $(NAME).def

RES    = $(NAME).res

!if --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.