这是我的需要
BSTR l_strArgs;
LPCWSTR sth;
//----
//---
OutputDebugStringW(sth);
如何将BSTR转换为LPCWSTR?
是否有任何标题库可以将任何字符串类型(微软)转换为LPCWSTR类型?
答案 0 :(得分:6)
只是覆盖NULL
情景,你就可以了
BSTR l_strArgs;
LPCWSTR sth = strArgs ? strArgs : L"";
正如你在标签中提到的ATL,这里是ATL风格的单行:
OutputDebugString(CString(l_strArgs));
或者,为了确保您保持在Unicode域中:
OutputDebugStringW(CStringW(l_strArgs));
答案 1 :(得分:2)
我刚发现这个
BSTR l_strArgs;
LPCWSTR sth;
CString cs(_com_util::ConvertBSTRToString(l_strArg));
sth = cs;
OutputDebugStringW(sth);
答案 2 :(得分:0)
当您使用类似_bstr_t的包装器时,BSTR变得更容易处理。这是关于它们的微软文档 http://msdn.microsoft.com/en-us/library/zthfhkd6%28v=VS.100%29.aspx
正如您所料,_bstr_t构造函数之一采用BSTR参数。还有一个运算符返回一个const wchar_t *,您应该能够将其强制转换为LPCWSTR。
希望这有帮助