_wcsicmp() Problem



  • Moin Leute,
    Ich hatte 2 Programme erstellt, die überprüfen ob ein Prozess gerade läuft oder nicht. Dabei habe ich diesen Code benuzt:

    #include <tlhelp32.h>
    
    .
    .
    .
    
    PROCESSENTRY32 entry;
    	entry.dwSize = sizeof(PROCESSENTRY32);
    
    	HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
    
    	if (Process32First(snapshot, &entry) == TRUE)
    	{
    		while (Process32Next(snapshot, &entry) == TRUE)
    		{
    			if (_wcsicmp(entry.szExeFile, name) == 0)
    			{
    //...
    }
    }
    }
    
    .
    .
    .
    

    Nun habe ich das Problem, dass die Funktion "_wcsicmp()" beim ersten Programm "false" zurückliefert wenn der Prozess läuft, und "true" wenn nicht, was auch richtig ist, jodoch das zweite Programm mit den selben Parametern immer "true" zurückgibt.

    Ich habe auch beide Programme mit den Debugger gestertet und die Werte der Variablen alle gecheckt, finde jedoch den Fehler nicht:

    http://i.imgur.com/sz5Ylo6.png

    Würde dankbar sein, wenn mir jemand aushelfen könne.



  • _wcsicmp liefert nicht true oder false. 0 bedeutet gleich.



  • Achja, um die beiden Programme zu vergleichen, habe ich eine Variable x als bool deklariert, da 0 eh false und alles andere true ist.
    Sorry.

    Trotzdem ist das Ergebniss bei den selben Parametern / laufenden Prozessen der beiden Programmen unterschiedlich



  • My_Ouzo schrieb:

    Ich habe auch beide Programme mit den Debugger gestertet und die Werte der Variablen alle gecheckt, finde jedoch den Fehler nicht:

    Wäre toll, wenn man auf den Screenshots den Inhalt von entry.szExeFile sehen könnte. An der Stelle, an der du meinst, dass _wcsicmp 0 liefern sollte, aber es nicht tut.


Anmelden zum Antworten