Помогите с вызовом API
Цитата:
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 тоже самое. Что я делаю не так?
Скобки не нужны. Странно, почему ты ещё такой вариант не попробовал.