Какой тип Mpeg? Какой метод является DepacketiseInputFile?
Если это обычный неуправляемый класс C ++, используйте _beginthread, но вы должны сделать DepacketiseInputFile статическим. Он не может принимать функцию-член.
Кроме того, не вызывайте DepacketiseInputFile с помощью DepacketiseInputFile (), передавайте его с помощью
&Mpeg::DepacketiseInputFile
Вы должны использовать void *, который вы получите, чтобы передать его, чтобы передать указатель на объект Mpeg (и затем привести его обратно).
Если вы хотите использовать ThreadStart, тогда Mpeg должен быть управляемым классом.
РЕДАКТИРОВАТЬ: Если вы хотите сделать DepacketiseInputFile, но ему нужен доступ к объекту, то вы используете аргумент void * для передачи указателя.
Так что в .h:
void DepacketiseInputFileMember();
static void DepacketiseInputFile(void *thisObj);
Ваш код идет в DepacketiseInputFileMember () и записывает DepacketiseInputFile следующим образом:
void Mpeg::DepacketiseInputFile(void *thisObj)
{
Mpeg* mpeg = reinterpret_cast<Mpeg*>(thisObj);
mpeg->DepacketiseInputFileMember();
}
Когда вы звоните _beginthread, используйте это
_beginnthread(&Mpeg::DepacketiseInputFile, (unsigned)0, anMpegObjectPointer);
где anMpegObjectPointer
- указатель на объект типа Mpeg. Вы должны убедиться, что время жизни объекта больше, чем было бы необходимо в потоке.
Простите мой синтаксис, я пишу это в текстовой области, а не в Visual Studio