Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

АРХИВ ФОРУМА eXeL@B
https://exelab.ru/f/

   

GL#0M asm coding W2k Установил себе win2000. Все «инструменты» нормально


GL#0M asm coding W2k Установил себе win2000. Все «инструменты» нормально работают. Тут попросили закейгенить одну прогу. Ну я полез в свою папку с наработками, взял свой исходник на масме (под win98 и XP писал). Компилю. Нажимаю кнопку Generate и пи зд ец! Вылетает! Чё такое?! Под хп и маздаем всё работало же. Ничего не пойму. Ладно полез в софтайс, генерация проходит нормально... wsprintf формирует номерок, остаётся только вывести его, но нет! После SetDlgItemText происходит вылет! Что за ботва? В w2k им что, пользоваться нужно как-то иначе? Помогите пожалуйста с этой, я уверен, тривиальной проблемой.
Вот кусок исходника:
....
pusha ;for 2k
....
lea eax, NameB
push eax
call lstrlen
cmp eax, 3h
jl _short
....
push ebx
push offset FormatB
push offset Serial
call _wsprintfA

_0003:
invoke SetDlgItemText,hWin,101,Serial // вылетает
ret

_short:
invoke SetDlgItemText,hWin,101,ADDR ShortError // здесь ошибки не происходит
ret
...
popa ;for 2k,
xor eax, eax ;for NT4
ret
Nitrogen :: делай лучше
invoke wsprintf, addr serial,addr formatb,ebx
что-то мне отсутствие add esp,3*4 после call wsprintf не нравится..

и еще:
invoke SetDlgItemText,hWin,101,ADDR Serial

Dragon :: Да, действительно - wsprintf - cdecl функция, стек надо самому выравнивать, т.е. прибавлять 4 умноженное на число переданных параметров.

GL#0M :: Nitrogen
Dragon
Спасибо ребята! Всё понял, буду знать теперь.






   
Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS