私のアプリケーションは32ビット版と64ビット版があり、64ビット版Windowsで動作する32ビット版の場合は特別な処理が必要です。私はプラットフォーム固有の呼び出しを避け、代わりにQtまたはブーストを使用したいと思います。 QtのためにQ_PROCESSOR_X86_32のほかにQ_OS_WIN64が見つかりました。これは私が必要とするものです。しかし、それは動作しません:現在のプロセスが32または64ビットであるかどうかを確認する
#include <QtGlobal>
#ifdef Q_PROCESSOR_X86_64
std::cout << "64 Bit App" << std::endl;
#endif
#ifdef Q_PROCESSOR_X86_32
std::cout << "32 Bit App" << std::endl;
#endif
私の64ビット版のWindows 7上で32ビットアプリケーションを実行するときにこれが何を出していない私は、これらのグローバル宣言のドキュメントを誤解していますか?
いくつかの混乱があります。これは、アプリケーションが現在実行しているOSを検出することではなく、アプリケーション自体のビット数を検出することです。
'_WIN64'は行いますか? – Biffen
私は組み合わせが必要です。 Q_OS_WIN/64およびQ_PROCESSOR_X86_32/64のうちの1つ。次のようになります。 if(Win64 && AppIs32)if A; if(Win64 && AppIs64)がBを実行する。 if(Win32 && AppIs32)がCを実行する。 if(Win32 && AppIs64)がDを実行する。 Q_OS_WIN64は、docs btwから期待どおりに動作します。 – DenverCoder21
私は本当に問題を理解していません。ごめんなさい。 – Biffen