Frage

Alle Ideen, wie einen BSTR aus einem LPCOLESTR zu machen? Dumme Sache zu bekommen aufgehängt auf ..

War es hilfreich?

Lösung

Ein LPCOLESTR ist nur ein const wchar_t*, so können Sie verwenden SysAllocString() eine BSTR zu erstellen:

LPCOLESTR olestr = ...;
BSTR bstr = SysAllocString(olestr);

Seien Sie sicher, SysFreeString() , wenn Sie fertig sind mit Ihre BSTR. Siehe auch die MSDN-Dokumentation auf BSTRs

Andere Tipps

Der Unterschied zwischen BSTR und LPCOLESTR ist, dass BSTR die Länge der Zeichenfolge vor dem String als Präfix hat, LPCOLESTR nicht hat.

Ein BSTR nicht notwendigerweise eine Endung \ 0 Markierung Ende der Zeichenfolge haben, da die Länge der Zeichenfolge vorangestellt ist, ich die Klasse verwenden CComBSTR in der Regel zu konvertieren (atlcomcli.h), nimmt die Ctor entweder BSTR oder LPCOLESTR als Argument und es ist Mitglied BSTR (), um die BSTR Darstellung zu erhalten:

CComBSTR b( yourolestring )
// b.BSTR()

CComBSTR die Aufteilung des Griff / befreien, so dass keine Gefahr von Speicherverlust.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top