2010-12-19 7 views
2

私はキーの値を取得しようとしていますが、値の最初の文字を取得しています。 誰でも手助けできますか?C++ getレジストリキーが1つのみの文字を返します

私のコード:

void dealWithRegistry() 
{ 
    HKEY regkey1; 
    char data[100]; 
    DWORD datasize = sizeof (data)/sizeof (char); 
    LONG rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_READ, &regkey1); 
    if (rc != ERROR_SUCCESS) 
    { 
     cout << "there was a problem openning" << endl; 
    } 
    else 
    { 
     rc = RegGetValue (regkey1, NULL, L"AppData", RRF_RT_REG_SZ, NULL, (void*) data, &datasize); 
     if (rc != ERROR_SUCCESS) 
     { 
      cout << data << endl; 
      cout << "there was a problem getting the value" << endl; 
     } 
    } 
    cout << data << endl; 

} 

答えて

5

これはおそらく、Unicodeのデータを返すと、あなただけの最初の文字を印刷しています。その簡単なテストは、RegGetValueAへの呼び出しを変更することです。

+0

魅力的な作品です:)ありがとう。 – Tom

+1

@Tom。私はあなたがそれが働いてうれしいです。もう1つの解決策は、charの代わりにTCHARを使用し、ビルド属性(UnicodeまたはANSI)に基づいて適切な型(WCHARまたはchar)を持つことです。 –

+0

はい、私はそれについて今読んでいる、本当にありがとう! – Tom

関連する問題