1

現在のシステムが 32 ビットか 64 ビットかを判断しようとしています。SystemInfo からその情報を取得したいのですが、これをコンパイルしようとすると VS からエラーが発生します。OS が 64 ビットか 32 ビットかを判断するために、他のほとんどの方法を使用することはできません。Windowsがプロセスではなく64ビットであるかどうかを確認する必要があるためです。

LPSYSTEM_INFO info;
GetSystemInfo(&info); // Error

IntelliSense: 型 "LPSYSTEM_INFO *" の引数は、型 "LPSYSTEM_INFO" のパラメーターと互換性がありません

エラー C2664: 'GetSystemInfo': パラメーター 1 を 'LPSYSTEM_INFO *' から 'LPSYSTEM_INFO' に変換できません

4

2 に答える 2

7

バッファinfoのタイプSYSTEM_INFOは ではなくである必要がありLPSYSTEM_INFOます。でそのアドレスを取得すると、 に渡す必要が&infoあるポインタが得られます。LPSYSTEM_INFOGetSystemInfo

(明確でない場合LPSYSTEM_INFOは、にエイリアス化された typedefSYSTEM_INFO *です。)

于 2012-07-05T09:02:40.617 に答える
1

次のコードを使用します。

SYSTEM_INFO info;
GetSystemInfo(&info);
于 2012-07-05T09:30:32.490 に答える