zoukankan      html  css  js  c++  java
  • c++ 判断是64还是32位系统

    1、IsWow64Process

    确定指定进程是否运行在64位操作系统的32环境(Wow64)下。
    语法
    BOOL WINAPI IsWow64Process(
      __in HANDLE hProcess,
      __out PBOOL Wow64Process
      );
    参数
      hProcess
        进程句柄。该句柄必须具有PROCESS_QUERY_INFORMATION 或者 PROCESS_QUERY_LIMITED_INFORMATION 访问权限
      Wow64Process
        指向一个bool值,
        如果该进程是32位进程,运行在64操作系统下,该值为true,否则为false。
        如果该进程是一个64位应用程序,运行在64位系统上,该值也被设置为false。
      返回值
        如果函数成功返回值为非零值。
        如果该函数失败,则返回值为零。要获取扩展的错误的信息,请调用GetLastError .
      微软的例子:
    复制代码
      #include <windows.h>
      #include <tchar.h>
      typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
      LPFN_ISWOW64PROCESS fnIsWow64Process;
      BOOL IsWow64()
      {
        BOOL bIsWow64 = FALSE;
        //IsWow64Process is not available on all supported versions of Windows.
        //Use GetModuleHandle to get a handle to the DLL that contains the function
        //and GetProcAddress to get a pointer to the function if available.
        fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
        GetModuleHandle(TEXT("kernel32")),"IsWow64Process");
        if(NULL != fnIsWow64Process)
        {
          if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
          {
            //handle error
          }
        }
        return bIsWow64;
      }
      int main( void )
      {
        if(IsWow64())
          _tprintf(TEXT("The process is running under WOW64.
    "));
        else
          _tprintf(TEXT("The process is not running under WOW64.
    "));
        return 0;
      }
    复制代码

      注意:使用此函数判断操作系统是32位还是64位并不合适,勉强要用的话,可以指向一个32位进程。

    2、比较合适的做法是:

    复制代码
      BOOL Is64bitSystem()
      {
        SYSTEM_INFO si;
        GetNativeSystemInfo(&si);
        if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||
                si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64 )
          return TRUE;
        else
          return FALSE;
      }
    复制代码
  • 相关阅读:
    Codeforces 1249 F. Maximum Weight Subset
    Codeforces 1249 E. By Elevator or Stairs?
    Codeforces 1249 D2. Too Many Segments (hard version)
    使用subline作为Stata外部编辑器,并实现代码高亮
    Getting a handle on
    Economics degrees
    The threat to world
    他山之石,calling by share——python中既不是传址也不是传值
    Python的几个爬虫代码整理(网易云、微信、淘宝、今日头条)
    一梦江湖费六年——QQ群聊天分析
  • 原文地址:https://www.cnblogs.com/whwywzhj/p/8489172.html
Copyright © 2011-2022 走看看