我正在尝试确定当前系统是32位还是64位。我想从SystemInfo中获取该信息,但是当我尝试编译时,它给了我错误。我无法使用大多数其他方法来确定操作系统是64位还是32位。因为我需要检查窗口是否为64位而不是进程。
LPSYSTEM_INFO info;
GetSystemInfo(&info); // Error
IntelliSense:“LPSYSTEM_INFO *”类型的参数与“LPSYSTEM_INFO”类型的参数不兼容
错误C2664:'GetSystemInfo':无法将参数1从'LPSYSTEM_INFO *'转换为'LPSYSTEM_INFO'
答案 0 :(得分:7)
您的info
缓冲区应为SYSTEM_INFO
,而不是LPSYSTEM_INFO
。当您使用&info
捕获其地址时,您将获得LPSYSTEM_INFO
指针,您需要将其传递到GetSystemInfo
。
(如果不清楚LPSYSTEM_INFO
是typedef,别名为SYSTEM_INFO *
。)
答案 1 :(得分:3)
使用此代码:
SYSTEM_INFO info;
GetSystemInfo(&info);