2012-04-25 21 views
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 

私は上記のようにこのコードを実行してエラーを取得しようとしています。const char [22] '〜' LPCWSTR '

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を取得する方法???

PLSEは、VC++

+3

あなたが「のWindowsプロダクトID」の前に「L」を逃している – PhilMY

+0

rgValueが可変である..私はそのコード を実行するために、直接LのTREを追加カント私はそれを変換する必要があります表示する。 – zytham

+2

MessageBoxW(NULL、rgValue、L "WindowsのプロダクトID"、MB_OK); – PhilMY

答えて

7

に新しい助ける "プロダクトIDのWindowsの" 文字列の前に "L" が欠けています。それは次のようになります。

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

それは働きました..おはよう それはちょうど愚かなものでした... :) – zytham

関連する問題