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/), 谢谢。 <<

http://blog.csdn.net/wingeek/article/details/4028379

最新文章

  1. 【Alpha】Daily Scrum Meeting第七次
  2. AndroidLinker与SO加壳技术之下篇
  3. FZU 2193 So Hard (有限小数转换最简分数)(想法题)
  4. gdb调试core文件
  5. 无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)
  6. 从0开始学Java——JSP和Servlet——jsp转servlet出错的三个典型场景
  7. codeforces 719A:Vitya in the Countryside
  8. 如何下载spring-framework
  9. mac 安装lua并配置Subline Text2 的lua开发环境
  10. 游走[HNOI2013]
  11. HDU 6185 Covering 矩阵快速幂
  12. POJ2689-Prime Distance-区间筛素数
  13. 一、K3 Wise 实施指导《K3 Wise实施手册》
  14. Centos6 rpm 安装mysql5.5(转)
  15. Aspose.words一 DOM结构
  16. Windows下安装配置爬虫工具Scrapy及爬虫环境
  17. postgres json
  18. PHP函数总结 (七)
  19. Socket编程 - 网络基础知识
  20. Qt 模拟鼠标点击(QApplication::sendEvent(ui-&gt;pushbutton, &amp;event0);)

热门文章

  1. Live Unit Testing
  2. poj 3090 Visible Lattice Points 法利系列||通过计
  3. http_load测试入门
  4. Windows 10 应用创建模糊背景窗口的三种方法
  5. js延迟加载
  6. QT 内存文件映射就是如此简单!
  7. Hadoop源代码分析:HDFS读取和写入数据流控制(DataTransferThrottler类别)
  8. React学习(3)——ref,key,PureComponent,bindActionCreator
  9. sql 循环 随机数创建数据
  10. VISTA 与输入法程式介面