
- •Оглавление
- •Цель работы
- •Краткая теория Введение в api-программирование
- •Api операционных систем
- •Widows api
- •Структура api-программ
- •Описание используемых api-функций
- •InitCommonControls
- •RegisterClassEx
- •ShowWindow Показать окно, установить статус показа. Если окно перед этим было видимо, возвращается значение - не 0. Если окно перед этим было не видимо, возвращаемое значение - 0.
- •ТеКст программы textred.Asm
- •Filedlgs.Asm
- •Rsrc.Rc
- •Результаты работы
- •Список литературы
Filedlgs.Asm
; ########################################################################
GetFileName PROTO :DWORD, :DWORD, :DWORD
SaveFileName PROTO :DWORD, :DWORD, :DWORD
FillBuffer PROTO :DWORD, :DWORD, :BYTE
.data
szFileName db 260 dup(0)
ofn OPENFILENAME <> ; structure
.code
; ########################################################################
GetFileName proc hParent:DWORD,lpTitle:DWORD,lpFilter:DWORD
mov ofn.lStructSize, sizeof OPENFILENAME
m2m ofn.hWndOwner, hParent
m2m ofn.hInstance, hInstance
m2m ofn.lpstrFilter, lpFilter
m2m ofn.lpstrFile, offset szFileName
mov ofn.nMaxFile, sizeof szFileName
m2m ofn.lpstrTitle, lpTitle
mov ofn.Flags, OFN_EXPLORER or OFN_FILEMUSTEXIST or \
OFN_LONGNAMES
invoke GetOpenFileName,ADDR ofn
ret
GetFileName endp
; #########################################################################
SaveFileName proc hParent:DWORD,lpTitle:DWORD,lpFilter:DWORD
mov ofn.lStructSize, sizeof OPENFILENAME
m2m ofn.hWndOwner, hParent
m2m ofn.hInstance, hInstance
m2m ofn.lpstrFilter, lpFilter
m2m ofn.lpstrFile, offset szFileName
mov ofn.nMaxFile, sizeof szFileName
m2m ofn.lpstrTitle, lpTitle
mov ofn.Flags, OFN_EXPLORER or OFN_LONGNAMES
invoke GetSaveFileName,ADDR ofn
ret
SaveFileName endp
; ########################################################################
FillBuffer proc lpBuffer:DWORD,lenBuffer:DWORD,TheChar:BYTE
push edi
mov edi, lpBuffer ; адрес буфера
mov ecx, lenBuffer ; длина буфера
mov al, TheChar ; загрузить др. с характером
rep stosb ; написать тип в буфере до тех пор пока ECX = 0
pop edi
ret
FillBuffer endp
; #########################################################################
Rsrc.Rc
#include "\masm32\include\resource.h"
500 ICON MOVEABLE PURE LOADONCALL DISCARDABLE "MAINICON.ico"
600 MENUEX MOVEABLE IMPURE LOADONCALL DISCARDABLE
BEGIN
POPUP "&Файл", , , 0
BEGIN
MENUITEM "&Создать", 1000
MENUITEM "&Открыть...", 1001
MENUITEM "&Сохранить...", 1002
MENUITEM "Сохранить &как", 1003
MENUITEM "", , 0x0800 /*MFT_SEPARATOR*/
MENUITEM "&Закрыть", 1010
END
POPUP "&Правка",,,0
BEGIN
MENUITEM "&Отменить\tCtrl+Z",1100
MENUITEM "", , 0x0800 /*MFT_SEPARATOR*/
MENUITEM "&Вырезать\tCtrl+X",1101
MENUITEM "&Копировать\tCtrl+C",1102
MENUITEM "&Вставить\tCtrl+V",1103
MENUITEM "&Удалить\tDelete",1104
END
POPUP "&Справка", , , 0
BEGIN
MENUITEM "&О блокноте", 1900
END
END
Результаты работы
Вывод
В результате выполнения данной курсовой работы был изучен один из разделов операционной системы – работа с текстовой информацией при программировании в Windows. Была написана программа на 32-битном ассемблере с применением API-функций.