Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с вызовом API

75K
03 октября 2011 года
xteam777
1 / / 03.10.2011
Есть такая процедура (FASM):
Цитата:

proc NewDialogParam,hInstance,lpTemplateName,hWndParent,lpDialogFunc,dwInitParam
stdcall Hook,CreateDialogParamW,byf2,1
invoke CreateDialogParamW,[hInstance],[lpTemplateName],[hWndParent],[lpDialogFunc],[dwInitParam]
test eax,eax
je @f
invoke SetWindowLong,eax,GWL_WNDPROC,NewProc
mov [OldProc],eax
@@:
stdcall Hook,CreateDialogParamW,NewDialogParam,0
ret
endp


мне нужно заменить вызовы "invoke" на "call". Когда я пишу так:

Цитата:

push [dwInitParam]
push [lpDialogFunc]
push [hWndParent]
push [lpTemplateName]
push [hInstance]
call CreateDialogParamW


или так:

Цитата:

push [dwInitParam]
push [lpDialogFunc]
push [hWndParent]
push [lpTemplateName]
push [hInstance]
call [CreateDialogParamW]


то при запуске программа выдает сообщение "... обратилась по адресу...память не может быть "read"". С вызовом SetWindowLong тоже самое. Что я делаю не так?

316
03 октября 2011 года
Alm3n
889 / / 29.05.2009
Скобки не нужны. Странно, почему ты ещё такой вариант не попробовал.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог