【问题标题】:const char [22]' to 'LPCWSTR'const char [22]' 到 'LPCWSTR'
【发布时间】:2012-05-05 21:56:36
【问题描述】:
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++

【问题讨论】:

  • 您在“Windows 的产品 ID”前面缺少一个“L”
  • rgValue 是一个变量.. 我不能直接添加 L tre 来执行我必须将其转换为显示的代码。
  • MessageBoxW(NULL,rgValue, L"Windows 的产品 ID", MB_OK);

标签: c++ visual-c++ type-conversion


【解决方案1】:

“Windows 的产品 ID”字符串前缺少“L”。应该是:

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

【讨论】:

    猜你喜欢
    • 2020-04-04
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 2016-07-06
    • 2017-10-14
    • 2013-11-09
    • 2011-07-25
    相关资源
    最近更新 更多