Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Cstring nach Bstr

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
15.06.2003, 20:29 Uhr
Alois



Ich habe einen CString, den ich über einen VARIANT-Record einem Listview übergeben will. Das ist das einzige, was der Compiler frisst, aber es kommt nur Müll beim Listview an:

C++:
VARIANT v;
BSTR Text;
CString name;

Text = (BSTR)&name; //Fehler
VariantInit(&v);
v.vt = VT_BSTR;
v.bstrVal = SysAllocString(Text);
m_Kunden.GetListItems().Add(NULL, NULL, &v, NULL, NULL);
SysFreeStrings(Text);

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.06.2003, 20:41 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Hi,
hab ich noch nicht benutzt aber vielleicht geht ja

C++:
Text = name.GetBuffer(name.GetLength());




Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.06.2003, 21:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo:


C++:
BSTR str;
CString strPfad = CW2A(str);


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.06.2003, 21:37 Uhr
Alois



@Heiko: geht nicht ('char *' kann nicht in 'unsigned short *' konvertiert werden)

@Flo: CW2A ist bei mir in keinem Header definiert, außerdem will ichs ja genau andersrum CString -> BSTR

Wenn ich statt eines CStrings eine String-Konstante nehmen, geht es mit:

C++:
Text = OLESTR("...");
// Vielleicht hilft es, wenn mir jemand erklärt, was das zu bedeuten hat:
#define OLESTR(str) L##str

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.06.2003, 21:57 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


benutze dann halt die platform sdk funktion


C++:
int WideCharToMultiByte(
  UINT CodePage,            // code page
  DWORD dwFlags,            // performance and mapping flags
  LPCWSTR lpWideCharStr,    // wide-character string
  int cchWideChar,          // number of chars in string
  LPSTR lpMultiByteStr,     // buffer for new string
  int cbMultiByte,          // size of buffer
  LPCSTR lpDefaultChar,     // default for unmappable chars
  LPBOOL lpUsedDefaultChar  // set when default char used
);



um BSTR nach CString zu konvertieren,

CW2A ist in atlconv.h definiert!
--
class God : public ChuckNorris { };

Dieser Post wurde am 15.06.2003 um 21:59 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.06.2003, 22:26 Uhr
Alois



OK danke, mit MultiByteToWideChar hats geklappt.
 
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: