Я работаю над профилировщиком .NET, который я пишу на C++ (DLL, использующая ATL). Я хочу создать поток, который записывается в файл каждые 30 секунд. Я хочу, чтобы функция потока как метод одного из моих классовСоздать тему в DLL
DWORD WINAPI CProfiler::MyThreadFunction(void* pContext)
{
//Instructions that manipulate attributes from my class;
}
, когда я пытаюсь запустить поток
HANDLE l_handle = CreateThread(NULL, 0, MyThreadFunction, NULL, 0L, NULL);
Я получил эту ошибку:
argument of type "DWORD (__stdcall CProfiler::*)(void *pContext)"
is incompatible with parameter of type "LPTHREAD_START_ROUTINE"
Как правильно создать поток в DLL? Любая помощь будет оценена.
Функции указателей и указателей на функции-члены очень разные. Вам нужно объявить функцию-член как статическую. –
Возможный дубликат [Как вы используете CreateThread для функций, являющихся членами класса?] (Http://stackoverflow.com/questions/1372967/how-do-you-use-createthread-for-functions-which-are-class -members) –