VC++如何判断当前操作系统是32位还是64位?
IsWow64Process
确定指定进程是否运行在64位操作系统的32环境(Wow64)下。
64位系统 运行64位程序 返回false
64位系统 运行32位程序 返回true
32位系统 运行64位程序 不能运行
32位系统 运行32程序 返回false
方法如下:
#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.\n")); else _tprintf(TEXT("The process is not running under WOW64.\n")); return 0; }
注意,是判断当前操作系统,不是判断CPU
不能通过 #ifdef _WIN64 来判断,因为如果开发环境中定义了该宏,则该判断永远为真
参考:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684139%28v=vs.85%29.aspx
VC++如何判断当前操作系统是32位还是64位?相关推荐
- 判断当前Windows XP操作系统是32位还是64位的方法
昨天在调查怎样区分Windows XP32位和64位的问题,在网上找了一下,大家常用的有两种方法. 方法一.通过指针来判断. 在32位操作系统上指针长是4个字节,而在64位系统上指针为8个字节. 方法 ...
- 如何判断Unix系统的一个库文件是32位还是64位的
如何判断Unix系统的一个库文件是32位还是64位的 某些时候,我们需要知道操作系统的位数,或者配置插件的时候需要知道主程序的位数(例如配置apache插件的时候需要知道apache的位数以便配置相应 ...
- c语言程序判断32位还是64位,c++ 判断是64位还是32位系统的实例
1.IsWow64Process 确定指定进程是否运行在64位操作系统的32环境(Wow64)下. 语法 BOOL WINAPI IsWow64Process( __in HANDLE hProces ...
- 台式机计算机操作系统怎么看,电脑操作系统是32位还是64位的怎么查看
电脑的更新换代速度飞快,当年买电脑时还流行的32位电脑,现在已跟不上时代了,32位和64位的电脑操作系统有什么区别?又如何查看自己的电脑操作系统是32位还是64位的呢?下面是学习小编给大家整理的有关介 ...
- 计算机操作系统32跟64区别是什么,32位和64位计算机操作系统之间的区别32位和64位win7系统之间的区别...
32位和64位Win7系统之间的区别是一个古老的话题,但是许多朋友仍然不了解它.两者有什么区别?下面的文章介绍了32位和64位Win7系统之间的区别,以及其他一些深入的理论解释.您可以在文章末尾查看扩 ...
- 32位系统和64的区别c语言,32位 与 64 位 区别 : CPU 操作系统 应用程序...
1.64位CPU与32位CPU 这两者的指令集合.操作数位数.寄存器名称和个数等等都不相同. 一.比如一条mov eax,1指令,可能在32bCPU上对应的机器指令是0x1201:在64位机器上就是0 ...
- Android系统判断CPU是32位还是64位
Android系统判断CPU是32位还是64位 一.方法一,读取"/proc/cpuinfo"文件的第一行. 1.32bit 2.64bit 二.方法二,读取Android 的sy ...
- Android判断CPU是32位还是64位
Android系统判断CPU是32位还是64位 方法一: 命令行中输入以下命令 adb shell getprop ro.product.cpu.abi 这样可以直接获取cpu处理器位数: armea ...
- 台式计算机32位和64位的区别,电脑操作系统32位和64位的区别
电脑操作系统32位和64位的区别 到底电脑操作系统32位和64位的区别是什么?我想这对于电脑知识欠缺的朋友来说是搞不清楚32位和64位有什么不同?反正能用就行,其实这恰好是一个操作系统知识方面的误区, ...
最新文章
- 人工智能能否复制人脑引争论 美媒:目前AI仍存在局限性
- 年末盘点 2016 年最严重的 7 起 DDoS 攻击事件
- maven修改运行环境配置
- Linux mount 修改文件系统的读写属性
- SurfaceView闪烁问题
- 80后程序员必须知道的编程语言和它们的创造者
- 在Android中处理屏幕布局变化
- (43)System Verilog模块变量数据位宽扩展
- R_ggplot2基础(四)
- 批量梯度下降(BGD)、小批量梯度下降(mini-BGD)、随机梯度下降(SGD)优缺点比较
- nginx 代理部署前端项目
- 自然语言处理之文本分类
- Git官网下载文件提示无法访问此网站的解决办法
- 手机如何将PDF文件拆分?分享两种手机拆分文件方法
- Python数据分析项目-微信好友数据分析
- 业绩承压来临,京东方还能抗周期多久
- 12.8 Font 对象
- 让apache支持pathinfo
- python的链式操作及类型推断(filter/map/find) 摘自国产开源库pyiter库
- ❤ 挑战C站最强C++ STL标准库总结(内含大量示例)