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

 WASM Phorum —› WASM.HEAP —› помогите с FASM'ом разобраться...

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


Дата: Янв 6, 2004 14:58:48 · Поправил: dz 3BePIOra

Проблема такая: компилятор матерится на банальный джамп:
proc WndProc,hwnd,wmsg,wparam,lparam
        enter
        invoke Bzz,[hwnd],[wmsg],[wparam],[lparam]
        return

proc Bzz,hwnd,wmsg,wparam,lparam
        cmp    [wmsg],WM_DESTROY
        je     wmdestroy  ; << invalid value
  defwndproc:
        invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
        jmp    finish
  wmdestroy:
        invoke PostQuitMessage,0
        xor    eax,eax
  finish:
        ret

Может кто знает, что ему надо? Если воткнуть код в WndProc, все заработает...


Дата: Янв 6, 2004 15:52:12

Попробуй в начало меток точки дописать.(в переходах тоже)


Дата: Янв 6, 2004 16:06:06

У тебя там несколько ошибок, но то, о чём спрашиваешь ты, происходит из-за того, что ты не поставил после 'proc Bzz,hwnd,wmsg,wparam,lparam' команду "enter".


Дата: Янв 6, 2004 16:13:01

Сделал вот так:
proc WndProc,hwnd,wmsg,wparam,lparam
        invoke Bzz,[hwnd],[wmsg],[wparam],[lparam]
        return

proc Bzz,hwnd,wmsg,wparam,lparam
        enter
        push   ebx esi edi
        cmp    [wmsg],WM_DESTROY
        je     .wmdestroy

  .defwndproc:
        invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
        jmp    .finish

  .wmdestroy:
        invoke PostQuitMessage,0
        xor    eax,eax
        jmp    .finish

  .finish:
        pop    edi esi ebx
        ret

но все-равно таже ошибка


Дата: Янв 6, 2004 16:38:15

proc Bzz,hwnd,wmsg,wparam,lparam
        enter
        push   ebx esi edi
        cmp    [wmsg],WM_DESTROY
        je     wmdestroy

  defwndproc:
        invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
        jmp    finish

  wmdestroy:
        invoke PostQuitMessage,0
        xor    eax,eax
        jmp    finish

  finish:
        pop    edi esi ebx
        return

proc WndProc,hwnd,wmsg,wparam,lparam
	enter
        stdcall Bzz,[hwnd],[wmsg],[wparam],[lparam]
        return


Дата: Янв 6, 2004 16:40:54

спасибо, уже разобрался!


Дата: Янв 6, 2004 19:41:56

Возник еще вопрос: как в ресурсы запихать прогресбар?
в МАСМе было так:
CONTROL "IDC_PROGRESS", 2001, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE, 2, 121, 230, 10 

а вот в FASM'е я не нашел :(( Помогите...


Дата: Янв 6, 2004 23:31:27

Ето работает с FASM 1.50:
section '.res' resource from 'myresource.res' data readable   


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