1

我正在尝试确定当前系统是 32 位还是 64 位。我想从 SystemInfo 中获取该信息,但是当我尝试编译它时,它 VS 给了我错误。我无法使用大多数其他方法来确定操作系统是 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_INFO你需要传入的指针GetSystemInfo

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

于 2012-07-05T09:02:40.617 回答
1

使用此代码:

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