ATL, как преобразовать BSTR * str в раздел реестра. SetValue (тип LPCTSTR str

Прошло много лет с тех пор, как я написал 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;
}

person WiredLessInTX    schedule 04.10.2011    source источник
comment
Почему бы просто не скомпилировать UNICODE #defined?   -  person Hans Passant    schedule 05.10.2011


Ответы (1)


COLE2T макрос только для вас, см. Классы преобразования строк и макросы

Чтобы преобразовать в BSTR, передайте существующую строку конструктору CComBSTR. Чтобы преобразовать из BSTR, используйте COLE2 [C] DestinationType [EX], например COLE2T.

person Roman R.    schedule 04.10.2011