2016-07-02 10 views
2

bitte helfen.C++ Processentry32

PROCESSENTRY32 entry; if (!strcmp(entry.szExeFile, process))

Fehler beim Eintrag: Argument vom Typ WCHAR * ist unvereinbar mit parametr vom Typ const char *

Bitte nicht mich hassen, ich bin beginer.

Danke für die Hilfe;)

Antwort

0

Sie definiert UNICODE irgendwo oder in Projekteinstellungen im Code.

So ist PROCESSENTRY32 Unicode-Version, aber Sie verwenden ASCII-Version von strcmp

Die Lösung ist eine weitere Funktion

#include <wchar.h> 
... 
if (!wcscmp(entry.szExeFile, process)) 

oder Windows-only (WinApi Funktion) zu verwenden

#include <windows.h> 
... 
if (!lstrcmpW(entry.szExeFile, process)) 

Beachten Sie, dass Prozess Variable muss wchar_t * oder LPWSTR Typ sein.

Zum Beispiel:

#include <windows.h> 
.... 

    wchar_t process[] = L"browser.exe" 
    ... 
    if (!lstrcmpW(entry.szExeFile, process)) 
+0

Vielen Dank. –

+0

Kein Problem, keine Angst zu fragen. Beachten Sie, dass der L-Spezifikator vor dem String-Literal bedeutet, dass der String in Unicode codiert ist. –