wchar_t* in char* umwandeln?



  • Hallo,

    ich stehe gerade vor einem ziemlichen schwierigen Problem. Eine WinAPI-Funktion liefert mir als wichtigen Rückgabewert einen Wide-String, als wchar_t* zurück.

    Jedoch kann ich nur mit normalen char* -Strings umgehen, andernfalls müsste ich mein ganzes Projekt, bestehend aus mehreren tausend Zeilen aufgrund der Abhängigkeiten auf Unicode umstellen, was jedoch nicht essentiell wäre.

    Gib es irgendeine Lösung, dieses Problem zu umgehen, mit der Annahme, dass der Wide-String reguläre ASCII-Zeichen enthält?

    Vielen Dank im Voraus!



  • Wandel es doch mit WinAPI Mitteln um... WideCharToMultiByte



  • oder

    std::wstring wideString(RueckgabewertDerFunktion);
    std::string narrowString(wideString.begin(), wideString.end());
    


  • Vielen Dank. Die zweite Methode mit std::string resultiert in einem Programmabsturz.

    Die erste vorgeschlagene Methode mit der API-Funktion scheint gut zu klappen so, wobei ich feststellen musste, dass der Rückgabewert leer ist. Ich werde es heute noch an einem gefüllten Wide-String versuchen

    Danke!


Anmelden zum Antworten