小例子: 用nvdia的开发接口,获取到显卡的温度及负载状态。
对于NVIDIA显卡,你可以使用NVAPI(NVIDIA System Management Interface)来获取显卡信息,包括温度和负载。以下是一个修改后的代码示例,使用NVAPI库来获取NVIDIA显卡信息。
首先,你需要下载并安装NVIDIA GPU SDK,其中包含了NVAPI。然后,将NVAPI库的头文件和库文件添加到你的项目中。
#include <windows.h>
#include <stdio.h>
#include "nvapi.h"
NvAPI_Status InitializeNvAPI()
{
NvAPI_Status status = NvAPI_Initialize();
if (status != NVAPI_OK)
{
printf("Failed to initialize NVAPI. Error code = 0x%x\n", status);
}
return status;
}
void GetGPUInfo()
{
if (InitializeNvAPI() != NVAPI_OK)
{
return;
}
NvPhysicalGpuHandle gpuHandle;
NvAPI_Status status = NvAPI_EnumPhysicalGPUs(&gpuHandle, 1);
if (status != NVAPI_OK)
{
printf("Failed to enumerate GPUs. Error code = 0x%x\n", status);
NvAPI_Unload();
return;
}
NvU32 temperature;
status = NvAPI_GPU_GetTemperature(gpuHandle, NVAPI_THERMAL_TARGET_GPU, &temperature);
if (status == NVAPI_OK)
{
printf("GPU Temperature: %u degrees Celsius\n", temperature);
}
else
{
printf("Failed to get GPU temperature. Error code = 0x%x\n", status);
}
NvUUsage usage;
status = NvAPI_GPU_GetUsages(gpuHandle, &usage);
if (status == NVAPI_OK)
{
printf("GPU Load: %u%%\n", usage);
}
else
{
printf("Failed to get GPU load. Error code = 0x%x\n", status);
}
NvAPI_Unload();
}
int main()
{
GetGPUInfo();
return 0;
}
请注意,这个代码示例使用了NVIDIA的NVAPI库,其中包含了获取显卡信息的函数。在程序的开始,需要调用NvAPI_Initialize()来初始化NVAPI。此外,确保将NVAPI的头文件和库文件正确添加到你的项目中。
建议使用Microsoft Visual Studio编译即可,这个程序很简单。