BSTR mittels cout ausgeben?



  • Hallo zusammen,

    habe mich gerade angemeldet und auch gleich mal eine Frage. Ich bekomme aus einer COM Funktion einen Variant zurueckgeliefert, der einen String (also einen BSTR unter variant.bstrVal) enthaelt. Diesen moechte ich zwecks debugging auf der Console ausgeben.

    Was u.a. NICHT funktioniert ist:

    cout << var.bstrVal << endl; // gibt "00153C1C"
    cout << (char*) var.bstrVal << endl; // gibt "1"
    

    Was AUCH NICHT funktioniert ist: ... ne ganze Menge mehr 🙂
    (In dem String steht "127.0.0.1")

    Ich moechte also erst einmal den String ausgeben. Was noch sehr schoen waere, wenn das cout UNICODE beruecksichtigen koennte - es ist moeglich, dass die App bald UNICODE-basiert ist.

    Weiss jemand Rat? 🙂

    Danke schon mal & Gruesse,

    Axel.



  • Verwende doch wcout anstelle von cout... ansonmsten musst Du halt ziwschen den Encodings umcodieren... (z.B. via CW2CA)



  • mit wcout funktionierts. Kann wcout auch "normale" ascii strings ausgeben, also "frisst" das sozusagen alles? 🙂



  • Es scheint so, also ob er beides könnte (VC7.1):

    std::wcout << "Hallo" << L" Welt";
    

Anmelden zum Antworten