Zusammenfügen TCHAR und String
-
Ich möchte gerne path und myPath zusammenfügen.
Folgender Code:TCHAR path[MAX_PATH]; string myPath = "\\Microsoft\\test.txt"; SHGetSpecialFolderPath(0,path,CSIDL_LOCAL_APPDATA,false); string fullPath = path + myPath;Allerdings erhalte ich hier die FM:
cannot add two pointersKann mir jemand helfen das Problem zu lösen ?
-
string fullPath(path);
fullpath += myPath;oder string fullpath = string(path) + myPath; ... sieht schöner aus, aber kopiert etwas mehr rum.
-
Hi,
danke für die Antwort.Hier erscheint allerdings der Fehler
Cannot convert from TCHAT[260] to std::stringNoch eine Idee ?
-
hm... was isn TCHAR? kannst du das nicht einfach durch char ersetzen?
-
typedef std::basic_string<TCHAR> tstring; tstring tstr = ...MfG SideWinder
-
DrGreenthumb schrieb:
hm... was isn TCHAR? kannst du das nicht einfach durch char ersetzen?
Nein, das geht nicht. TCHAR ist je nach Compilersetting ein Unicode- oder ein ANSI-Character.
MfG SideWinder
-
SideWinder schrieb:
TCHAR ist je nach Compilersetting ein Unicode- oder ein ANSI-Character.
von diesem compilersetting könnte man ja abhänging machen, ob man std::string oder std::wstring nimmt (ein std::TSTRING oder sowas ;))
-
Hmm,
jetzt habe ich ein tstring und nun ?
Kann mir jemand erklären wie ich den Pfad jetzt zusammensetze ?
TCHAR path[MAX_PATH]; SHGetSpecialFolderPath(0,path,CSIDL_LOCAL_APPDATA,false); string myPath ="\\Micrsoft\\test.properties"; tstring tStr = path; remove(tStr + myPath);Ich erhalte immer den Fehler C2784
could not deduce template argument for 'const std::basic_string<_Elem,_Traits,_Alloc> &' from 'std::string'
-
Du solltest dich entscheiden, entweder alles ANSI (--> keine Windows Unicodefunktionen) oder alles Unicode (--> nur std::wstring)!
-
...oder nur tstring (als typedef auf basic_string<TCHAR>) - dann kompiliert es automatisch als short string oder wide string - aber wenn dann bitte konsequent tstring verwenden...
-
Aber dann nen _T Makro oder so verwenden für die Literals.