【发布时间】:2019-07-12 12:22:57
【问题描述】:
我想获取计算机的物理安装 RAM 以及其他系统信息。
一旦我尝试编译代码,它就会给出错误“对GetPhysicallyInstalledSystemMemory 的未定义引用以及一个警告,指出这是一个隐式声明。
我正在使用 Code::Blocks 17.12 和最新的 GCC。
#define WINVER 0x0A00
#define _WIN32_WINNT 0x0A00
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
long ram;
BOOL Checkram;
Checkram = GetPhysicallyInstalledSystemMemory(&ram);
printf("Installed RAM is: %lu", ram);
return 0;
}
我是 C 编程的新手,我确实阅读了 Microsoft 文档,但它仍然没有帮助我解决这个问题。
更新: 我已经用 Visual Studio 编译了它,现在它可以工作了。
【问题讨论】:
-
GCC 意味着您可能正在使用第 3 方 windows.h,因此您需要确保该函数实际上是在其中一个标头中声明的。它还需要一个指向 64 位值的指针,而不是长指针。
-
我只能找到函数“GetPhysicallyInstalledSystemMemory()”,你是这个意思吗?另见docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/…
-
它可能不存在于您正在使用的文件中,请使用 Microsoft 和/或 Visual Studio 的官方 SDK 而不是 GCC。
-
啊哈,明白了,不知道他们之间有什么区别。
-
@just_C 你的问题现在解决了吗?如果唯一的问题是函数名错误,你应该考虑删除这个问题