Strings mit VS2005: LPCSTR,LPCTSTR,LPCWSTR...
-
Hallo,
Ich bin von VS6 auf VS2005 umgestiegen und frag mich jetzt,
warum ich nicht einmal eine MessageBox erzeugen kann?MessageBox((LPCTSTR)"Test");
Gibt es eine neue Schreibweise für Strings?
[EDIT] _T("Test")
-
a) Was für eine Fehlermeldung kommt denn?
b) schau mal nach, ob UNICODE definiert ist.
c) versuch's mit T("Test"), das wird je nach Vorgaben in ein char*- oder wchar_t*-Literal verarbeitet.
-
Zu früh gefreut:
wenn ich ein char Array habe, klappt es nicht mehr:
char buffer[5]="Test"; LPTSTR str=_T(buffer);
Fehlermeldung:
error C2065: 'Lbuffer' : undeclared identifier
-
Du sollst deswegen ja auch keine char-Arrays mehr benützen sondern überall statt char TCHAR:
TCHAR buffer [] = _T("Test"); LPTSTR str = buffer; // bzw. gleich buffer, wer braucht dann noch str
Der *ursprüngliche* String muss im TCHAR-Format vorliegen, ansonsten musst du diesen String über eine Funktion konvertieren (imho hieß die irgendwie mit MultiByteToWideCharacter oder so)
MfG SideWinder
-
PS: Ab VC2005 wird per default UNICODE für neue Projekte definiert (juhu!)
-
Danke für die Antworten.
Aber wie kann man den ein " in einen String setzen?
-
Mit \":
TEXT("Doppelte Anführungszeichen: \" - tolle Sache!");
MfG SideWinder
-
Thx
Eine letzte Frage noch:
Ich kann einer CString Variable eine LPTSTR Variable zuweisen, aber wie kann ich das umgekehrt machen?