ATL, как преобразовать BSTR * str в ключ реестра. SetValue (тип LPCTSTR str - PullRequest
0 голосов
/ 05 октября 2011

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

2 голосов
/ 05 октября 2011
Макрос

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

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

...