Obtenir une erreur de compilation pour «tlhelp32.h» dans le compilateur MinGW g ++

J’écris une application C ++ simple qui vérifie si un exemple de fichier exe: ‘a.exe’ est en cours d’exécution ou non (Windows OS), j’ai cherché sur Google et trouvé du code dans le lien ci-dessous.

http://stackoverflow.com/questions/3355379/how-do-i-find-out-if-a-exe-is-running-in-c

Le code mentionné ci-dessus utilise un fichier d’en-tête “tlhelp32.h”. Je viens de copier le code et d’apporter les modifications nécessaires, puis de me conformer à MinGW. Le problème suivant se pose: tous les types de données mentionnés dans les fichiers d’entête sont erronés. ex: 'DWORD' does not name a type, 'LONG' does not name a type, 'WCHAR' does not name a type,'CHAR' does not name a type

Je n’avais jamais rencontré ce genre de problèmes auparavant lorsqu’un fichier d’en-tête existant n’a pas été compilé (oui, je l’ai vérifié).

vraiment apprécier toute aide sur ce point.

code ci-dessous:

 #include  int main() { PROCESSENTRY32 pe32 = {0}; HANDLE hSnap; int iDone; int iTime = 60; bool bProcessFound; while(true) // go forever { hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); pe32.dwSize = sizeof(PROCESSENTRY32); Process32First(hSnap,&pe32); // Can throw away, never an actual app bProcessFound = false; //init values iDone = 1; while(iDone) // go until out of Processes { iDone = Process32Next(hSnap,&pe32); if (strcmp(pe32.szExeFile,"a.exe") == 0) // Did we find our process? { bProcessFound = true; iDone = 0; } } if(!bProcessFound) // if we didn't find it running... { startProcess("C:\\MinGW\\"+"a.exe",""); // start it } Sleep(iTime*10); // delay x amount of seconds. } return 0; } 

Comme Richard Critten a déclaré que l’ajout de “Windows.h” avant “tlhelp32” résout le problème et plus encore sur une fonction, startprocess () dans le code ci-dessus n’a jamais existé. Utilisez shellexecute () pour le faire fonctionner.

ex: ShellExecute (NULL, “ouvrir”, “c: \ MinGW \ a.exe”, NULL, NULL, SW_SHOWDEFAULT);