[Windows编程] 如何判断操作系统是64位还是32位

手机OIS马达拆解:从苹果的悬丝到三星的滚珠,不同方案如何影响你的拍照体验? 本文深度解析手机OIS马达技术,对比苹果悬丝式、三星滚珠式和LG记忆合金式三种主流方案的机械原理与成像体验差异。通过详实的数据和测试结果,揭示不同OIS技术如何影响防抖性能、模组厚度及长期可靠性,为摄影爱好者和技术爱好者提供实用选购建议。 阅读详情

64位Wnidows 里面有个叫Wow64 的模拟器技术,可以使32位的程序在64位Windows 上运行。 当你想在程序里面针对32b位/ 64位系统执行不同代码的时候, 需要判断操作系统是32位还是64位。 使用 Windows API函数 GetNativeSystemInfo 可以获得这个信息。

 

代码示例:

 

SYSTEM_INFO si;
GetNativeSystemInfo(&si);

if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||

  si.wProcessorArchitecture != PROCESSOR_ARCHITECTURE_IA64 )

{

    //64 位操作系统

}

else

{

    // 32 位操作系统

}

 

 

另外,Windows API 还提供了 IsWow64Process 函数判断程序是不是运行在Wow64模拟器之上。

 

代码示例:

 

BOOL bIsWow64 = FALSE;
IsWow64Process(GetCurrentProcess(), &bIsWow64);


需要注意是GetNativeSystemInfo  函数从Windows XP 开始才有, 而 IsWow64Process  函数从 Windows XP with SP2 以及 Windows Server 2003 with SP1 开始才有。 所以使用该函数的时候最好用GetProcAddress

 

typedef void (WINAPI *LPFN_PGNSI)(LPSYSTEM_INFO);

typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);

 

LPFN_PGNSI pGNSI = (LPFN_PGNSI ) GetProcAddress(

       GetModuleHandle(TEXT("kernel32.dll")),  "GetNativeSystemInfo");

LPFN_ISWOW64PROCESS  fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
       GetModuleHandle(TEXT("kernel32")),"IsWow64Process");

 

 

 >> 原创文章的版权属于作者,转载请注明出处和作者信息(http://blog.csdn.net/WinGeek/), 谢谢。 <<

论文阅读|《强化学习在加工时间可变的机器人流水车间调度中的应用》 《Reinforcement Learning for robotic flow shop scheduling with processing time variations》 International Journal of Production Research/2021 1 摘要 我们解决了一个机器人流水车间调度问题,其中两种零件类型在每组给定的专用机器上进行处理。单个机器人在固定轨道上移动,一次运输一个部件,在给定的时间间隔内,这些部件在机器上的加工时间各不相同。我们使用强化... 阅读详情

相关推荐

中文版VC6.0(32&64bit;)

vc++6.0(Microsoft Visual C++ 6.0)最新版,方便强大,中文版,很适合初学C/C++者

检测windows 32程序是否运行在64系统

<br />摘自MSDN的IsWow64Process说明<br /> <br />#include <windows.h> #include <stdio.h> typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESS fnIsWow64Process; BOOL IsWow64() { BOOL bIsWow64 = FALSE; fnIsWow64Process = (L

飞空静渡 1472

pb判定是否64操作系统

Function Boolean Iswin64bits() LIBRARY "winis64bits.dll" ALIAS FOR "Iswin64bits" if Iswin64bits() then messagebox('提示','64操作系统') else messagebox('提示','32操作系统') end if

查看java 32 64_java - 如何判断我是在64JVM还是32JVM(从程序中运行)?

java - 如何判断我是在64JVM还是32JVM(从程序中运行)?如何判断我的应用程序运行的JVM是32还是64? 具体来说,我可以访问什么功能或偏好来在程序中检测到这个?10个解决方案646 votes您可以尝试命令行:java -d64 -version如果它不是64版本,您将收到如下消息:此Java实例不支持64JVM。 请安装所需的版本。有关更多信息,请参阅JVM的帮...

weixin_42318727的博客 959

判断java是32的还是64

1.根据安装目录判断 32系统只能装 32的jdk。 64系统两种都能安装,但是安装的 32JDK 和 64JDK 具有不同的目录: 32的一般在C:\Program Files (x86)\Java\目录下     64的一般在C:\Program Files\Java\目录下 2.根据命令判断 在 cmd 下输入 java -version 来查看,如果没有标明是多少的,默认一般是32的。64的会标识出来。 ...

jiangkejkl的博客 9328

Windows编程】如何判断操作系统64还是32

我为我基础知识掌握的薄弱,感到深深的“折服”。感觉从知识体系的掌握上就有问题!!需要探索性的改进自身的知识架构。加油吧……   一,不同操作系统下类型简介   类型 32操作系统(字节) 64操作系统(字节) char 1 1 short 2 2 int 4 4 long 4 8 long  lo

小田的专栏 7301

windows编程--如何判断操作系统64还是32

64Wnidows 里面有个叫GetNativeSystemInfo 可以获得这个信息。   代码示例: SYSTEM_INFO si;  GetNativeSystemInfo(&si);  if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||         si.wProcess

thanklife的专栏 1088

如何判断自己的操作系统32还是64

安装一些软件之前,我们经常需要判断下自己系统版本是32还是64的,从而去下载相应版本的应用软件。 如何判断系统的版本呢? Windows系统:用户请按Win+R运行cmd,输入systeminfo后回车,稍等片刻,会出现一些系统信息。在“系统类型”一行中,若显示“x64-based PC”,即为64系统;若显示“X86-based PC”,则为32系统。 主机名: ...

ice_ly000的博客 6152

如何判断系统是否64系统

随着64系统的流行,在程序开发过程中,经常需要根据不同数的操作系统做不同的操作,这就需要在程序运行过程中判断操作系统数。

Troy的专栏 2729

GetSystemInfo获取系统信息

GetSystemInfo:返回关于当前系统的信息 void WINAPI GetSystemInfo(_Out_ LPSYSTEM_INFOlpSystemInfo); Win32 API 函数。 参数: lpSystemInfo:指向一个供函数返回信息的SYSTEM_INFO结构体。 返回值:无 导入库:kernel32.lib 头文件:winbase.h 结构体信息: typ

kslly的专栏 1万+

数通HCIA HCIP HCIE笔记.rar

目录:HCIA 笔记 .exeHCIE 笔记.exeHCIP 笔记.exe

上一篇: WinDBG 技巧:设断点命令详解(bp, bu, bm, ba 以及bl, bc, bd, be)
下一篇: [编程技巧] 巧用CPU缓存优化代码:数组 vs. 链表
西塞安全
博客等级 码龄20年 980粉丝 164原创
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值