SAVEARRAY -> BSTR
-
Hi,
wie bekomme ich den Inhalt eines SAVEARRAY in einen BSTR?
ifstream ifs( FileName, ios::in | ios::binary ); ifs.seekg(ios::beg); SAFEARRAY* psa = SafeArrayCreateVector( VT_UI1, 0L, lFileSize); ifs.read( (char*)psa->pvData, lFileSize ); BSTR bStr = ::SysAllocString((OLECHAR*)psa);in bStr steht jetzt alles aus psa, allerdings nur bis zur ersten 0

bin für jede Anregung dankbar.
grüssle

-
Du castest binäre Daten zu einen OLECHAR* - das geht halt nur bis zur ersten (scheinbar termierenden) Null.

Korrekt konvertieren kann man z.B. mit _variant_t oder std::stringstream.
Was soll denn eigentlich am Ende in dem BSTR stehen?
Grüsse
*this
-
Gast++ schrieb:
Was soll denn eigentlich am Ende in dem BSTR stehen?
der Inhalt einer binären Datei
grüssle

-
Smitty schrieb:
Gast++ schrieb:
Was soll denn eigentlich am Ende in dem BSTR stehen?
der Inhalt einer binären Datei
grüssle

Zu Zeichen umcodiert oder immer noch binär?Grüsse
*this
-
Gast++ schrieb:
Smitty schrieb:
Gast++ schrieb:
Was soll denn eigentlich am Ende in dem BSTR stehen?
der Inhalt einer binären Datei
grüssle

Zu Zeichen umcodiert oder immer noch binär?Grüsse
*this
as it is, also nix konvertieren
-
BSTR bStr = NULL; HRESULT hr = ::BstrFromVector(psa,&bStr); #ifdef DEBUG // Zum Gucken _bstr_t b(bStr); int i = b.length(); #endifGrüsse
*this
P.S.: So so, programmiert doch noch jemand ausser mir mit BSTR&Co. 2001 musste ich mir mal anhören dass OLE/COM mit .NET endgültig tot sei

-
Schade, auch da nur bis zur ersten 0. Muss ich mir wohl was anderes einfallen lassen. Nur was? Mir gehen langsam aber sicher die Ideen aus

grüssle

-
Smitty schrieb:
Schade, auch da nur bis zur ersten 0. Muss ich mir wohl was anderes einfallen lassen. Nur was? Mir gehen langsam aber sicher die Ideen aus

grüssle


Also bei mir stehen im _bstr_t von 42 char dann 21 wchar_t drin.
was irgendwie stimmt.Grüsse
*this
-
ich gehe mittlerweile auch davon aus, dass es mir bei meinem VS2005 irgendwas zerschossen hat. Tlw. recht merkwürdiges Verhalten in der letzten Zeit

trotzdem ein fettes DANKE
grüssle
