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

 WASM Phorum —› WASM.WIN32 —› Тред

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


Дата: Июн 30, 2003 03:00:54

Создаю тред:
invoke CreateThread,NULL,NULL,Thread_IR,0,ID_Thread
в программе процедура треда определена следующим образом
proc Thread_IR,param
enter
push ecx edi esi ebx
invoke MessageBox,0,EditClass,EditClass,MB_OK
pop ebx esi edi ecx
return
программа написана под FASM. По нажатию пункта меню запускается тред, но в результате винда виснет намертво.
Подскажите в чём дело?


Дата: Июн 30, 2003 05:29:48

Я не знаю синтаксис FASM, но под MASM должно работать так:

invoke CreateThread,0,0,Thread_IR,0,OFFSET ID_Thread

. . .

Thread_IR PROC param:DWORD
invoke MessageBox,0,OFFSET EditClass,OFFSET EditClass,0
ret
Thread_IR ENDP

А зачем, собственно, сохранять ecx, edi, esi и ebx?


Дата: Июн 30, 2003 09:08:58

OFFSET EditClass это адрес процедуры?


Дата: Июн 30, 2003 09:10:53

моё последнее сообщение
OFFSET EditClass это адрес процедуры?
можно удалить.


Дата: Июн 30, 2003 12:56:23

Ошибка найдена, у функции CreateThread 6 параметров, а я указал только 5.
Aquila
Получается в исходнике Iczeliona, содержащемся в тексте урока №15, ошибка. Надо бы добавить ещё один нулевой параметр в функцию CreateThread.


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