将LPWST转换或转换为BSTR

时间:2013-05-29 06:05:51

标签: c++ windows wchar

如何将LPWSTR转换为BSTR? LPWSTR是WCHAR *而BSTR是OLECHAR *,OLECHAR又是WCHAR类型,只是类型转换会起作用吗?或者我们需要做一些额外的努力?它显示错误的转换错误/警告。

2 个答案:

答案 0 :(得分:2)

你这样做

BSTR pBstr = SysAllocString(szWCharString);

// do something with the BSTR here ...

SysFreeString(pBstr);

您必须记住之后通过调用SysFreeString来释放用于转换的空间。

答案 1 :(得分:1)

BSTR由OLECHAR []和字符串前面的长度信息组成。 BSTR是指向OLECHAR []部分的指针。但BSTR功能需要长度信息(容量和固有长度)。

您需要SysAllocString函数来分配整个结构。