• c++ 判断windows系统和进程是32位还是64位


    BOOL Is64BitOS()
    {
        typedef VOID (WINAPI *LPFN_GetNativeSystemInfo)( __out LPSYSTEM_INFO lpSystemInfo );
        LPFN_GetNativeSystemInfo fnGetNativeSystemInfo = (LPFN_GetNativeSystemInfo)GetProcAddress( GetModuleHandleW(L"kernel32"),"GetNativeSystemInfo");
        if(fnGetNativeSystemInfo)
        {
            SYSTEM_INFO stInfo = {0};
            fnGetNativeSystemInfo( &stInfo);
            if( stInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64
                || stInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)
            {
                return TRUE;
            }
        }
        return FALSE;
    }
    
    BOOL Is64BitPorcess(DWORD dwProcessID)
    {
        if (!Is64BitOS())
        {
            return FALSE;
        }else
        {
            HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,dwProcessID);
            if(hProcess)
            {
                typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
                LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress( GetModuleHandleW(L"kernel32"),"IsWow64Process");
                if (NULL != fnIsWow64Process)
                {
                    BOOL bIsWow64 = FALSE;
                    fnIsWow64Process(hProcess,&bIsWow64);
                    CloseHandle(hProcess);
                    if (bIsWow64)
                    {
                        return FALSE;
                    }
                    else
                    {
                        return TRUE;
                    }
                }
            }
        }
        return FALSE;
    }
  • 相关阅读:
    牢固你的人际关系三十六计
    Google 将携手大众,开发新一代汽车导航系统
    C++图书热点观察[转]
    Qt程序http报错 TLS initialization failed
    基于kinova jaco2机械臂的仿真模拟
    IfcBuild2Axes
    threejs绘制多边形2
    QAction
    java Math.pow
    yolov5模型地址
  • 原文地址:https://www.cnblogs.com/xylc/p/3559388.html
Copyright © 2020-2023  润新知