C thread, variable übergabe fehler

Diskutiere C thread, variable übergabe fehler im Developer Network Forum im Bereich Hardware & Software Forum; Hi, habe folgendes Problem: typedef struct _Listen { int iPort; } LISTEN; DWORD WINAPI Listen(LPVOID lpParam) { LISTEN *pListen...
  • C thread, variable übergabe fehler Beitrag #1
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
Hi, habe folgendes Problem:
Code:
typedef struct _Listen {
    int iPort;
} LISTEN;


DWORD WINAPI Listen(LPVOID lpParam) 
{ 

	LISTEN *pListen;
	pListen = (LISTEN*)lpParam;
	
	char test[20];
	
	sprintf(test, "Port: %i", pListen->iPort);
	MessageBox(0, test,0,0);
		
	return 0;
}

Code:
LISTEN xListen;

xListen.iPort = 5220;
				CreateThread(NULL, 0, Listen, (LPVOID*)&xListen, NULL, &dwThreadId);
Leider wird iPort nicht korrekt übergeben, woran liegt das, denn eigendlich dürfte da nichts falsch sein...
Danke an cmddegi, sonst würde der Code nichtmal kompilliert, aber es scheint immer ncoh ein Fehler drinne zu sein...
 
  • C thread, variable übergabe fehler Beitrag #2
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Code:
LISTEN xListen;

xListen.iPort = 5220;
                CreateThread(NULL, 0, Listen, (LPVOID*)&xListen, NULL, &dwThreadId);
Ein Cast zu LPVOID reicht, da LPVOID bereits ein Zeiger ist. Durch den zusätzlichen * übergibst Du einen Zeiger auf einen Zeiger auf xListen.
 
  • C thread, variable übergabe fehler Beitrag #3
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
Problem hat sich schon erledigt. Hatte vergessen anzugeben, dass es um einem Winapi fenster ging, deswegen anstatt:
LISTEN xListen; ->> static LISTEN xListen;

Danke für die Antwort.

MfG
Anno1989
 
Thema:

C thread, variable übergabe fehler

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben