windows平台下 vc开发中,大家应该会到系统目录重定向问题。
如:64位操作系统下,32位的程序,要访问system32目录,系统会重定向到目录syswow64下。
微软提供了两个API可以关闭和开启
PVOID OldValue;
if (!Wow64DisableWow64FsRedirection(&OldValue))
{
return R_FALSE;
}
// do something...
if (!Wow64RevertWow64FsRedirection(OldValue))
{
iErrorCode = ERROR_RECOVER_REDIRECT;
return R_FALSE;
}
附:判断一下系统位数
BOOL IsWow64()
{
typedef BOOL(WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandle(_T("kernel32")), "IsWow64Process");
if (NULL != fnIsWow64Process)
{
fnIsWow64Process(GetCurrentProcess(), &bIsWow64);
}
return bIsWow64;
}