kickerxy123
Erfahrenes Mitglied
Hallo!
Ich habe ein recht triviales Problem, bei dem ich wirklich nicht weiterkomme.
Ich will einem Thread mehrere Parameter übergeben. Dafür habe ich eine Struktur definiert, und eine Zeiger darauf, den ich übergeben will.
Hier der Code:
Soweit kompiliert er zumindestens. Jetzt will ich natürlich den Wert auf den der Zeiger zeigt ermitteln. Ich habe es auf mehrere Weisen versucht, u.a.
(dort wo die "//..."sind):
oder auch
Beide Möglichkeiten führen zum Absturz! Was mache ich falsch?
lg und danke
kickerxy123
Ich habe ein recht triviales Problem, bei dem ich wirklich nicht weiterkomme.
Ich will einem Thread mehrere Parameter übergeben. Dafür habe ich eine Struktur definiert, und eine Zeiger darauf, den ich übergeben will.
Hier der Code:
C++:
DWORD WINAPI FadeOutMusik (LPVOID data); //Threadfunktion
struct THREADPARAM
{
int i[10];
short anzahl_ints;
string s[10];
short anzahl_strings;
};
void fadeOutMusik(short ID, int dauer)
{
THREADPARAM param;
HANDLE hClient;
param.i[0] = ID;
param.i[1] = dauer;
param.anzahl_ints = 2;
param.anzahl_strings = 0;
if(!( hClient = CreateThread( NULL, // Sicherheitsinfos
0, // Größe des Stack
FadeOutMusik, // Threadfunktion
(LPVOID)¶m, // 32-bit paramter der Threadfunktion übergeben wird
0, // Creation Flags, 0=sofort starten.
0))) // Id speichern
{
writeToLog("Thread konnte nicht erstellt werden");
return;
}
//TerminateThread(hClient,10);
return;
}
DWORD WINAPI FadeOutMusik (LPVOID data) //Threadfunktion
{
THREADPARAM* pparameter = (THREADPARAM*)data;
if(pparameter != NULL)
{
//...
}
}
(dort wo die "//..."sind):
C++:
THREADPARAM parameter = *pparameter;
C++:
THREADPARAM parameter;
THREADPARAM* ppparameter= ¶meter;
*ppparameter = *pparameter;
lg und danke
kickerxy123