判断操作系统是32位还是64位

1判断操作系统是32位还是64位

//方法I:
BOOL IsWow64()
{
	//函数IsWow64Process()用于确定指定进程是否运行在64位操作系统的32环境(Wow64)下
	//如果该进程是32位进程,运行在64操作系统,该值为true,否则为false,具体如下:
	//32bit程序跑在32bit系统下,返回0.
	//32bit程序跑在64bit系统下,是wow64模式,返回1.
	//64bit程序跑在64bit系统下,那么不是wow64模式,返回0
	BOOL bIsWow64 = FALSE;
	typedef BOOL(WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
	LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process");
	if (NULL != fnIsWow64Process)
	{
		fnIsWow64Process(GetCurrentProcess(), &bIsWow64);
	}

	return bIsWow64;
}
//方法II:
BOOL Is64BitOS()
{
	typedef BOOL(WINAPI *LPFN_PGNSI) (LPSYSTEM_INFO);
	LPFN_PGNSI pGNSI = (LPFN_PGNSI)GetProcAddress(GetModuleHandle(_T("kernel32.dll")), "GetNativeSystemInfo");
	if (pGNSI == NULL)
	{
		return FALSE;
	}

	BOOL bRetVal = FALSE;
	SYSTEM_INFO si = { 0 };
	pGNSI(&si);
	if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 || si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64)
	{
		bRetVal = TRUE;
	}

	return bRetVal;
}
时间: 2024-10-10 05:01:40

判断操作系统是32位还是64位的相关文章

C#判断操作系统是32位还是64位(转)

1 根据句柄长度判断操作系统是否为64位操作系统 public static bool IsRunningOn64Bit { get { return IntPtr.Size == 8; } } 2 根据句柄长度判断操作系统是否为64位操作系统(不安全代码) public static unsafe bool IsRunningOn64Bit { get { return (sizeof(IntPtr) == sizeof(long)); } } 将项目做如下设置:项目属性对话框->配置属性->

判断 Windows操作系统是32位还是64位

function IsWin64: Boolean; var Kernel32Handle: THandle; IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL; stdcall; GetNativeSystemInfo: procedure(var lpSystemInfo: TSystemInfo); stdcall; isWoW64: Bool; SystemInfo

Linux判断CPU是32位还是64位,判断系统是32位还是64位

from:http://www.ipcpu.com/2010/08/linux-cpu-32-64/ 本文仅限于服务器CPU和Linux系统讨论,与台式电脑.笔记本无关. 32位.64位不能乱装,64的能装32位的,因为64位的CPU可以兼容32位,32位的装不了64位的.最近部署了MongoDB,系统是32位的提示会有最大文件2G的限制.还有最常见的问题32位系统不支持4G以上内存,即使打PAE效率也受影响. 1.判断CPU是32位还是64位 这个问题比较有意思,网上给出的办法都是判断了系统的

VC++ 判断当前系统为32位还是64位

尝试了在VC++环境下判断系统为32位还是64位的方法,亲测有效!提供的函数如下 BOOL IsWow64() { typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESS fnIsWow64Process; BOOL bIsWow64 = FALSE; fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress( GetModuleHandle

32位和64位dll判断

如何判断一个dll文件是32位还是64位? 1. 开发中经常会使用到VC的一个工具 Dependency Walker用depends.exe打开dll,文件名前有64标示的即为64位. 但是这个方式不是万能的,只能简单判断.很多都判断不出来.比如64位系统下 C:\Windows\System32\msvcrt.dll 2. 使用visual studio开发工具命令dumpbin一般位于vs安装目录bin子目录下,如C:\Program Files (x86)\Microsoft Visua

如何判断系统是32位还是64位的linux系统

如何判断系统是32位还是64位的linux系统 某日,需要下载个安装包,忽然忘记了自己的系统是32位还是64位的系统了,一时想不起来怎么查看时32位还是64位,呵呵,随便百度下,就发现有好多方法,这里记录下,方便日后查询: 第一种: 12345 [root@CentOS62 ~]# uname -mi686 [root@436704 ~]# uname -mx86_64 第二种: 12345 [root@CentOS62 ~]# file /sbin/init/sbin/init: ELF 32

JAVA判断32位还是64位,调用不同的DLL(转)

源:JAVA判断32位还是64位,调用不同的DLL 通过获取sun.arch.data.model可判断是32还是64的JAVA 将32或者64位的DLL放不同的目录,实现自适应调用DLL Properties props = System.getProperties(); String bits=String.valueOf(props.get("sun.arch.data.model")); String path = IMyNative.class.getResource(&qu

判断应用程序是32位还是64位

VC++检测可执行程序DLL.EXE等是32位还是64位 1.首先介绍PE结构 Windows系统下的可执行文件,是基于Microsoft设计的一种新的文件结构,此结构被称之为PE结构.PE的意思是Portable Executable(可移植的执行体),所有Win32执行体都是用PE文件格式,其中包括SYS.DLL.EXE.COM.OCX等.(不管是学习逆向.破解还是安全,了解PE文件格式都是非常必要的.) PE文件的第一个部分是IMAGE_DOS_HEADER,大小为64B,这里面有两个重要

如何判断Office是32位还是64位?

如果系统是32位的,则不需要判断Office位数了,因为只能安装32位Office. 下面只讨论64位系统中,Office的位数判断问题. 64位系统中可能存在以下4种情况: 安装了32位Office 安装了64位Office 安装了32位和64位两个版本Office 没安装任何Office 究竟Office是多少位的?如果不打开Office以及VBA,通过注册表可能能够查询出来,不过比较费事儿,而且注册表也有被修改的可能,靠不住. 下面介绍打开了Office的一个组件,或者打开了VBA编程环境