Я пытаюсь инкапсулировать некоторый старый код win32 в класс ссылок C ++ / CLI, чтобы сделать его более доступным из кода .NET. Этот класс должен запустить поток Win32 и передать указатель на класс в качестве параметра потока. Код выглядит примерно так:
ref class MmePlayer
{
int StartPlayback()
{
hPlayThread = CreateThread(NULL, 0, PlayThread, this, 0, &PlayThreadId);
}
};
static DWORD WINAPI PlayThread(LPVOID pThreadParam)
{
// Get a pointer to the object that started the thread
MmePlayer^ Me = pThreadParam;
}
Поток действительно должен быть потоком Win32, поскольку он получает сообщения от подсистемы MME. Я пытался обернуть указатель функции PlayThread в interior_ptr, но компилятор не позволил бы это.
Кроме того, я пытался сделать функцию потока методом класса, но компилятор не разрешает модификатор _stdcall в методах класса ref.
Вы знаете способ справиться с этим?