3

実行時に、32ビットウィンドウと64ビットウィンドウのどちらで実行しているかを知りたい。OSVERSIONINFOEX構造はメジャーバージョンとマイナーバージョンを教えてくれますが、ビルド番号が必要だと思います。誰もが彼らが何であるか知っていますか?

4

4 に答える 4

3

アプリケーションが64ビット用にコンパイルされている場合、答えは簡単です。64ビットWindowsで実行しているということです。

アプリケーションが32ビット用にコンパイルされている場合は、IsWow64Processを呼び出す必要があります。この関数は、WindowsXP以降でのみエクスポートされます。以前のバージョンのWindowsをサポートする場合は、GetProcAddressを使用してこの関数へのポインターを取得する必要があります。

于 2009-01-14T15:42:03.537 に答える
1

C ++を使用していると仮定すると、ここには非常に優れたOS検出クラスがあります

于 2009-01-14T15:38:07.930 に答える
0

OSVERSIONINFOEX構造体からビルド番号を取得できます。

32 ビット プロセスを使用していて、WOW64 (つまり 64 ビット OS) で実行しているかどうかを知りたい場合は、 を呼び出しますIsWow64Process()。(XP SP2以降が必要)

于 2009-01-14T15:34:35.143 に答える
0

WMIを使用しています。

select * from Win32_OperatingSystem

最初のインスタンスを取得し、Version 属性を選択します。WinXP の場合、5.1.2600 を返します。

于 2009-01-14T16:09:19.067 に答える