c++ Win x64 注册表操作

是否为 x64 的操作系统

bool Utility::IsWow64()

{

typedefBOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);

LPFN_ISWOW64PROCESSfnIsWow64Process;

BOOLbIsWow64 = FALSE;

fnIsWow64Process= (LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandleA("kernel32"),"IsWow64Process");

if(NULL != fnIsWow64Process)

{

fnIsWow64Process(GetCurrentProcess(),&bIsWow64);

}

returnbIsWow64;

}

 

注册表的操作:

如果你访问 HKEY_LOCAL_MACHINE 主键下的 SOFTWARE 下的子键 x64位下访问到的是 SOFTWARE\Wow6432Node

例如 : x32 下的注册表路径是HKEY_LOCAL_MACHINE\SOFTWARE\IISFilter

             对应x64下的就是HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\IISFilter

如果你要在x64下访问HKEY_LOCAL_MACHINE\SOFTWARE\IISFilter操作注册表时加上  | KEY_WOW64_64KEY

 

             CRegKey reg;

reg.Open(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\IISFilter"),KEY_READ| KEY_WOW64_64KEY); //防止x64的系统

你可能感兴趣的:(C++,null,winapi)