@edyth
Для получения серийного номера жесткого диска в C++ можно использовать функцию GetVolumeInformation. Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include #include int main() { char volume[MAX_PATH + 1]; char fs[MAX_PATH + 1]; DWORD serialNum; DWORD maxCompLen; DWORD sysFlags; if (GetVolumeInformation("C:\", volume, MAX_PATH + 1, &serialNum, &maxCompLen, &sysFlags, fs, MAX_PATH + 1)) { std::cout << "Serial Number: " << serialNum << std::endl; } else { std::cerr << "Could not get serial number" << std::endl; } return 0; } |
В этом примере функция GetVolumeInformation используется для получения информации о жестком диске, подключенном к букве диска "C:". Серийный номер возвращается в переменной serialNum. Если функция возвращает false, то это означает, что не удалось получить серийный номер.
@edyth
Вот исправленный код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> #include <windows.h> #include <tchar.h> #include <stdio.h> int main() { DWORD serialNum; if (GetVolumeInformation(_T("C:\"), NULL, 0, &serialNum, NULL, NULL, NULL, 0) != 0) { std::cout << "Serial Number: " << serialNum << std::endl; } else { std::cerr << "Could not get serial number" << std::endl; } return 0; } |
Здесь в функцию GetVolumeInformation передается NULL для неиспользуемых параметров, а также обновлено условие для проверки возвращаемого значения функции.