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

 WASM Phorum —› WASM.WIN32 —› Где тут ошибка???

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


Дата: Июл 25, 2003 13:24:09

_SLWA db 'SetLayeredWindowAttributes',0
_kernel db 'KERNEL32.DLL',0

................................

invoke LoadLibrary,_kernel
invoke GetProcAddress,eax,_SLWA
or eax, eax
jne b2
push LWA_ALPHA
push 160
push 0
push [mainhwnd]
call eax
b2:


Дата: Июл 25, 2003 14:11:42 · Поправил: Безпощадный даос

invoke GetProcAddress,eax,_SLWA 
or eax, eax 
jne b2 
Так вместо того, чтобы сделать вызов функции, адрес которой в eax (в случае успешного вызова GetProcAddress) вы прыгаете непонятно куда ;-)


Дата: Июл 25, 2003 16:36:28

Songoku

А что, дебаггеры отменили уже. Что мешало проверить код под отладчиком
и убедится что он работает так как нужно?!


Дата: Июл 25, 2003 19:41:43

   invoke LoadLibrary,OFFSET _kernel
   invoke GetProcAddress,eax,OFFSET _SLWA
   test eax,eax
   jz @F
   push LWA_ALPHA
   push 160
   push 0
   push mainhwnd
   call eax
@@:


Дата: Июл 25, 2003 20:41:51

Я пишу на Flat Assembler'e
Там нету OFFSET синтекса!!!


Дата: Июл 25, 2003 20:44:58

Songoku
Понятно. Тогда jne <-> jz и всего делов...


Дата: Июл 25, 2003 20:49:19

Люди я теперь понял ...
В KERNEL32.DLL SetLayeredWindowAttributes функции не существует, он в USER32.DLL


Дата: Июл 25, 2003 21:01:56

Вместо LoadLibrary используй GetModuleHandle с темиже параметрами


Дата: Июл 25, 2003 21:09:40

Вместо LoadLibrary используй GetModuleHandle с темиже параметрами


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