windows 如何通过C++获取nvidia驱动版本号
时间: 2023-08-22 11:09:08 浏览: 158
你可以使用以下代码来获取NVIDIA驱动程序的版本号:
```cpp
#include <Windows.h>
#include <iostream>
int main() {
HMODULE nvapi = LoadLibrary(TEXT("nvapi.dll"));
if (nvapi == NULL) {
std::cout << "Failed to load nvapi.dll" << std::endl;
return 1;
}
typedef int(*NvAPI_QueryInterface_t)(unsigned int offset);
typedef int(*NvAPI_Initialize_t)();
typedef int(*NvAPI_EnumPhysicalGPUs_t)(int** handles, int* count);
typedef int(*NvAPI_GPU_GetFullName_t)(int* handle, char* name);
typedef int(*NvAPI_GPU_GetDriverVersion_t)(int* handle, char* version);
NvAPI_QueryInterface_t NvAPI_QueryInterface = (NvAPI_QueryInterface_t)GetProcAddress(nvapi, "nvapi_QueryInterface");
NvAPI_Initialize_t NvAPI_Initialize = (NvAPI_Initialize_t)(*NvAPI_QueryInterface)(0x0150E828);
NvAPI_EnumPhysicalGPUs_t NvAPI_EnumPhysicalGPUs = (NvAPI_EnumPhysicalGPUs_t)(*NvAPI_QueryInterface)(0xE5AC921F);
NvAPI_GPU_GetFullName_t NvAPI_GPU_GetFullName = (NvAPI_GPU_GetFullName_t)(*NvAPI_QueryInterface)(0xCEEE8E9F);
NvAPI_GPU_GetDriverVersion_t NvAPI_GPU_GetDriverVersion = (NvAPI_GPU_GetDriverVersion_t)(*NvAPI_QueryInterface)(0xF951A4D1);
if (NvAPI_Initialize() != 0) {
std::cout << "Failed to initialize NVAPI" << std::endl;
return 1;
}
int gpuCount = 0;
int* gpuHandles = NULL;
NvAPI_EnumPhysicalGPUs(&gpuHandles, &gpuCount);
if (gpuCount == 0) {
std::cout << "No NVIDIA GPU found" << std::endl;
return 1;
}
char gpuName[64];
char driverVersion[64];
NvAPI_GPU_GetFullName(&gpuHandles[0], gpuName);
NvAPI_GPU_GetDriverVersion(&gpuHandles[0], driverVersion);
std::cout << "GPU Name: " << gpuName << std::endl;
std::cout << "Driver Version: " << driverVersion << std::endl;
return 0;
}
```
这段代码使用了 NVAPI(NVIDIA的专有API)来获取NVIDIA驱动程序的版本号。需要注意的是,你需要在编译和运行时将 `nvapi.dll` 文件放置在可执行文件的同一目录下。
请确保你的编译环境已经配置好了,并且已经将 `nvapi.lib` 添加到链接器的附加依赖项中。另外,这段代码只能在使用NVIDIA显卡的Windows系统上运行,因为它依赖于NVIDIA的驱动程序和相关库文件。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)