Why is RegOpenKeyEx() returning error code 2 on Vista 64bit?

后端 未结 5 1015
旧巷少年郎
旧巷少年郎 2020-12-05 17:48

I was making the following call:

result = RegOpenKeyEx(key, s, 0, KEY_READ, &key);

(C++, Visual Studio 5, Vista 64bit).

It is f

相关标签:
5条回答
  • 2020-12-05 17:51

    You have to compile with "Use Multi-Byte Character Set" or cast string in code to (LPWSTR)

    0 讨论(0)
  • 2020-12-05 17:53

    I had a similar problem. I was using:

    dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                                       (LPWSTR)"SOFTWARE\\0test",
                                       0,
                                       WRITE_DAC ,
                                       &hKey);
    

    That didn't work. I tried it like this and it worked:

    dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                                       _T("SOFTWARE\\0test"),
                                       0,
                                       WRITE_DAC ,
                                       &hKey);
    
    0 讨论(0)
  • 2020-12-05 18:13

    I discovered that I could solve my problem using the flag: KEY_WOW64_64KEY , as in:

    result = RegOpenKeyEx(key, s, 0, KEY_READ|KEY_WOW64_64KEY, &key);
    

    For a full explanation: 32-bit and 64-bit Application Data in the Registry

    0 讨论(0)
  • 2020-12-05 18:13

    yes,win7 64B,add further flag KEY_WOW64_64KEY ,it will work. if not work, refer to http://msdn.microsoft.com/en-us/library/ms724897(v=VS.85).aspx

    0 讨论(0)
  • 2020-12-05 18:17

    On a Windows 64-bit system the Registry is actually divided into two parts. One section is used by 64-bit processes, and one part by 32-bit processes.

    For example, if a 32-bit application programatically writes to what it believes is HKLM\SOFTWARE\Company\Application, it's actually redirected by the WoW64-layer to HKLM\SOFTWARE\Wow6432Node\Company\Application.

    So when you run your 32-bit application and call RegOpenKeyEx it's actually working against the Wow6432Node\ folder, and not the regular \SOFTWARE node.

    0 讨论(0)
提交回复
热议问题