博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断是64位操作系统还是32位系统
阅读量:5091 次
发布时间:2019-06-13

本文共 1708 字,大约阅读时间需要 5 分钟。

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 
  #include
  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.\n"));    else      _tprintf(TEXT("The process is not running under WOW64.\n"));    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;  }

 

转载于:https://www.cnblogs.com/guomeiran/p/3898718.html

你可能感兴趣的文章
javascript闭包
查看>>
@Column标记持久化详细说明
查看>>
创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备...
查看>>
mysql8.0.13下载与安装图文教程
查看>>
站立会议08(冲刺2)
查看>>
url查询参数解析
查看>>
http://coolshell.cn/articles/10910.html
查看>>
[转]jsbsim基础概念
查看>>
DIV和SPAN的区别
查看>>
第一次使用cnblogs
查看>>
C#语法糖之 session操作类 asp.net
查看>>
2015 Multi-University Training Contest 3
查看>>
使用Gitblit 在windows 上部署你的Git Server
查看>>
Thrift Expected protocol id ffffff82 but got 0
查看>>
【2.2】创建博客文章模型
查看>>
【3.1】Cookiecutter安装和使用
查看>>
【2.3】初始Django Shell
查看>>
Linux(Centos)之安装Redis及注意事项
查看>>
bzoj 1010: [HNOI2008]玩具装箱toy
查看>>
Kotlin动态图
查看>>