我想读取注册表中的Store Root的值,注册表中值为%user Profile%\Local Settings\Application Data\Identities\{ADBC22E2-C275-4EC3-B026-706805170FB8}\Microsoft\Outlook Express,可为什么我得到的值是乱码?

解决方案 »

  1.   

    不懂你说什么注册表Settings\Application Data\Identities\{ADBC22E2-C275-4EC3-B026-706805170FB8}\Microsoft\Outlook Express是什么意思。。
    估计你没换行吧。。难看懂
      

  2.   

    注册表中Store Root的值是
    %user Profile%\Local Settings\Application Data\Identities\{ADBC22E2-C275-4EC3-B026-706805170FB8}\Microsoft\Outlook Express
    整个串都是。但是我读出来是乱码。
      

  3.   

    有这么难吗?我就是想通过读取注册表找到folders.dbx文件的路径。这个路径存储在Store Root里面。我需要这个值但是我读取出来是乱码。我想了解是怎么回事?
      

  4.   

    乱码的可能性。。你要了解你所要读的数据类型,如果不是char型的话~
    你用char型的变量来取值~那可能是乱码.....
      

  5.   

    HKEY hSubKey;
    CString strKeyName="Identities\\{AA8137BF-327A-4D68-8136-76ABEDF64B24}\\Software\\Microsoft\\Outlook Express\\5.0";
    DWORD dwIndex = 0;
    DWORD dwBufSize = 256;
    DWORD dwDataType;
    char chDescription[256];
    if(RegOpenKeyEx(HKEY_CURRENT_USER, strKeyName, 0, KEY_READ, &hSubKey) == ERROR_SUCCESS)
    {
    if(RegQueryValueEx(hSubKey, "Store Root", 0, &dwDataType, (BYTE *)chDescription, &dwBufSize) == ERROR_SUCCESS)
    {}
    }
      

  6.   

    非常感谢各位的捧场。我查了一些资料关于注册表键值的类型只有BINARY,DWORD,SZ,三种类型。我定义类型的语句是这样的。DWORD type_1=REG_DWORD;等号后面的值三种我都试过。但是还是不行。怎么回事。