Artikel zu MFC im Magazin





  • Hallo,
    hab gerade den Beitrag gelesen, sehr gut, da hat ich allerdings paar Fragen, und ein Hinweis,
    Hinweis: der Punkt der nach dem link zu Codeprojekt führt zu Fehler, ist nicht schlimm aber vielleicht würde sich einer irritiert fühlen weil Codeprojekt gibt den
    Hinweis das es diese Url nicht gibt, aber auf der selben Seite wird dann schon der richtige Link zu der Klasse als alternative angeboten!

    Jetzt zu meiner Frage: da ja Unicode 16 Bit für jedes Zeichen verwendet, heist dass das jeder CString eigentlich doppelt so lang ist wie sonst!
    Z.B,

    CString csPfad = L"C:\Eigene Dateien\HalloWelt.txt";
    // 31 Zeichen
    

    Belegt der CString csPfad im RAM jetzt die doppelte Länge??? 😮
    Ich meine so richtig doppelte Länge, auch fisikalisch, auch wenn wer nur 31 Zeichen lang ist???

    Und noch ne Frage, da ich zur Zeit auf Unicode bin, in dem Beispiel hier wird
    das _T() Macro benutzt, ich benutze aber immer das 'L' wie oben im meinem Beispiel, was ist jetzt besser, sicherer, wo ist der Unterschied, gibts da überhaupts Unterschied???

    huh 😕 🙄

    grüsse
    pixel



  • pixel schrieb:

    Hallo,

    Belegt der CString csPfad im RAM jetzt die doppelte Länge??? 😮
    Ich meine so richtig doppelte Länge, auch fisikalisch, auch wenn wer nur 31 Zeichen lang ist???

    Jo, da ja 2 Byte pro Zeichen genutzt werden



  • pixel schrieb:

    Und noch ne Frage, da ich zur Zeit auf Unicode bin, in dem Beispiel hier wird
    das _T() Macro benutzt, ich benutze aber immer das 'L' wie oben im meinem Beispiel, was ist jetzt besser, sicherer, wo ist der Unterschied, gibts da überhaupts Unterschied???

    L"..." ist immer ein Unicode-String (wchar_t*), _T("...") wird je nach Compiler-Einstellungen entweder ein Unicode- oder ein ASCII-String (char*).


Anmelden zum Antworten