ATL如何转换BSTR* str到注册表项.SetValue(LPCTSTR字符串类型)

ATL how to Convert BSTR* str to registry key.SetValue(LPCTSTR str type

本文关键字:注册表 SetValue LPCTSTR 类型 字符串 何转换 转换 ATL BSTR str      更新时间:2023-10-16

我已经很多年没有写过c++了,更不用说ATL代码了

我有这个方法,需要手术帮助:(

这是一个移动应用程序,所以我不想使用CString和MFC

我需要将BSTR* str转换为正确类型的LPCTSTR,以便在注册表集中使用。值方法

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;
}

COLE2T宏就是为你准备的,参见字符串转换类和宏

要转换为BSTR,将现有字符串传递给的构造函数CComBSTR。从BSTR转换,使用COLE2[C]DestinationType[EX],如COLE2T。