потоки

Тема в разделе "MS Visual C++", создана пользователем Dmitriy.Ch, 26 сен 2007.

  1. Dmitriy.Ch

    Dmitriy.Ch Гость

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

    Код (Text):
    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 ==========


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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    ну для начала, не статическая функция-член и обычная функция имеют разные сигнатуры
     
  3. Dmitriy.Ch

    Dmitriy.Ch Гость

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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    google C++ active objects

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

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Функция потока должна быть или статическим членом класса или глобальной функцией
     
Загрузка...
Похожие Темы - потоки
  1. Mady
    Ответов:
    3
    Просмотров:
    1.474
  2. 203
    Ответов:
    4
    Просмотров:
    1.751
  3. Senset
    Ответов:
    0
    Просмотров:
    2.330

Поделиться этой страницей