char* nach BSTR

MFC openGL

Erfahrenes Mitglied
OS : WinXP
Compiler : MSVC++ 7
Sprache : C++ / MFC

Hallo,

ich suche ne Möglichkeit einen CHAR* in ein BSTR zu konvertieren, kann auch nen INT zu BSTR sein, das wäre mit egal.

Hat da jemand ne Methode für die ich nutzen kann ?

Gruss und Danke


MFC OpenGL
 
Zuletzt bearbeitet:
moin


BSTR * ist eigentlich ein OLECHAR*.

MSDN hat gesagt.:
Converts a variant of type OLECHAR* to an unsigned char type.

HRESULT VarUI1FromStr(
OLECHAR * strIn,
LCID lcid,
unsigned long dwFlags,
unsigned char * pbOut
);

mfg
umbrasaxum
 
Du kannst entweder das Makro A2BSTR aus der ATL verwenden
Wenn er eh mit der ATL arbeitet, kann er doch gleich CComBSTR verwenden ... die hat gleich nen konstruktor fuer char *
Oder gibts die unter der neuen ATL nimmer ? (ich "darf" hier nur VS 6.0 verwenden )

mit reiner win32api gehts natuerlich auch ....

MultiByteToWideChar zum transformieren ....
SysAllocStringXXX funktionen und SysFreeString zum erzeugen / freigeben deines BSTR ...

BSTR * ist eigentlich ein OLECHAR*.
NEIN

OLECHAR iss ne C-Zeichenkette aus OLECHAR zeichen (short meistens) ...
OLECHAR iss nullterminiert ....

BSTR iss ne struktur mit fuehrender Laengen-Angabe, und nullterminierung ....
webei der BSTR zeiger hinter die langenangabe auf das erste zeichen zeigt.
Damit kann man den BSTR wie nen OLECHAR lesen, aber man darf ihn niemals nich mit Stringfunktionen bearbeiten (zumindest was die laenge beeinflusst) oder erzeugen / zerstoeren ...

Ciao ...
 
Zurück