回答
基于“动态”和“Visual C++”,我猜测你想在Windows下运行时执行此操作。
在这种情况下,您可以使用GetSystemInfo
或GetNativeSystemInfo
来检索有关系统和处理器的一些基本信息。如果您需要有关处理器及其支持的特定功能的更多信息,则可以使用IsProcessorFeaturePresent
找到它们(尽管对于此目的它可能有点尴尬 - 您必须单独询问每个功能,并为每个功能给出布尔答案)。
#if defined(_M_X64)
...
#endif
特定平台,但实际上我认为没有更好的预编译时检测方法。 – 2010-11-01 23:07:56
您可以编译32位模式的可执行文件,但可以在x64机器上运行它。 – Gabe 2010-11-01 23:08:23
您总是可以在几行内联汇编中混合并调用CPUID来标识您的代码正在执行的CPU。见本文至于如何做到这一点:
有一个漂亮的大名单here。 Visual Studio和GCC的宏是不同的,但只要检查它们是否用#ifdef
定义。
喜欢的东西:
#if defined(_M_IX86) || defined(__i386__)
应该给你GCC,Visual Studio中,和其他几个人。
链接已死... – ManuelSchneid3r 2017-10-30 16:10:39
在x64平台上sizeof(void*)
返回8.在x32平台sizeof(void*)
返回4.这也应该是跨平台的。
- 1. 如何动态获取系统名称?
- 2. 系统架构
- 3. 如何分析系统架构?
- 4. 如何获取系统ioWait
- 5. SFML粒子系统架构
- 6. 报告系统架构
- 7. 模块化系统架构
- 8. 标签系统的架构
- 9. Netflix/Hulu系统架构
- 10. 获取系统
- 11. 联系人管理系统架构
- 12. 获取系统状态(ro或rw)
- 13. 在python中获取系统状态
- 14. 如何将项目动态android系统
- 15. 如何获取Qt中的系统网络状态?
- 16. 如何构建颠覆的自动构建系统和回归测试系统?
- 17. 如何获取Android系统颜色
- 18. 如何获取系统的IP地址
- 19. 如何获取OS X系统版本?
- 20. 如何在系统日期获取Ticks?
- 21. 如何获取系统生成的Oracle
- 22. 如何从mac系统获取vid pid?
- 23. 如何从系统中获取时间?
- 24. XSL动态架构
- 25. 如何获得系统的动态时区
- 26. 如何将静态导航系统更改为PHP动态导航系统?
- 27. 开放源代码云操作系统/操作系统架构
- 28. 如何获取设备的GPU架构?
- 29. 系统架构图中的“云架构”概念
- 30. 用于系统架构的Visio模具
您是否需要检测您的应用程序是针对x86还是x86_64进行*编译,或者您的x86应用程序是否在x86_64计算机上运行?您需要的区别只是x86/x86_64还是需要区分其他体系结构?您是否需要在预编译时(在#if语句中使用),编译时(例如用于模板专业化,数组大小等)或运行时检测到这种情况? – 2010-11-01 23:10:16
此外,您是否询问CPU体系结构,操作系统体系结构(您可以在64位CPU上运行32位Windows)还是特定的进程体系结构(32位进程可以在64位Windows上运行)? – 2010-11-01 23:12:45
为什么?陈述您对此信息的要求可能会帮助您为您的方案获得更有用的答案。 – 2010-11-02 00:40:23