J'essaye d'encapsuler du code win32 plus ancien dans une classe ref C++/CLI pour le rendre plus accessible depuis le code .NET. Cette classe doit démarrer un thread Win32 et transmettre un pointeur à la classe en tant que paramètre thread. Le code ressemble à ceci:Classe ref C++/CLI utilisant un thread 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;
}
Le fil doit vraiment être un fil Win32 car il reçoit des messages du sous-système MADAME. J'ai essayé d'encapsuler le pointeur de fonction PlayThread dans un interior_ptr, mais le compilateur ne l'aurait pas autorisé. En outre, j'ai essayé de faire de la fonction thread une méthode de classe, mais le compilateur n'autorise pas le modificateur _stdcall sur les méthodes de classe ref. Connaissez-vous un moyen de gérer cela?
quel est un sous-système? – deostroll