· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Fasm и локальный буфер.

Посл.отвђт Сообщенiе


Дата: Авг 5, 2004 20:10:16

Имеем такой код:
proc EnumWindowsFunc, hwnd, lParam
.sBuff rb 256
enter
  invoke GetWindowText, [hwnd], .sBuff, 256
  invoke lstrcmpi, WindowText, .sBuff
  test eax, eax
  jnz @F
  invoke EnumChildWindows, [hwnd], EnumChildWindowsFunc, 0
  xor eax, eax
  jmp .finish
@@:
  xor eax, eax
  inc eax
.finish:
  return
endp


Fasm ругается на буффер .sBuff при invoke, что я делаю не так? Или fasm не умеет брать адрес стекового буфера подобно ADDR в masm32?


Дата: Авг 5, 2004 21:58:13

надо lea вручную делать


Дата: Авг 5, 2004 22:57:42

comrade
Спасибо.
Вобщем я так и думал, но надеялся что это должно быть учтено в макросе invoke или другом каком-нибудь.


Дата: Авг 6, 2004 02:16:46

посмотри на новые макросы которые сделал S.T.A.S.


Дата: Авг 6, 2004 02:43:11

Кстати я тут нашёл что Privalov говорил WIN32AX.INC поддерживает ADDR.


Дата: Авг 6, 2004 08:17:09

Судя по тексту макроса - точно поддерживает.


Дата: Авг 6, 2004 15:13:16

Макросы в WIN32AX.INC/WIN32AXP.INC рулят :-)
include '%fasminc%\win32axp.inc'

.code

align 4
proc EnumChildWindowsFunc, hwnd, lParam
.Buff  rb  64
enter
  invoke GetWindowText, [hwnd], ADDR .Buff, 64
  invoke lstrcmpi, ButtonText, ADDR .Buff
  test eax, eax
  jnz @F
  invoke ShowWindow, [hwnd], SW_HIDE
  xor eax, eax
  jmp .finish
@@:
  xor eax, eax
  inc eax
.finish:
  return
endp

align 4
proc EnumWindowsFunc, hwnd, lParam
.Buff  rb  256
enter
  invoke GetWindowText, [hwnd], ADDR .Buff, 256
  invoke lstrcmpi, WindowText, ADDR .Buff
  test eax, eax
  jnz @F
  invoke EnumChildWindows, [hwnd], EnumChildWindowsFunc, 0
  xor eax, eax
  jmp .finish
@@:
  xor eax, eax
  inc eax
.finish:
  return
endp

align 4
start:
  invoke EnumWindows, EnumWindowsFunc, 0
  invoke ExitProcess, 0

.data

WindowText   db   'Калькулятор',0
ButtonText   db   'Hex',0

.end start


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.089