Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2011, 22:26   #1
Silly Student
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
Сообщение Аргумент в функцию потока не передается

Приветствую !

Есть функция потока

Код:
DWORD WINAPI ThreadFunc(PVOID lpParam)
{
ShowMessage(*(DWORD*) lpParam);
}
А есть само создание потока
Код:
DWORD pp=1; //параметры потока
DWORD p_id; //id потока
potok = CreateThread(
	0,
	0,
	ThreadFunc,
	&pp,
	0,
	&p_id
	);
Вопрос: почему ShowMessage всегда показывает 0 ?
Пишу в Cbuilder XE, если это имеет значение.
Silly Student вне форума Ответить с цитированием
Старый 19.10.2011, 08:42   #2
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

желательно чтобы переменная pp не была локальной.
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 19.10.2011, 08:54   #3
Silly Student
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
По умолчанию

Дело в том, что мне надо создать несколько потоков, и pp переписывается каждый раз, в итоге в функцию попадает только последний. (Это после того, как я сделал pp глобальной).

Последний раз редактировалось Silly Student; 19.10.2011 в 10:01.
Silly Student вне форума Ответить с цитированием
Старый 19.10.2011, 12:42   #4
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

Непонятно что мешает передавать в функцию само значение pp (размер то позволяет), а не адрес на ячейку памяти с этим значением(которую вы же сами постоянно меняете при глобальном объявлении/меняется из-за того стек очистится и перезапишется раньше, чем создастся новый тред и считает данные по адресу)
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать номер потока из самого потока? GaMeSTeR Помощь студентам 0 03.12.2010 09:50
не передается картинка TCPClient/Server Lokos Работа с сетью в Delphi 1 05.10.2010 08:14
Вычисления значение выражения, которое передается в функцию в виде строки noobOS Помощь студентам 5 01.07.2010 17:03
Можно ли вызвать функцию потока, которая не стоит в Execute? TwiX Общие вопросы Delphi 4 12.12.2009 22:29