Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

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


Ответ
 
Опции темы
Старый 26.09.2007, 10:47   #1
Дмитрий_Ч
 
Регистрация: 26.09.2007
Сообщений: 9
По умолчанию одна функция потока, а другая функция - член класса запускающего этот поток

помогите советом.
создаю свой класс. Хочу чтобы одна из его функций была и функцией потока, а другая функция-член моего класса запускала этот поток. Вот фрагмент кода:

My_Class::My_Class()
{

}

My_Class::~My_Class()
{
}

UINT My_Class::My_ClassTHRead(LPVOID pParam)
{
return 0;
}



void My_Class::BeginThread(void)
{

AfxBeginThread(&My_Class::My_ClassT HRead, this);
}

При компиляции выдаются следующие ошибки, в которых я не могу разобраться:

error C2665: 'AfxBeginThread' : none of the 2 overloads could convert all the argument types
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(4196): could be 'CWinThread *AfxBeginThread(AFX_THREADPROC,LPVO ID,int,UINT,DWORD,LPSECURITY_ATTRIB UTES)'
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(4199): or 'CWinThread *AfxBeginThread(CRuntimeClass *,int,UINT,DWORD,LPSECURITY_ATTRIBU TES)'
while trying to match the argument list '(UINT (__thiscall My_Class::* )(LPVOID), My_Class *const )'
Build log was saved at "file://d:\Project\VisualStudio\VS2005\Com_ Port\ComPort\ComPort\Debug\BuildLog .htm"
ComPort - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Подскажите, что я делаю не так.
Дмитрий_Ч вне форума Ответить с цитированием
Старый 26.09.2007, 16:06   #2
Alek86
Форумчанин
 
Регистрация: 25.09.2007
Сообщений: 189
По умолчанию

функция, которая запускается в новом потоке обязана быть какого-то определенного вида (не помню, какого) и обязана НЕ ЯВЛЯТЬСЯ нестатическим членом класса
потому сделай ф-ю My_ClassTHRead статической (хоть и внутри класса). И будет тебе счастье.
Alek86 вне форума Ответить с цитированием
Старый 27.09.2007, 08:50   #3
Дмитрий_Ч
 
Регистрация: 26.09.2007
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Alek86 Посмотреть сообщение
функция, которая запускается в новом потоке обязана быть какого-то определенного вида (не помню, какого) и обязана НЕ ЯВЛЯТЬСЯ нестатическим членом класса
потому сделай ф-ю My_ClassTHRead статической (хоть и внутри класса). И будет тебе счастье.
Спасибо за совет
Очень помог vbmenu_register("postmenu_36613", true);
Дмитрий_Ч вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция ZiLi Microsoft Office Excel 1 05.09.2008 18:37
функция sergei64_89 Общие вопросы C/C++ 2 25.05.2008 16:48
Функция... Sota Помощь студентам 5 24.05.2008 22:19
Функция Chr() Fantom Общие вопросы Delphi 4 12.05.2008 12:45


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS