ATL 如何将 BSTR* str 转换为注册表项。 SetValue(LPCTSTR str 类型
Posted
技术标签:
【中文标题】ATL 如何将 BSTR* str 转换为注册表项。 SetValue(LPCTSTR str 类型【英文标题】:ATL how to Convert BSTR* str to registry key.SetValue(LPCTSTR str type 【发布时间】:2011-12-01 02:01:38 【问题描述】:我已经好几年没有做 C++ 了,更不用说 ATL 代码了
我有这种方法需要手术帮助:(
这是一个移动应用程序,所以我不想使用 CString 和 MFC
我需要将 BSTR* str 转换为正确的类型 LPCTSTR 以便在注册表 Set.Value 方法中使用
STDMETHODIMP CAXSampleCtl::SendMSG(BSTR* str)
CRegKey key;
key.Create(HKEY_LOCAL_MACHINE, _T("MyKeyName"));
key.SetValue( str <<<--- nope, _T("MyValueName"));
key.Flush();
key.Close();
return S_OK;
【问题讨论】:
为什么不直接用 UNICODE #defined 编译? 【参考方案1】:COLE2T
宏只适合您,请参阅String Conversion Classes and Macros
要转换为 BSTR,请将现有字符串传递给 CComBSTR。要从 BSTR 转换,请使用 COLE2[C]DestinationType[EX], 比如 COLE2T。
【讨论】:
以上是关于ATL 如何将 BSTR* str 转换为注册表项。 SetValue(LPCTSTR str 类型的主要内容,如果未能解决你的问题,请参考以下文章