Fenster in den Vordergrund hohlen

Software für PC wie Open Office, Antvirenprogramme, Firewalls usw. Programmiersprachen wie Visual Basic, Pascal, C++.

Software für PC wie Open Office, Antvirenprogramme, Firewalls usw. Programmiersprachen wie Visual Basic, Pascal, C++.

Moderator: Moderatorengruppe

Fenster in den Vordergrund hohlen

Neuer Beitragvon Master-Jimmy am Samstag 11. August 2007, 22:43

Ich hab ein eigentlich sehr einfaches Programm geschrieben, mit welchem ich nur testen wollte, ob mein Code funktioniert, welcher zum Zweck hat ein bestimmtes Fenster in den Vordergrund zu hohlen.
Nur meldet Microsoft Visual C++ Express Edition 2005 nun stets folgendes Warning, welches ich einfach nicht weg bringe:
Warning C4311: 'Typumwandlung': Zeigerverkürzung von 'LPVOID' zu 'DWORD'

Sieht jemand was zu tun ist?

P.S.: Der Rückgabetyp der Threads kann nicht geändert werden und auch data muss vom Typ LPVOID sein.
Ich sehe keine Alternative zum Casting, welches der Compiler aber bemängelt...

Code: Alles auswählen
#include <windows.h>
#include <stdio.h>

DWORD WINAPI Thread_1(LPVOID data);
DWORD WINAPI Thread_2(LPVOID data);
DWORD WINAPI Thread_3(LPVOID data);

int main(int argc,char* argv[])
{
   HANDLE    hThread[3];
   
   hThread[0]=CreateThread(NULL,0,Thread_1,(LPVOID)0,0,NULL);
   hThread[1]=CreateThread(NULL,0,Thread_2,(LPVOID)0,0,NULL);
   hThread[2]=CreateThread(NULL,0,Thread_3,(LPVOID)0,0,NULL);

   getchar();   

   return 0;
}

DWORD WINAPI Thread_1(LPVOID data)
{
   Sleep(1000);
   MessageBox(NULL,TEXT("Fensterinhalt"),TEXT("Fenster1"),NULL);
   return ((DWORD)data);
}

DWORD WINAPI Thread_2(LPVOID data)
{
   Sleep(2000);
   MessageBox(NULL,TEXT("Fensterinhalt"),TEXT("Fenster2"),NULL);
   return ((DWORD)data);
}

DWORD WINAPI Thread_3(LPVOID data)
{
   Sleep(3000);
   SetForegroundWindow(FindWindow(TEXT("#32770"),TEXT("Fenster1")));
   return ((DWORD)data);
}
Benutzeravatar
Master-Jimmy
Threadstarter
28164
Titanium Mitlgied
 
Beiträge: 402
Registriert: Mittwoch 11. April 2007, 10:21
Postleitzahl: 00000
Land: not selected

Neuer Beitragvon Martin67 am Dienstag 14. August 2007, 19:21

Hallo,

ich habe wenig Erfahrung mit der C++ Edition Visualstudio 2005. Ich arbeite noch mit VC++ 6.0
Aber ich könnte mir vorstellen, dass der LPVOID "Zeiger" bei der 2005 Version, eine Breite von 64bit hat, dann ist Dein DWORD-Casting natürlich fehl am Platz.

Versuchs mal mit einer 64 Bit Variante, z.B. Int64 oder QWORD.


Gruß

Martin
Martin67
28236
Bronze Mitglied
 
Beiträge: 83
Registriert: Samstag 20. Januar 2007, 07:38


Zurück zu Computer Software

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste