簡體   English   中英

編譯為 x86 時檢測 OS x86 或 x64

[英]Detect OS x86 or x64, when compiled as x86

我開發了引導軟件來開始我的游戲。 我用 Go 做到了這一點。 跨平台對我來說尤其重要。 另外,我不想將下載鏈接一分為二,如 x86 / x64。 我想在一個 output 中處理所有事情。 這就是為什么我必須編譯為 x86。 當我這樣做時,我無法正確檢測到操作系統是 x86 還是 x64。

在編譯為 x86 的軟件中,我如何正確檢測操作系統 x86 或 x64(在 Go 中)。

此代碼在編譯為 x86 時不正確。

const is64Bit = uint64(^uintptr(0)) == ^uint64(0)

在 Windows 上,您可以調用IsWow64Process來確定您是否是在 64 位操作系統上運行的 32 位進程。 請注意,如果您是在 64 位操作系統上運行的 64 位進程,則返回 false,但如果您正在運行 64 位進程,那么您知道操作系統是 64 位,否則它不會運行。

另請注意,32 位 Windows 被認為已過時。 微軟已經在逐步停止對 32 位 Windows 的支持——他們不再希望它安裝在新計算機上。

在 Linux 上,您可以調用uname並查看machine字段。 這是可能值的列表 請注意,它們中的大多數與您的程序不兼容,只有i386i686x86_64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM