注册表编程的问题:类型为REG_DWORD的项读不出来
if(OpenKey=RegOpenKey(HKEY_LOCAL_MACHINE,_T("SYSTEM\\CurrentControlSet\\Services\\ACPI");,&hKey))!=ERROR_SUCCESS)
{
DWORD type1=REG_DWORD;
DWORD type2=REG_EXPAND_SZ;
DWORD Start;//用于装载类型为REG_DWORD的值
DWORD lpcbData;
unsigned char path[MAX_PATH];
DWORD pathlen=MAX_PATH;
RegQueryValueEx(tempKey,_T("Start"),NULL,&type1,NULL,&lpcbData);
QueryValue=RegQueryValueEx(tempKey,_T("Start"),NULL,&type1,(LPBYTE)&Start,&lpcbData);//查询Start的值
QueryValue=RegQueryValueEx(tempKey,_T("ImagePath"),NULL,&type2,path,&pathlen); //查询ImagePath的值 CString p(path);
AfxMessageBox(p); //正确输出
CString data((LPBYTE)Start);//获得start的值
AfxMessageBox(data) //输出失败
}
最终ImagePath成功输出,说明对tempKey的查询是成功,但是输出的Start是错误的,刚接触注册表编程不知道如何读取类型为REG_DWORD的值
------解决方案--------------------
解决了就好。涉及编程的问题,最好发到专门的编程版块,会得到很好的解答。