Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Что-то не хочет передаваться указатель в ф-ию потока  (Прочитано 4391 раз)
0 Пользователей и 1 Гость смотрят эту тему.
The Nameless One
Помогающий

ru
Offline Offline
Пол: Мужской

« : 20-03-2011 19:26 » 

Создаю поток внутри функции-члена:
Код:
void TClass::Start()
{
      hThread = (HANDLE)_beginthreadex(NULL, 0, ThreadFunc, NULL, 0, (unsigned int*)this);
}

Затем внутри самой ф-ии (статичная):
Код:
unsigned __stdcall TClass::ThreadFunc(void *pThis)
{
       TClass *tc = (TClass*)pThis;
...
}     

в tc передается ноль.

Что я делаю не так?
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 20-03-2011 19:48 » 

Надо внимательнее читать документацию на beginthreadex: аргумент передаётся 4-м параметром, а не 6-м.
А по указателю, передаваемому 6-м аргументом, функция записывает id потока (так что оно тебе ещё и объект класса сломает, записав в this этот идентификатор).
Записан
The Nameless One
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 20-03-2011 19:53 » new

1000 раз спасибо!
У меня дедлайн - все выходные сижу:), голова уже бунтует
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines