Solution 1
读取注册表信息,不可取。很多电脑的注册表信息丢失不全。
Solution 2
通过dxgi读取显卡版本号。在台式机上正常,双显卡的笔记本电脑端,由于默认的显卡为核显,所以读取的为核显版本号。
Solution 3
通过调用命令行管道,执行Nvidia Driver目录下的exe,截取返回信息中的版本号
#include <string>
#include "Windows.h"
#include <QDebug>
字符转换
//将string转换成wstring
std::wstring string2wstring(std::string str)
{
std::wstring result;
//获取缓冲区大小,并申请空间,缓冲区大小按字符计算
int len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), NULL, 0);
TCHAR* buffer = new TCHAR[len + 1];
//多字节编码转换成宽字节编码
MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), buffer, len);
buffer[len] = '\0'; //添加字符串结尾
//删除缓冲区并返回值
result.append(buffer);
delete[] buffer;
return result