LPCTSTR (oder so ähnlich)



  • Hallo!

    Was ist dieses LPCTSTR eigentlich? ein Datentyp?
    Viele Funktionen der MFC erwarten als Parameter einen String in Forum von LPCTSTR, ich habe aber immer nur Char-Arrays oder CStrings. Habe es mit einem Cast probiert: (LPCTSTR)CString, das geht aber nicht.

    Danke!

    mfg



  • Aehhh ? Panic ?

    LPCTSTR = Long (32Bit) Pointer Constant T STRing ...

    In MSDN Sprache:
    LPCTSTR A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.

    in C++ umgebaut
    const TCHAR *

    und nun der Clou, die CString Klasse der MFC kapselt genau was du brauchst, naemlich Felder vom Typ TCHAR.
    Der LPCTSTR Operator ist ueberladen, sollte also auch ohne cast gehen ....

    (LPCTSTR)CString

    C-Casts solltest eh vermeiden ... wenn ueberhaupt dann static_cast<neuer Typ>(variable) ...

    Poste mal lieber den code, wo dein Fehler geweorfen wird ...

    Ciao ...



  • Hallo!

    Habe mit folgendem Code eine Double-Zahl festgelegt, diese in ein Char-Array konvertiert und schließlich in einer MessageBox ausgegeben:

    double zahl = 3;
    char s_zahl[10];
    _gcvt(zahl, 10, s_zahl);

    MessageBox((LPCTSTR)s_zahl, "Eingegebene Zahl", 0);

    Der Code funktioniert jetzt (weiß nicht was ich vorher falsch gemacht hatte), was mich aber wundert, ist dass es mit folgendem Code ebenfalls geht:

    MessageBox(LPCTSTR(s_zahl), "Eingegebene Zahl", 0);

    (Unterschied ist die Klammer bei LPCTSTR)
    Im ersten Beispiel ist es eindeutig ein Cast auf den Datentyp LPCTSTR.
    Im zweiten Fall ist es aber anscheinend ein Funktionsaufruf. Gibt es LPCTSTR zufällig als Funktion auch oder hab ich da was falsch verstanden?

    Danke!

    mfg



  • Sieht eher nach nen MACRO aus (lauter Großbuchstaben)

    MFG, Sigi

    Nochwas:

    double zahl = 20;
    CString str;
    str.Format("%f",zahl);
    MessageBox(str,"converted",MB_OK);
    

Anmelden zum Antworten