идентификатор stdout или другого консольного
; процедрура output_string ; выводит на экран строку ; ввод: esi - адрес строки ; ebx - идентификатор stdout или другого консольного буфера
output_string proc near
; определим длину строки cld xor eax,eax mov edi,esi repne scasb dec edi sub edi,esi ; пошлем ее на консоль push 0 push offset message_l ; сколько байт выведено на консоль push edi ; сколько байт надо вывести на консоль push esi ; адрес строки для вывода на консоль push ebx ; идентификатор буфера вывода call WriteConsole ; WriteConsole(hConsoleOutput,lpvBuffer,cchToWrite, ; lpcchWritten,lpvReserved) ret output_string endp
end _start
В файл kernel32.inc надо добавить между ifdef _TASM_ и else строки:
extrn GetStdHandle:near extrn WriteConsoleA:near WriteConsole equ WriteConsoleA
и между else и endif:
extrn __imp__GetStdHandle@4:dword extrn __imp__WriteConsoleA@20:dword GetStdHandle equ __imp__GetStdHandle@4 WriteConsole equ __imp__WriteConsoleA@20
Кроме того, надо создать файл mpr.inc:
; mpr.inc ; включаемый файл с определениями функций из mpr.dll ; ifdef _TASM_ includelib import32.lib ; имена используемых функций extrn WNetGetUserA:near extrn WNetOpenEnumA:near extrn WNetEnumResourceA:near extrn WNetCloseEnum:near ; присваивания для облегчения читаемости кода WNetGetUser equ WNetGetUserA WNetOpenEnum equ WNetOpenEnumA WNetEnumResource equ WNetEnumResourceA else includelib mpr.lib ; истинные имена используемых функций extrn __imp__WNetGetUserA@12:dword extrn __imp__WNetOpenEnumA@20:dword extrn __imp__WNetEnumResourceA@16:dword extrn __imp__WNetCloseEnum@4:dword ; присваивания для облегчения читаемости кода WNetGetUser equ __imp__WNetGetUserA@12 WNetOpenEnum equ __imp__WNetOpenEnumA@20 WNetEnumResource equ __imp__WNetEnumResourceA@16 WNetCloseEnum equ __imp__WNetCloseEnum@4 endif
Еще потребуется файл def32.inc, в который поместим определения констант и структур из разных включаемых файлов для языка С. Существует утилита h2inc, преобразующая эти файлы целиком, но мы создадим собственный включаемый файл, в который будем добавлять новые определения по мере надобности.
; def32.inc ; файл с определениями констант и типов для примеров программ под win32
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий