8

誰かがこのコードの何が問題なのか教えてもらえますか?エラーはありません。すべてがERROR_SUCCESSを返しますが、レジスターでは変更を確認できません。

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);
}
4

2 に答える 2

21

アプリケーションは64ビットOS上で32ビットであるため、レジストリキーは実際にはの下に作成されますHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

レジストリの32ビットおよび64ビットのアプリケーションデータを参照してください。

于 2013-01-29T14:35:27.210 に答える
0

5番目と6番目のパラメーターをREG_OPTION_NON_VOLATILE、KEY_ALL_ACCESSとして試すことができますか

于 2013-01-29T14:40:10.147 に答える