多年以来,我完成了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;
}
答案 0 :(得分:2)
COLE2T
宏适合您,请参阅String Conversion Classes and Macros
要转换为BSTR,请将现有字符串传递给构造函数 的CComBSTR。要从BSTR转换,请使用COLE2 [C] DestinationType [EX], 例如COLE2T。