系统目录重定向

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

猜你喜欢

转载自blog.csdn.net/struborn_b/article/details/106348748