Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Const char [22]" в "LPCWSTR"

Автор вопроса: zythamОтветов: 1
error C2664: 'MessageBoxW' : cannot convert parameter 3 from 'const char [22]' to 'LPCWSTR'
     Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

я пытаюсь выполнить этот код ниже и получаю ошибку, как указано выше.

bool RegistryHandler::readRegistryEntry(String^ referencePath, String^ keyName, String ^keyValue)
{
    HKEY keyHandle;
    LPCTSTR sk = TEXT("SOFTWARE\\Microsoft\\Office\\Outlook\\Addins\\GoToApp");
    wchar_t  rgValue [1024];
    wchar_t fnlRes [1024];
    DWORD size1;
    DWORD Type;
    if( RegOpenKeyEx(HKEY_CURRENT_USER, sk,0,KEY_QUERY_VALUE, &keyHandle) == ERROR_SUCCESS)
         {
            size1=1023;
            RegQueryValueEx( keyHandle,L"ApplicationUrl", NULL, &Type,(LPBYTE)rgValue,&size1);
            MessageBoxW(NULL,L"inside for readindg",L"Native Addin",MB_OK);
            MessageBoxW(NULL,rgValue, "Product ID of Windows", MB_OK);
         }
    else {
            MessageBoxW(NULL,L"inside for else",L"Native Addin",MB_OK);
         }
    RegCloseKey(keyHandle);
    return true ;
}

как правильно получить rgvalue???

пожалуйста, помогите новичку в Vc++

  • Вам не хватает буквы "L" перед идентификатором продукта Windows. PhilMY 25.04.2012
  • rgValue - это переменная. Я не могу добавить L tre напрямую для выполнения этого кода, который мне нужно преобразовать для отображения. zytham 25.04.2012
  • MessageBoxW(NULL,rgValue, LProduct ID Windows, MB_OK); PhilMY 25.04.2012

c++type-conversionvisual-c++

Ответы

Ответ 1 · рейтинг 7 · Paskas

Отсутствует буква "L" перед строкой "Идентификатор продукта Windows". Так должно быть:

MessageBoxW(NULL,rgValue, L"Product ID of Windows", MB_OK);

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы