strcmp() funktioniert nicht [gelöst]
-
if(!strcmp(pe.szExeFile, buf)) break; }Fehler: error C2664: 'strcmp': Konvertierung des Parameters 1 von 'WCHAR [260]' in 'const char *' nicht möglich
Wie kann ich sonst C-Strings miteinander vergleichen?
Danke.
-
Kopf -> Tisch
Du benutzt wide-strings (wchar)? Dann benutz auch die wide-Variante von strcmp.
-
Hi skullyan,
Der erste Parameter muss vom Typ char* sein. pe.szExeFile scheint allerdings ein Array mit Elementen vom Typ wchar_t zu sein.
Mit folgender Funktion solltest du dein Problem lösen können:bool Convert(wchar_t* wStr,char* buffer) { if(!wStr||!buffer)return false; for(int i=0;wStr[i]!='\0';i++)buffer[i]=(char)wStr[i]; buffer[lstrlenW(wStr)]='\0'; return true; }Der Vergleich könnte dann so aussehen:
char str[300]; Convert(pe.szExeFile,str); if(!strcmp(str,buf)){ /*Beliebiger Code*/ }Gibt es auch Funktionen, mit denen man vom typ char* mit strings vom Typ wchar_t* vergleichen kann? (würd mich jetzt einfach mal interessieren).
MfG, Jochen
-
Nein gibts nicht ausser Du schreibst selbst eine.
Ist ja auch ziemlich sinnfrei.simon
-
Jochen S. schrieb:
Hi skullyan,
Der erste Parameter muss vom Typ char* sein. pe.szExeFile scheint allerdings ein Array mit Elementen vom Typ wchar_t zu sein.
Mit folgender Funktion solltest du dein Problem lösen können:bool Convert(wchar_t* wStr,char* buffer) { if(!wStr||!buffer)return false; for(int i=0;wStr[i]!='\0';i++)buffer[i]=(char)wStr[i]; buffer[lstrlenW(wStr)]='\0'; return true; }Der Vergleich könnte dann so aussehen:
char str[300]; Convert(pe.szExeFile,str); if(!strcmp(str,buf)){ /*Beliebiger Code*/ }Gibt es auch Funktionen, mit denen man vom typ char* mit strings vom Typ wchar_t* vergleichen kann? (würd mich jetzt einfach mal interessieren).
MfG, Jochen
Hat mir geholfen. Danke.
-
Ja DU hast es bestimmt gelöst!
-
..... schrieb:
Ja DU hast es bestimmt gelöst!
Was sollen bitte Deine sinnfreien Kommentare?