_beginthreadex и классы
У меня в классе есть метод unsigned __stdcall MyMethod(void* param); Мне нужно создать поток в классе, для этого я вызываю _threadHandle = (HANDLE)_beginthreadex(NULL, 0, &MyMethod, NULL, 0, &threadId); Компилятор выдаёт ошибку Error 4 error C2276: '&' : illegal operation on bound member function expression. Как можно запустить такой поток?
Цитата: Maximillian_Cavalera
У меня в классе есть метод unsigned __stdcall MyMethod(void* param); Мне нужно создать поток в классе, для этого я вызываю _threadHandle = (HANDLE)_beginthreadex(NULL, 0, &MyMethod, NULL, 0, &threadId); Компилятор выдаёт ошибку Error 4 error C2276: '&' : illegal operation on bound member function expression. Как можно запустить такой поток?
Используй статический метод. При необходимости передавай указатель на экземпляр класса через 4й аргумент _beginthreadex.
Цитата: Maximillian_Cavalera
У меня в классе есть метод unsigned __stdcall MyMethod(void* param); Мне нужно создать поток в классе, для этого я вызываю _threadHandle = (HANDLE)_beginthreadex(NULL, 0, &MyMethod, NULL, 0, &threadId); Компилятор выдаёт ошибку Error 4 error C2276: '&' : illegal operation on bound member function expression. Как можно запустить такой поток?
&MyMethod - мощно.
Посмотрите здесь - предыдущий пост, но более развёрнуто.
Цитата: Der Meister
&MyMethod - мощно.
че не так? :)
А действительно... Точняк, сразу видно, что адрес передаём :D