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

 WASM Phorum —› WASM.WIN32 —› Помогите с CreateThread

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


Дата: Май 15, 2004 19:42:39

mov eax,OFFSET procMD
invoke CreateThread,NULL,NULL,eax,NULL,0,ADDR ThreadID
..............
procMD PROC Param:DWORD ;строка118
.............
при ассемблировании выдает ошибку "conflicting parameter definition" на строке118
Какое токое противоречивое определение?
пробывал передавать какой нибудь параметр, тоже самое, ну прям замучился!


Дата: Май 15, 2004 20:17:37 · Поправил: Asterix

директива ADDR означает
lea eax, параметр
push eax

и твой eax будет затерт, вот masm и предупреждает
замени ADDR на OFFSET
или вместо eax используй другой регистр

кстати, этот код глупый, тебе не кажется:
mov eax,OFFSET procMD
invoke CreateThread,NULL,NULL,eax,NULL,0,ADDR ThreadID


Дата: Май 15, 2004 20:18:20 · Поправил: Quantum

"procMD PROTO ..." в студию!

Asterix
А вот и нет ;-) ADDR в данном случае равносильна OFFSET, но лучше конечно использовать OFFSET. А ошибка совсем в другом месте.


Дата: Май 15, 2004 20:19:24

Нужно так:
invoke CreateThread, NULL, 0, OFFSET ThreadProc, NULL, 0, OFFSET ThreadID


Дата: Май 15, 2004 20:37:39

Всем спасибо!
Как-то не приходилось в асме с трейдами баловаться.
Разобрался.
Просто писал сначала функцию procMD, тестировал, вот и объявил в начале
procMD proto :dword
и
;procMD proto :dword
решило все проблемы


Дата: Май 15, 2004 20:49:05

Quantum
> ADDR в данном случае равносильна OFFSET

Хм, раз так все не однозначно то лучше действительно использовать OFFSET :-)


Дата: Май 15, 2004 23:10:03

[ Quantum : ADDR в данном случае равносильна OFFSET ]

А вот и НЕТ!!
В данном случае мы ничего не можем сказать конкретно, не зная о том, что такое ThreadID !! Это же MASM :-/


Дата: Май 16, 2004 00:54:12

S_T_A_S_
Мы не знаем наверняка, но вольны предположить :-) Если бы ThreadID была локальной переменной, MASM предупредил бы о затирании EAX (error A2133: register value overwritten by INVOKE).


Дата: Май 16, 2004 01:25:55

Quantum

Хм.. да, логично.
Но если б не было никакого сообщения об ошибке? :-)


Дата: Май 16, 2004 03:57:38

Тогда другое дело.


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