• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

потоки

  • Автор темы Dmitriy.Ch
  • Дата начала
D

Dmitriy.Ch

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

Код:
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_ClassTHRead, 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,LPVOID,int,UINT,DWORD,LPSECURITY_ATTRIBUTES)'
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(4199): or 'CWinThread *AfxBeginThread(CRuntimeClass *,int,UINT,DWORD,LPSECURITY_ATTRIBUTES)'
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 ==========


Подскажите, что я делаю не так.
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
ну для начала, не статическая функция-член и обычная функция имеют разные сигнатуры
 
D

Dmitriy.Ch

ну для начала, не статическая функция-член и обычная функция имеют разные сигнатуры

а поподробнее можно. я начинающий в этом деле.
и еще, я пошел по этому пути, т.к. функция потока должна обращаться к переменным моего класса
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
google C++ active objects

ну или самое просто, передавать как thread proc, статический метод-член и как параметр туда кидать this. а уж из этой функций дергать нужный нам метод, который и будет производить полезную работу.
 
E

European

Функция потока должна быть или статическим членом класса или глобальной функцией
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!