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