Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

AfxBeginThread из класса

550
10 мая 2003 года
matwey
82 / / 03.12.2002
Есть к примеру класс CMyE он имеет к примеру две функции

UINT CMyE::A( LPVOID pParam){
MessageBox("Ku-Ku");
return 0;
}

UINT CMyE::B(){
AfxBeginThread(CMyE::A,NULL); //Как запустить новый поток? из функции-члена класса, причем поток должен выполняться другой функцией-членом класса. Как здесь, но на такое написание компилятор ругается.
return 0;
}
426
10 мая 2003 года
Krivonos
112 / / 20.01.2000
Как написано в MSDN:
прототип вызова
AfxBeginThread(MyThreadProc, pNewObject);
где ф-ия MyThreadProc дожна быть типа:
UINT MyThreadProc( LPVOID pParam );
и, я так понимаю, она не может быть членом класса.
3.7K
11 мая 2003 года
dajigin
16 / / 11.05.2003
Цитата:
Originally posted by matwey
Есть к примеру класс CMyE он имеет к примеру две функции

UINT CMyE::A( LPVOID pParam){
MessageBox("Ku-Ku");
return 0;
}

UINT CMyE::B(){
AfxBeginThread(CMyE::A,NULL); //Как запустить новый поток? из функции-члена класса, причем поток должен выполняться другой функцией-членом класса. Как здесь, но на такое написание компилятор ругается.
return 0;
}



Надо объявить функцию A как static.

1.9K
12 мая 2003 года
sercher
60 / / 21.03.2003
Функция потока должна быть как статичная. Либо сделай глобальный указатель на функцию и присвой ему нужное значение.
550
12 мая 2003 года
matwey
82 / / 03.12.2002
Цитата:
Originally posted by sercher
Функция потока должна быть как статичная. Либо сделай глобальный указатель на функцию и присвой ему нужное значение.



Всем спасибо, все работает, я вобщем то почти сразу сам дагодался, извините что оторвал.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог