Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Фукция класса как тред

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Фукция класса как тред
Имя
Сообщение << Старые топики   Новые топики >>
Фукция класса как тред - 2007-07-31 14:14:33.433333   
ChooseDeath

Сообщений: 19
Оценки: 0
Присоединился: 2007-07-30 15:13:05.753333
Нжно запустить фунцию Thread из класса как тред

void Class::Start()
{
CreateThread(0, 0, Thread, 0, 0, 0);
}

DWORD CALLBACK Class::Thread(LPVOID Param)
{
….
}

class Class{
void Start();
DWORD CALLBACK Thread(LPVOID Param);
};

Компилер матюкаеца, типа не может преобразовать DWORD (CALLBACK (_closure))(void*)
в DWORD (CALLBACK)(void*)
 
Мне нужно шоб ф-ия для запуска в треде находилась в теле класса,
но к прототипу ф-ии в классе добавляется какое-то _closure …
Пишу прогу, и застрял на этом месте, помогите плизз!
 
PS Вопрос малость не в тему но всё же:
Я расшарил папку, в разрешениях поставил юзера, но как мне зайти с другого компа
на эту шару под тем юзером ? Если заходить просто \\комп пишет нет прав…
Мож кто знает ?
Post #: 1
RE: Фукция класса как тред - 2007-07-31 19:22:26.133333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
значица так. Class::Thread – это ведь не static функция класса? значит ей должен передаваться неявный параметр – указатель this. соответственно функция CreateThread, которой ты передаёшь указатель на функцию Class::Thread должна вызывать её как метод класса. она этого не умеет по определению.

возможный выход #1
void Class::Start() { CreateThread(0, 0, start_this, this, 0, 0); } void Class::start_this (LPVOID param) { Class *this_ = (Class*)param; /* тут возможно стоит приводить способом более C++'ным. типа static_cast и все дела. */ this_-&gt;Thread (); } DWORD CALLBACK Class::Thread() { .... }
возможный выход #2
вместо того, чтобы создавать заглушки типа start_thread вручную, воспользоваться библиотечкой libsigc++, и писать несколько короче. примеров не будет, ибо наизусть я не помню, а в туторе к libsigc++ всё это описано в подробностях.
Post #: 2
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Фукция класса как тред







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.