我试图通过hwProfileInfo
类获得HWID
,但它返回我,我不能将WCHAR
[39]转换为字符串。如何获得HWID
string getHWID(){
string hardware_guid
HW_PROFILE_INFO hwProfileInfo;
GetCurrentHwProfile(&hwProfileInfo);
hardware_guid = hwProfileInfo.szHwProfileGuid;
return hardware_guid;
}
比我尝试过这种方式,但它返回我只是“{”
hardware_guid = (char*)hwProfileInfo.szHwProfileGuid;
我知道有在谷歌的一些更多的方式,但我没有找到任何工作的变种。可能有些人会说100%的方法吗?
你知道什么是'WCHAR [39]'和'string'之间的区别? – VTT
你需要使用'std :: wstring'。 –
我假设'string'的意思是'std :: string'。 'std :: string'使用'char's,而'WCHAR'是'wchar_t'的Windows别名。你有几个选择:(1)将'string'改为'wstring',或者(2)将Unicode编码的'WCHAR [39]'转换为'std :: string'。如果您使用C++ 11或更高版本,你可能想看看'的std :: wstring_convert'(http://en.cppreference.com/w/cpp/locale/wstring_convert)。由于您使用的是Windows,你可以使用'WideCharToMultiByte'(https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx),但可能会非常棘手。 –