2012-09-24 53 views
2

如何檢查運行進程內部是否存在自己的比特狀態:這意味着如果「Intel」(32位)或「英特爾(64位)「,因爲我想根據該結果設置一定的限制。 問題在於,它無法在編譯期間檢查,因爲您可以通過使用Finder > Information將兼容模式設置爲32位來進行設置。OSX 10.6(&Qt):檢查運行進程的位數 - 即使在32位兼容模式下

是否有(Qt內部)類似於Windows的IsWow64Process-command

回答

0

我假設您想知道機器硬件,而不是您的代碼正在運行的當前進程體系結構。

Shell命令uname -m將返回底層硬件的名稱。在64位機器上它將返回strig'x86_64'。使用QProcess來調用該命令並檢查返回的數據。

+0

沒有幫助,因爲我不會檢查硬件。正在運行的過程的「微弱」是一個問題。/procinfo不適用於OSX:/ –

0

有一個編譯器定義的預處理器宏__LP64__在64位代碼中將爲true。這是編譯時檢查,但沒關係。您能夠使用Finder設置32位模式的唯一方法是如果您已經爲兩種體系結構編譯了代碼。

+0

是的,在應用程序中有兩種模式的代碼。解決方案是檢查定義的Q_WS_MAC32?其他Q_WS_MAC64可用。看起來像「32位模式」不是通過模擬某些東西來完成的,而是通過選擇應用程序內的32位二進制文​​件。因此,一切都比預期的更容易。 –

相關問題