Programmierung mit UNICODE



  • Hallo,

    was haltet ihr davon, wenn wir hier Vorgehensweisen und Tipps zur Windows Programmierung mit dem UNICODE Zeichensatz sammeln? Ich denke mal viele (wie z.B. ich) wissen noch nicht genau mit UNICODE umzugehen und benutzen es deshalb nicht. Was muss man alles beachten? Könnte, falls es was wird, ja auch was für die FAQ sein!

    Bin gespannt auf eure Beiträge! 😉



  • da gibts nichts grossartig zu beachten...

    man verwendet eben TCHAR statt char, und statt "hallo" schreibt man TEXT("Hallo")

    und man darf dann natuerlich keine C Funktionen verwenden, denn zB strlen() laeuft mit wchar_t nicht 😉

    ich sehe keinen Grund warum man nicht unicode kompatiblen code schreiben sollte!



  • Habe auch mal zwei Fragen dazu:

    1. Da muss man doch noch 2 Sachen definieren (#define), einfach #define UNICODE und das zweite weiss ich leider nicht. Wie heisst das? 😞

    2. Wenn ich den String aus der STL benutzen möchte, kann der auch irgendwie mit Unicode umgehen?



    #define UNICODE
    reicht
    oder vielleicht war es
    #define _UNICODE
    weiss ich zu so spaeter stunde leider nicht mehr genau 😉

    klar.
    std::basic_string<wchar_t> s;
    und schon ist s ein Unicode string 😉



  • #define UNICODE für Windows-Header-Dateien.
    #define _UNICODE für Header-Dateien der C-Laufzeitbibliothek.

    Edit: In "Microsoft Windows Programmierung für Experten" widmet Jeffrey Richter diesem Thema ein eigenes Kapitel, lesenswert.

    [ Dieser Beitrag wurde am 16.07.2002 um 03:01 Uhr von kwoTx editiert. ]



  • Original erstellt von Shade Of Mine:
    **da gibts nichts grossartig zu beachten...
    und man darf dann natuerlich keine C Funktionen verwenden, denn zB strlen() laeuft mit wchar_t nicht 😉
    **

    Genau, deshalb einfach ein 'l' davor setzen:
    lstrlen, lstrcpy, lstrcmp...



  • Nur mal am Rande: lstrlen und so sind leine C Runtime Funktionen, die werden von Windows geliefert (Kernel32.dll) 🙄 😃
    Die Funktionen der Runtime gibt es alle für TCHARs, die heißen dann alle z.B. _tcslen, also immer mit _tcs anstelle von str, oder auch einfach nur mit _t am Anfang: _tprintf oder _tmain.



  • Aber wer würde jedesmal _tcslen anstelle von lstrlen schreiben? 😃
    letzteres kann man sich doch auch viel einfacher merken.
    Ich kenne eine einzige Ausnahme: lstrstr gibt es nicht, da muss man _tcsstr nehmen.

    [ Dieser Beitrag wurde am 19.07.2002 um 17:13 Uhr von cd9000 editiert. ]



  • kann man eigentlich LPCTSTR auch für unicode sachen verwenden ?
    oder muss ich 2 verschiedene funktionen machen ? (eine mit lpct und eine mit lpcw )


Anmelden zum Antworten