我在Software\\AlRand12 创建的注册表为什么在Software\\下看不到呢? 下面的代码可以正常读写数据;但就是看不到AlRand12项 
i=rand(); // 随机数 TCHAR szBuffer[2];
szBuffer[1] = i >> 8;
szBuffer[0] = i & 0xFF;
CString strRand(_T("")); // 读取注册表随机数 4
CString sName = _T("AlRandTestName");
HKEY hKey;
LPCTSTR lpPath = _T("Software\\AlRand12"); DWORD dwDisposition ;
TCHAR *pClass = _T("");

DWORD type_1 = REG_SZ;//定义数据类型
BYTE Getbuff[10] = {0};
DWORD cbData_1 = 10;
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpPath, 0, KEY_ALL_ACCESS, &hKey);
if(lRet == ERROR_SUCCESS)
{
long ret1=::RegQueryValueEx(hKey,sName,NULL,&type_1,Getbuff,&cbData_1);
if(ret1 == ERROR_SUCCESS)
{
strRand = Getbuff;
}
}
else
{
int ret=RegCreateKeyEx(HKEY_LOCAL_MACHINE,lpPath,0,pClass, REG_OPTION_NON_VOLATILE ,KEY_WRITE|KEY_READ,NULL,&hKey,&dwDisposition );
::RegSetValueEx(hKey,sName, 0, REG_SZ, (BYTE *)szBuffer,10);
long ret1=::RegQueryValueEx(hKey,sName,NULL,&type_1,Getbuff,&cbData_1);
if(ret1 == ERROR_SUCCESS)
{
strRand = Getbuff;
}
}
::RegCloseKey(hKey);注册表

解决方案 »

  1.   

    64位系统它会给你重定向到 HKEY_LOCAL_MACHINE\Software\WOW6432Node 这个位置下面
      

  2.   

    1楼正解,你Ctrl+F查找AlRandTestName就能找到他的位置,不过程序里面用的路径还是要原路径_T("Software\\AlRand12");
      

  3.   

    设断点看下你那几个函数返回值是什么?如果不是0,在error lookup里面查下是什么原因。函数都调用成功了,你在注册表找下在什么地方。如果是WIN 7系统,权限会比较麻烦