Как говорится в названии. Следующий мой скелет кода.запустить потоки функции члена класса в C++
class CLASS
{
public:
void A();
private:
DWORD WINAPI B(LPVOID);
};
void CLASS::A()
{
DWORD (WINAPI CLASS::*thread)(LPVOID) = &CLASS::B;
...
CreateThread(NULL, 0, thread, &arg, 0, NULL);
...
}
Функция B требует переменных члена CLASS.
Но у меня есть код ошибки, когда я скомпилировал это.
Это «не может преобразовать аргумент 3 из« DWORD (__stdcall CLASS :: *) (LPVOID) »в« LPTHREAD_START_ROUTINE »или что-то в этом роде.
Я не знаю, совпадает ли это с английской средой.
Может кто-нибудь помочь пожалуйста?
И перед началом О.П. получение любых умных идей - нестатические указатели на функции членов класса * странные *. Не только вызывающие соглашения отличаются от простого 'func (classname * this, ...)', представление _interinter_ странно - в некоторых случаях указатели на функции членов класса могут в конечном итоге быть 2x размером нормального указателя функции, поэтому даже не задумываюсь о том, чтобы заставить литье :) – bdonlan