ATL如何将BSTR * str转换为注册表key.SetValue(LPCTSTR str类型

时间:2011-10-04 23:00:52

标签: c++ string atl bstr

多年以来,我完成了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;
}

1 个答案:

答案 0 :(得分:2)

COLE2T宏适合您,请参阅String Conversion Classes and Macros

  

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