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*/ }
    

    @Janjan:

    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*/ }
    

    @Janjan:

    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?


Anmelden zum Antworten