CComBSTR ????
-
Hi,
folgendes Prob:
ich hab die Variable vom Tyb CComBSTR sName deklariert;
Ich bekomme den aber nicht in ne Listbox nen String oder sonstwas.
Wie komm ich an den Inhalt ran?
-
Hallo,
bitte lesen: http://www.c-plusplus.net/forum/viewtopic.php?t=39405
-
Hi, habe dein Posting gelesen. Bin trotzdem der Meinung hier richtig zu sein.
Da Du der Meinung nicht bist (ich glaub Dir mal), sage mir doch bitte in welcher Rubrik Du das Problem posten würdest.Gruß Trikor
-
Was willst du genau machen ?
Eine Listbox nimmt nur CStrings auf mehr kann sie nicht bzw. char* noch nie probiert nutze lieber CStrings aufgrund der besseren Optionen.
Aber ich meine LPCTSTR muss auch gehen.einfügen in eine Listbox tust Du folgendermassen:
z.B.
CString str;
str = "guckuck";
CListBox ctrListBox;ctrListBox.AddString(str);
leeren tust du die Box mit ctrListBox.ResetContent();
viel Glück

-
Ganz auf Cstrings kann er sicher ned ausweichen

Er verwendet die CComBSTR sicher ned, weil sie ihm so toll gefallen
Umwandlung geht ueber Makros (sind aber unsauber und ned ganz so ohne)
Musst genau wissen wie dei Teile sich verhalten, und welchen scope die Haben ...
Schau dir dazu OLE2T an ... (findest in der MSDN)
folgendes Beispiel sollte aber ohne probleme gehenCComBSTR strTest = "TestTestTest"; // dieser Ctor exisitiert CString strTest2(OLE2T(strTest)); // geht auch weil es nen BSTR operator am CComBSRT gibt und BSTR OLECHAR* kompatibel sein muesste ( BSTR hat die laengaenangabe vorm ersten element ... der pointer selber zeigt aber aufs erste element )Kannst aber auch selber convertieren, mit kontrolle ueber den Speicher ... MultibyteToWideChar und WideToMultiByteChar sind hier die API funktionen ....
Achte auf das _UNICODE flag !!!
Schreib dir nen Adapter halt ....Cio ...