Archiv verlassen und diese Seite im Standarddesign anzeigen : Cstring einem char array zuweisen
Hallo ich programmiere gerade ein Programm mit Visual C++
Ich möchte eine Zeichenkette die in einer Variablen vom Typ Cstring einem char [] zuweisen. Der Compiler nölt aber.
Zur Verdeutlichung
char sBuf[] = m_tosend;
m_tosend ist eine Variable vom Typ Cstring.
Compilermeldung:
error C2440: 'initializing' : 'class CString' kann nicht in 'char []' konvertiert werden
Gibt es eine Möglichkeit wie ich das realisieren kann?
Bin für jede Hilfe dankbar
Du mußt mit getlength/getbuffer etc. die Daten rausfummeln. (Cstring Help)
so einfach "=" geht da nicht.
NumberFive
14.04.2006, 08:37
CString m_tosend;
char sBuf* = new char[m_tosend.GetLenth()+1];
strcpy(sBuf,m_tosend.operator LPCSTR());
jetzt steht dein CString im sBuff.
Ok in einer Uni Code an wendung geht es nicht.
Gruß
PS: Ist auf dem Kopf getipp also noch mal genau den syntax prüfen.
Vielen Dank erstmal. Funktioniert super:
Aus einem anderen Forum hab ich die Lösung:
char sBuf[255];
_tcscpy(sBuf,m_tosend);
Also nochmal vielen Dank für die schnelle Hilfe
Die Visual Studio Help ist Dein Freund. CString hat dafür eine Methode, die den Pointer auf das char Array zurück gibt. Dann kannst Du Dir in vielen Fällen das Kopieren sparen.
Ich glaub dir gerne das ich sowas in der Hilfe finden würde. Für einen Anfänger ist es nicht immer ganz einfach das passende zu finden was man sucht.
Die Methode GetBuffer liefert dir sogar einen einen String (char*) den du verändern kannst!
NumberFive
17.04.2006, 08:15
GetBuffer ist mit vorsicht zu geniessen wie die anderen Funktion auch.
den Der CString hat ref Zaehler wegen dem frei geben und so.
Und der CString ist dann auch für "normale" Cstring funktionen gesperrt.
Wenn du GetBuffer nimmst muß du dem CString auch sagen wann du Fertig bist. die Funktion weiß ich aber jetzt gerade nicht im Kopf.
Die optimale Funktion findet man wohl nur wenn genau weiß was andere machen will und sein Stil ein bissle kennt.
Klar steht viel in der Hilfe aber ich finde machmal einfach zu viel.
Gruß
Genau!
Mit "CString::ReleaseBuffer" sagst du dem CString, dass du fertig bist.
mfg
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.