string und Cstring
-
Hallo.
Schreibe mit jemanden zusammen Code.
(Nicht immer schlau, ich weiß)Er hat strtok2 als Cstring deklariert.
Ich habe bisher nur mit "normalen" String gearbeitet.
Nun möchte ich ne Stringfunktion nutzen:string::size_type sHallosuchen = strtok2.find( "Hallo", 0);Nun meckert der Compiler rum:
Error 2 error C2653: 'Cstring' : is not a class or namespace name
Error 3 error C2065: 'size_type' : undeclared identifierWie kann ich diese Zeile "Cstring-freundlich" umawandeln?
-
du solltest dich mit deinem Mitstreiter auf eine Stringklasse einigen. std::string ist die Standard-Klasse und wird von allen Compilern unterstützt. CString ist dagegen eine Klasse, die nur von einem Compiler (Borland oder VS) angeboten wird. Wenn ihr tatsächlich CString benutzen wollt müsstest du im entsprechenden Forum nachfragen.
-
Was ist denn Cstring? Meinst du CString (atlstr.h)? Zeig mal mehr Code!
-
_matze schrieb:
Was ist denn Cstring? Meinst du CString (atlstr.h)? Zeig mal mehr Code!
string::size_type sHallosuchen = strtok2.find( "hallo", 0); if(sHallosuchen != string::npos ) continue; else BOOL bRes = ::WritePrivateProfileString(strtok, strtok2,_T(""), sParameter2);strtok2 wurde wie gesagt als Cstring deklariert.
Und er funktioniert auch an anderen Stellen.(Ja wir nutzen S)Fehlermeldung:
Error 2 error C2039: 'find' : is not a member of 'ATL::CStringT<BaseType,StringTraits>'
-
Könnte aber auch sein, dass mit Cstring (<- das s ist klein im Titel) ein C-style string gemeint ist also eine char * mit einer terminierenden Null am Ende.
-
Du solltest auch mal die Deklarationen der verwendeten Variablen zeigen (eben alles Relevante), um diese Verwirrung hier mal ein wenig aufzulösen...
EDIT: Auch wenn jetzt klar ist, dass strtok2 wohl ein CString ist.Abgesehen davon hat pumuckl natürlich Recht. Ihr solltet euch, wenn möglich, auf eine String-Klasse einigen. Alles andere endet nur in ewigem Hin-und-her-Konvertieren.