Windows判断是否为64位程序(C++)
思路:
1.先判断是否为64位系统
2.判断是否为64位程序
代码:
// ProcessType.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//判断运行程序exe是否为64位程序#include <iostream>
#include <Windows.h>using namespace std;//判断是否为64位系统
bool is64BitOS()
{SYSTEM_INFO cur_system_info;GetNativeSystemInfo(&cur_system_info);WORD system_str= cur_system_info.wProcessorArchitecture;//判断是否为64位系统if (system_str == PROCESSOR_ARCHITECTURE_IA64 || system_str == PROCESSOR_ARCHITECTURE_AMD64){return true;}return false;
}//判断是否为64位进程
//@param:进程id
/*
Parameters
hProcess
A handle to the process. The handle must have the PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION access right. For more information, see Process Security and Access Rights.
Windows Server 2003 and Windows XP: The handle must have the PROCESS_QUERY_INFORMATION access right.
Wow64Process
A pointer to a value that is set to TRUE if the process is running under WOW64 on an Intel64 or x64 processor. If the process is running under 32-bit Windows, the value is set to FALSE. If the process is a 32-bit application running under 64-bit Windows 10 on ARM, the value is set to FALSE. If the process is a 64-bit application running under 64-bit Windows, the value is also set to FALSE.
*/
bool is64BitProcess(DWORD dwPid)
{
if (!is64BitOS())
{cout << "is 32 Bit OS";return false;
}HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwPid);
if (hProcess)
{typedef BOOL(WINAPI * LPEN_ISWOW64PROCESS)(HANDLE, PBOOL);LPEN_ISWOW64PROCESS fnlsWow64Process = (LPEN_ISWOW64PROCESS)GetProcAddress(GetModuleHandleW(L"kernel32"), "IsWow64Process");if (NULL!=fnlsWow64Process){BOOL bIsWow64 = FALSE;fnlsWow64Process(hProcess, &bIsWow64);CloseHandle(hProcess);return !bIsWow64;}
}
return false;
}int main()
{DWORD dwPid = GetCurrentProcessId();bool flag_bit = is64BitProcess(dwPid);cout << flag_bit << endl;//is64BitOS();//std::cout << "Hello World!\n";
}
Windows判断是否为64位程序(C++)相关推荐
- MSVCP120D.dll引起的32位和64位程序运行区别
本人的第一篇技术博客,如有遗漏请见谅. 在没有装vs2013的电脑上(装了vcredist_x86),一个64位应用程序在运行时,弹出0xc000007b错误.而装了vs2013,可以运行.让人摸不着 ...
- 说说windows下64位程序和32位程序
对于两者的区别先不说,先说说两者的影响吧. windows操作系统,尤其是win7下64位和32位的程序对一般用户来说影响都不是很大,只要程序能够正常运行就ok了,不需要关心那么多. 可是对于很多大型 ...
- windows下编译64位程序时没有没_WIN32定义
_WIN32定义的初衷是为了区分16位和32位程序,但是目前很多项目的代码都是使用_WIN32来判定是否是windows平台,所以目前在windows平台下编译32位和64位程序时,编译器都会预定义了 ...
- VC程序里判断系统是64位还是32位的正确方法
VC程序里判断系统是64位还是32位的正确方法 BOOL IsWow64() { typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, P ...
- 在32位WINDOWS系统上开发64位应用程序
在32位WINDOWS系统上开发64位应用程序 创建 2011-9-2 有些时候需要开发WINDOWS 64位应用程序,但不想安装64位操作系统,所以需要在32位系统下开发64位应用.其步骤并不复杂. ...
- Windows系统判断是否为64位系统(C++)
调用系统函数GetNativeSystemInfo来获取系统信息 bool is64BitOS() {SYSTEM_INFO cur_system_info;GetNativeSystemInfo(& ...
- c++怎么判断系统是64位还是32位
说起来这个话题,如果我把标题改成"你是怎么判断系统是32位还是64位",估计一下子会有很多技术爱好者撇撇嘴说"不就是打开我的我的电脑,找到属性,点进去看是不是32还是64 ...
- php dll是下32还是64位,windows下关于boost 64位和32位库的编译详细介绍
常用编译命令: cd E:\OpenSource\boost_1_63_0\boost_1_63_0 编译32位库: x86环境下编译得先从开始菜单启动Visual Studio的Visual Stu ...
- 32位程序和64位程序
我们有时候会遇到这样一种情况:我们在32位操作系统上下载了64位版本的程序,却发现无法安装,大家可能会很困惑. 下面就来简单解释一下32位程序与64位程序的具体区别. 我们首先要弄明白的: 1.这里所 ...
最新文章
- C++:Lambda函数学习
- 101所被《人民日报》点名的大学:低调却颇有实力!
- 谷歌跟随微软加入云安全联盟 亚马逊依然游离
- python子进程通信_python执行子进程实现进程间通信的方法
- Windows XP环境下Apache2.2.21和Tomcat7.0.26下的整合
- javaFX的控制台实现
- Ajax — 大事件项目(第四天)
- 如何用jar命令对java工程进行打包
- 忘记commit也会造成select查询的性能问题
- 使用JavaScript 修改浏览器 URL 地址栏
- 使用Infopath时要注意的有哪些
- 优惠券如何引流,如何做好优惠券推广,优惠券正确引流方法
- 计算机组成原理——系统总线
- Eclipse 无法查看第三方jar包文件源代码解决方法(转载https://www.cnblogs.com/1995hxt/p/5252098.html自己备用)
- POI XssfCellStyle背景颜色对照
- 小葵花妈妈课堂开课了:《Runnable、Callable、Future、RunnableFuture、FutureTask 源码分析》
- supervisor控制台运行出错,BACKOFF Exited too quickly
- chromeDriver下载地址
- WEB服务器的基本介绍
- 想知道手机视频压缩app哪个好用?这几个工具值得一试