Как получить HWID

Я пытаюсь получить HWID сквозь hwProfileInfo класс, но это возвращает меня, что я не могу преобразовать WCHAR [39] в строку.

string getHWID(){
  string hardware_guid

  HW_PROFILE_INFO hwProfileInfo;
  GetCurrentHwProfile(&hwProfileInfo);
  hardware_guid = hwProfileInfo.szHwProfileGuid;

  return hardware_guid;
}

Чем я пытался таким образом, но он возвращает мне только "{"

hardware_guid = (char*)hwProfileInfo.szHwProfileGuid;

Я знаю, что в Google есть еще несколько способов, но я не нашел никаких рабочих вариантов. Может быть, есть люди, которые могут сказать 100% метод?

2 ответа

Решение

Это ответ на мой вопрос.

string getHWID(){  
  HW_PROFILE_INFO hwProfileInfo;
  GetCurrentHwProfile(&hwProfileInfo);
  wstring hwidWString = hwProfileInfo.szHwProfileGuid;  
  string hwid(hwidWString.begin(), hwidWString.end());

  return hwid;
}

Существует два метода: 1. Вы можете использовать std::wstring, который использует wchar_t, вместо std::string, который использует char. 2-й Вы можете использовать GetCurrentHwProfileA вместо GetCurrentHwProfileW, который будет определен как GetCurrentHwProfile, если определен UNICODE.

Другие вопросы по тегам