[转]判断程序是否运行在 Windows x64 系统下

以下功能代码判断是否运行在 Windows x64 下。本例使用 Windows API 函数 IsWow64Process,具体请参考MSDN文档:http://msdn.microsoft.com/en-us/library/ms684139(VS.85).aspx

/**

*   This program test if this application is a x64 program or

*   is a x86 program running under Windows x64.

*

* Version:  0.1 C-Lang

* Author:   Fenying

* Date:     2013-08-22

*/

#include <windows.h>

#include <tchar.h>

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

/**

* Don‘t use the function IsWow64Process as a static function,

* you should load it by function GetProcAddress, because

* it is not available on all version of Windows.

*/

LPFN_ISWOW64PROCESS fnIsWow64Process = NULL;

/**

* This function tells if your application is a x64 program.

*/

BOOL Isx64Application() {

return (sizeof(LPFN_ISWOW64PROCESS) == 8)? TRUE: FALSE;

}

/**

* This function tells if you‘re under Windows x64.

*/

BOOL IsWow64() {

BOOL bIsWow64 = FALSE;

if (!fnIsWow64Process)

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

if(fnIsWow64Process)

if (!fnIsWow64Process(GetCurrentProcess(), &bIsWow64))

return FALSE;

return bIsWow64;

}

int main( void ) {

if (Isx64Application())

_tprintf(TEXT("The application is a x64 program.\n"));

else {

if (!IsWow64())

_tprintf(TEXT("The application is running under Windows x86.\n"));

else

_tprintf(TEXT("The application is a x86 program running under Windows x64.\n"));

}

return 0;

}

原文地址:http://fenying.blog.163.com/blog/static/10205599320137224339263/

时间: 2024-10-22 10:51:49

[转]判断程序是否运行在 Windows x64 系统下的相关文章

判断程序是否运行在管理员权限下

1.提出两个概念(成立条件是系统是Vista后续版本,这是因为引入了UAC) 一个是运行程序的账号是管理员账号 另一个是当前运行环境是管理员环境 2.判断程序是否运行在管理员权限,直接使用函数IsUserAnAdmin就可以判断 #include <ShlObj.h> #include <tchar.h> int _tmain() { BOOL bIsAdmin = IsUserAnAdmin(); if(bIsAdmin) _tprintf_s(_T("Run As a

Windows7 x64系统下安装Nodejs并在WebStorm 9.0.1下搭建编译less环境

1. 打开Nodejs官网http://www.nodejs.org/,点“DOWNLOADS”,点64-bit下载“node-v0.10.33-x64.msi”. 2. 下载好后,双击“node-v0.10.33-x64.msi”,按照默认选项安装Nodejs,默认安装路径为:C:\Program Files\nodejs. 3. “开始”-->cmd,打开cmd程序,输入“node -v”,出现” v0.10.33”; 输入“npm -v”,出现” 1.4.28”,说明Nodejs和npm都

Windows7 x64系统下安装Nodejs并在WebStorm下搭建编译less环境

1. 打开Nodejs官网http://www.nodejs.org/,点"DOWNLOADS",点64-bit下载"node-v0.10.33-x64.msi". 2. 下载好后,双击"node-v0.10.33-x64.msi",按照默认选项安装Nodejs,默认安装路径为:C:\Program Files\nodejs. 3. "开始"-->cmd,打开cmd程序,输入"node -v",出现&

转帖 NDIS中间层驱动开发在Win7系统下和Windows XP系统下的区别

NDIS中间层驱动的开发在Win7系统上和Windows XP系统上有差别.原帖:http://bbs.pediy.com/showthread.php?t=137545 我把NDIS中间层的讨论分成2块. windows 7系统和Windows XP系统. (一)在 Windows XP系统上进行开发  平时很多朋友包括我在内,我们都在XP系统上使用NDIS5.1的框架来进行程序开发.我们都使用Microsoft WDK提供的 NDIS 的 Passthru例子,在这个例子上做进一步的修改,来

Windows XP系统下添加任务计划常出现问题解决办法

Windows XP系统下添加任务计划常出现问题解决办法 计划任务就是让电脑在指定的时间内执行指定的动作(计划动作),这些动作可以是一个程序,也可以是一个批处理,但是至少是可以运行的(通俗一些就是双击可以运行的). 添加步骤:“开始”-->“设置”-->“控制面板”-->“任务计划”(或者“开始”-->“程序”-->“附件”-->“系统工具”-->“任务计划”),打开到“任务计划”窗口后,双击“添加任务计划”,然后一步一步按步骤运行.     问题一:在试着设置任

windows xp系统下提示Nsis Error错误的解决方法

通常我们在使用windows xp系统的过程中,经常会遇到一些故障问题,这不,使用windows xp系统的用户表示在使用系统的过程中出现提示Nsis Error错误的情况,其实这个问题也并不是常见,但是解决起来也非常的麻烦,那么,针对这样的问题,我们应该怎么来处理呢?以下是具体的操作步骤. 解决方法介绍: 1.英文意思:运行一个用Nullsoft Scriptable Install System (NSIS)建立的程序常会发生这种错误,起因可能是下载来的文件不完整,或存放该程序的磁盘区坏了,

移植 libuv 到 Visual C++ 6.0 并支持在 Windows XP 系统下编译

移植版的 libuv:https://github.com/liigo/libuv-vc6 (支持VC6和XP,作者Liigo). 我从一年前(大概2013年6,7月份)开始在业余时间做这项移植工作,走走停停,陆续用了一两个月的时间,才基本完成.这期间做了详细的移植记录,现在发布出来,希望对某些人有用.就在昨天(2014年7月12日),我又把移植的代码同步到最新的libuv(https://github.com/joyent/libuv)并发布到Github上:但是之前的移植记录没有变更,或许在

Windows 7系统下删除开机引导项的方法

Windows 7系统下删除开机引导项的方法: 1.使用管理员权限运行cmd,在命令行窗口使用  bcdedit 回车 2.查找description为你想删除的段,看对应的标识符是多少, 然后使用 bcdedit  /f  /delete 标识符 示例: bcdedit  /f  /delete {fa817679-23c9-11e1-bcbd-a9093a3d5fb5} 3. win7系统有一个启动管理器 bootmgr 它有一个状态displaybootmenu 默认是no 如果做过多系统

如何解决Windows 10系统下设备的声音问题

如何解决Windows 10系统下设备的声音问题? 请阅读下面的说明来解决Windows 10设备上的声音问题. 1. 检查设备管理器 打开开始菜单,键入设备管理器, 从出现的结果中选择并打开它. 在声音.视频和游戏控制器栏目下, 选择并打开你的声卡 . 选择 驱动程序 一栏, 并选择 更新驱动程序. 如果系统没有找到新的驱动,可以尝试在ASUS官网寻找驱动. 如果上述步骤无效,尝试重装声卡驱动: 打开 设备管理器, 右击声卡驱动, 选择 卸载. 重启电脑,系统就会自动尝试重装声卡驱动. 如果无