Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » CString nach char* ?!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.06.2007, 11:35 Uhr
~inva
Gast


Hey, sorry das ich schonwieder einen neuen Beitrag erstelle, aber ich habe ein dringendes Problem.
Undzwar habe ich CStrings und muss diese aber nach char* umwandeln.
Gegoogled hab ich auch schon, aber nichts gefunden was funktioniert.
Bei strcpy sagt er immer "no suitable conversation from CString to const char*"

Ich bin mit meinem Latein am Ende, hoffe ihr könnt mir helfen.

Grüße.
inva
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.06.2007, 11:51 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi,

GetBuffer von CString verwenden.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.06.2007, 12:11 Uhr
~inva
Gast


CString strFilename = "test";
LPTSTR p = strFilename.GetBuffer(1024);
strcpy( (char*)p, strFilename);
strFilename.ReleaseBuffer( );

meinst du so in der Richtung?
Das geht leider nicht =/

-> error: no suitable conversion function from "CString" to "const char *" exists
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.06.2007, 13:07 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja das kommt an der Stelle:


C++:
strcpy( (char*)p, strFilename);



Ansonsten ist das blödsinn, du kopierst nach p (also nach strFilename) den Inhalt von strFilename.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.06.2007, 14:49 Uhr
~inva
Gast


Ahoi,
Also, die strcpy funktion tut bei mir nicht.
Ich habs mitm GetBuffer versucht, aber GetBUffer liefert ja nur ein LPTSTR zurück, was jedoch strcpy nicht frisst, und nachdem ichs gecastet hatte, kam immernoch der Fehler.
Ein Arbeitskollege hat mir eine andere Lösung gesagt, hier kurz, falls nochmal jemand Probleme damit hat:


C++:
USES_CONVERSION;
CString strTest = "lalala"
CString strFileName = (LPCTSTR) strTest;

// hier die Funktion die den char* als Argument benötigt
DICOMdata.CreateFile( T2A( (LPCTSTR) strFileName ) );



... und so funktionierst
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.06.2007, 16:02 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Wofür schiebst du das denn über 2 Variablen?

Außerdem kann CString kein char* zurückgeben weil du nicht einfach in dem CString Object rumschreiben darfst da du es sonst zerstörst.

Allerdings liefert dir CString einen Operator für const char* also einen schreibgeschützten Pointer auf den Inhalt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.06.2007, 17:10 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


und ich schätze wenn du uns die vollständige fehlermeldung gepostet hättest wären wir schneller am ziel gewesen. da T2A ggf W2A oder "nix" ist, und ich denk mal in deinem projekt ist einfach unicode angewesen, dann kann er cstring selbst mit GetBuffer nicht auf const char * casten, da der dann const wchar * zurückliefert
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: