Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ - RegCreateKeyEx success but without result

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);
}
like image 957
Charlie Hopperson Avatar asked Jan 29 '13 14:01

Charlie Hopperson


1 Answers

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.

like image 163
hmjd Avatar answered Oct 01 '22 00:10

hmjd