C++ - RegCreateKeyEx success but without result

12,878

As the application is 32-bit on a 64-bit OS the registry key will actually be created beneath HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node.

See 32-bit and 64-bit Application Data in the Registry.

Share:
12,878
Charlie Hopperson
Author by

Charlie Hopperson

Updated on July 29, 2022

Comments

  • Charlie Hopperson
    Charlie Hopperson almost 2 years

    Could anybody tell me what's wrong is with this code? There is no errors. Everything returns ERROR_SUCCESS but in register can't see any changes.

    void Utils::writePath(LPCTSTR data)
    {
        HKEY hkey;
        DWORD dwDisposition;
        if(RegCreateKeyEx(HKEY_LOCAL_MACHINE, 
          TEXT("SOFTWARE\\aaTestCompany\\testApp"), 
          0, NULL, 0, 
          KEY_WRITE, NULL, 
          &hkey, &dwDisposition) == ERROR_SUCCESS) 
        {
            long setRes = RegSetValueEx (hkey, "testPath", 0, REG_SZ, (LPBYTE)data, strlen(data)+1);
             if (setRes == ERROR_SUCCESS) {
                    printf("Success writing to Registry.");
                } else {
                    printf("Error writing to Registry.");
                }
            RegCloseKey(hkey);
        }
        else
            MessageBox(NULL,"error","",0);
    }