LPCTSTR STRING ANHAENGEN?
-
LPCTSTR steht für Long Pointer to ConsTant STRing, was einem char const* entspricht, wie SeppJ schon gesagt hat.
-
314159265358979 schrieb:
LPCTSTR steht für Long Pointer to ConsTant STRing, was einem char const* entspricht, wie SeppJ schon gesagt hat.
Das ist so nicht ganz korrekt. LPCTSTR steht für Long Pointer to Constant TCHAR STRing (oder so); es handelt sich dabei um einen TCHAR const *. TCHAR ist abhängig von den Projekteinstellungen entweder char oder wchar_t.
Insofern ist
LPCTSTR s1 = "Hallo"; LPCTSTR s2 = "Du";
auch nicht ganz sauber; richtig(er) wäre
LPCTSTR s1 = _T("Hallo"); LPCTSTR s2 = _T("Du");
oder wahlweise
LPCSTR s1 = "Hallo"; LPCSTR s2 = "Du";
Das macht sich allerdings erst bemerkbar, wenn man sein Projekt auf die Verwendung von Unicode einstellt. _T("foo") expandiert hier abhängig von den Projekteinstellungen entweder zu "foo" oder L"foo".
Damit bewegen wir uns jetzt aber wirklich in WinAPI-Besonderheiten.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x, bzw. C++11) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
seldon schrieb:
Damit bewegen wir uns jetzt aber wirklich in WinAPI-Besonderheiten.
Dann geht's jetzt hier weiter. Es gibt doch bestimmt ein passendes strcat-Makro, welches dann entweder nach strcat oder wstrcat (oder wie auch immer das in der WinAPI heißt) expandiert.
-
lstrcat
"Warning Do not use. Consider using StringCchCat instead. See Security Considerations."
-
Ich habs nun mit lstrcat versucht, aber es funkt nicht ;<
-
Fehlerbeschreibung?
-
ich habe es probiert aber der String wird nicht angehängt.
-
Zeig mal Quellcode
-
Wenn es doch const TCHAR * ist, kann ich sicher nichts anhängen.
-
Verwende std::string oder std::wstring!
-
typedef std::basic_string<TCHAR> tstring; LPCTSTR s1 = _T("Hallo"); LPCTSTR s2 = TEXT("Du"); // Alternativer Makroname tstring res = s1; res += s2;