ana*_*and 2 string com bstr visual-c++
BSTR DoSOmething()
{
return L"";
}
Run Code Online (Sandbox Code Playgroud)
或者可以将TCHAR*传递给API,将BSTR作为输入参数.
是否可以通过return语句将wchar_t字符串转换为BSTR.是否会导致内存损坏?
不,它不行,因为有些API不仅仅指望一个WCHAR*指针,它BSTR也是一个BSTR带有长度信息的真实指针.仍然以这种方式投射可能会很好,这可能会产生误导.
关于BSTR的一切:Eric的BSTR语义完全指南.
来自那里的相关报价:
2)必须使用SysAlloc*系列函数分配和释放BSTR.PWSZ可以是堆栈中的自动存储缓冲区,也可以使用malloc,new,LocalAlloc或任何其他内存分配器进行分配.
3)BSTR具有固定长度.PWSZ可以是任何长度,仅受其缓冲区中有效存储器的数量的限制.
4)BSTR始终指向缓冲区中的第一个有效字符.PWSZ可以是指向字符串缓冲区的中间或末尾的指针.