Frage zu TCHAR bzgl. AfxExtractSubString(vstring, ifr, c,',' );



  • Hallo.

    Ich hab 'ne Frage bzgl. TChar. Die Funktion
    AfxExtractSubString(vstring, ifr, c,',' )
    verlangt beim Deliminator einen TChar ( bei mir zZ ',').
    Ich wollte dies nun durch eine Variable aus CString oder Char ersetzten aber jedes mal meckert der Compiler dass die Konvertierung nich möglich ist von zB Char zu TChar.

    Kann mir da jemand mal kurz helfen?! Ich lese nämlich den Deliminator aus meinem Ini File aus und müsste die dynamisch in die Funktion einsetzen können.

    Danke!



  • Wo kommt denn AfxExtractSubString() her? Meine MSDN kennt die nicht!

    TCHAR ist eigentlich so definiert:

    typedef char TCHAR
    

    sollte also eigentlich keine Probleme machen. Wenn Du dort etwas aus einem CString angeben willst, dann muss das schon ein Zeichen sein, also z.B.

    CString str(_T("Hallo"));
    
    TCHAR c = str[2];
    

    Shaggy



  • TCHAR ist so definiert:
    #ifdef _UNICODE
    typedef wchar_t TCHAR;
    #else
    typedef char TCHAR;
    #endif
    Der Aufruf von AfxExtractSubString sieht demnach so aus:

    AfxExtractSubString( vstring, ifr, c, _T(','));
    

    @Shaggy
    AfxExtractSubString findet man beim Stöbern durch den MFC-Sourcecode 😉



  • Also, ich such meine Funktion lieber über die MSDN, ...

    By the way, welchen wirklichen Sinn macht eigentlich _T()?

    Im MFC-Sourcecode steht

    // ..
    #define __T(x)  x
    
    // ..
    #define _T(x) __T(x)
    
    //..
    

    Also eigentlich wurscht, oder? Ich mach das zwar auch immer, weil MicroDoof es überall so macht, aber ohne funktioniert's ja auch!?

    Shaggy



  • @Shaggy
    Stell beim Compiler mal _UNICODE ein, you will see the difference!


Anmelden zum Antworten