GetSystemInfo不起作用

时间:2012-07-05 09:01:04

标签: c++ system

我正在尝试确定当前系统是32位还是64位。我想从SystemInfo中获取该信息,但是当我尝试编译时,它给了我错误。我无法使用大多数其他方法来确定操作系统是64位还是32位。因为我需要检查窗口是否为64位而不是进程。

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

IntelliSense:“LPSYSTEM_INFO *”类型的参数与“LPSYSTEM_INFO”类型的参数不兼容

错误C2664:'GetSystemInfo':无法将参数1从'LPSYSTEM_INFO *'转换为'LPSYSTEM_INFO'

2 个答案:

答案 0 :(得分:7)

您的info缓冲区应为SYSTEM_INFO,而不是LPSYSTEM_INFO。当您使用&info捕获其地址时,您将获得LPSYSTEM_INFO指针,您需要将其传递到GetSystemInfo

(如果不清楚LPSYSTEM_INFO是typedef,别名为SYSTEM_INFO *。)

答案 1 :(得分:3)

使用此代码:

SYSTEM_INFO info;
GetSystemInfo(&info);