回答
基於「動態」和「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. OpenLDAP,如何擴展系統架構
- 5. 如何獲取系統ioWait
- 6. 檢測系統架構
- 7. Netflix/Hulu系統架構
- 8. 標籤系統的架構
- 9. 集羣系統架構?
- 10. 報告系統架構
- 11. SFML粒子系統架構
- 12. 模塊化系統架構
- 13. 獲取使用Mono的Unix/Linux系統架構
- 14. 構建'雙向'OO動態ACL系統
- 15. 是系統框架(如UIKIt.framework,CoreGraphics.framework)靜態庫或動態庫
- 16. 獲取系統
- 17. 聯繫人管理系統架構
- 18. 在python中獲取系統狀態
- 19. 獲取系統狀態(ro或rw)
- 20. 如何將項目動態android系統
- 21. 如何獲取系統日誌形式4.3 android操作系統
- 22. 如何從系統日誌/系統日誌獲取數據
- 23. 如何構建顛覆的自動構建系統和迴歸測試系統?
- 24. 獲取android系統
- 25. 如何獲取Qt中的系統網絡狀態?
- 26. 如何從DI系統獲取實例?
- 27. 如何在系統日期獲取Ticks?
- 28. 如何使用Java獲取系統IP?
- 29. 如何獲取系統文件夾?
- 30. 如何從mac系統獲取vid pid?
您是否需要檢測您的應用程序是針對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