如何将LPWSTR转换为BSTR? LPWSTR是WCHAR *而BSTR是OLECHAR *,OLECHAR又是WCHAR类型,只是类型转换会起作用吗?或者我们需要做一些额外的努力?它显示错误的转换错误/警告。
答案 0 :(得分:2)
你这样做
BSTR pBstr = SysAllocString(szWCharString);
// do something with the BSTR here ...
SysFreeString(pBstr);
您必须记住之后通过调用SysFreeString
来释放用于转换的空间。
答案 1 :(得分:1)
BSTR由OLECHAR []和字符串前面的长度信息组成。 BSTR是指向OLECHAR []部分的指针。但BSTR功能需要长度信息(容量和固有长度)。
您需要SysAllocString函数来分配整个结构。