【问题标题】:GetPhysicallyInstalledMemory function - undefined reference in CGetPhysicallyInstalledMemory 函数 - C 中未定义的引用
【发布时间】: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 你的问题现在解决了吗?如果唯一的问题是函数名错误,你应该考虑删除这个问题

标签: c windows winapi


【解决方案1】:

我已经切换到 Visual Studio,它解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多