Есть такой код, которые считает свободное место на диске:
#include "pch.h"
#include <iostream>
#include <Windows.h>
int main()
{
DWORD FreeBytesAvailable;
GetDiskFreeSpaceEx(
L"D:", // directory name
(PULARGE_INTEGER)&FreeBytesAvailable, // bytes available to caller
NULL, // bytes on disk
NULL // free bytes on disk
);
std::cout << FreeBytesAvailable;
}
Но, при завершении программы, вылетает ошибка:
Функция ожидает указателя на ULARGE_INTEGER, а вы почему-то передаете туда насильно приведенный указатель на DWORD. Неудивительно, что это ни к чему хорошему не приводит.
Объединение ULARGE_INTEGER содержит поле ULONGLONG QuadPart в качестве члена, который содержит все значение целиком. Так что если вы по какой-то причине не хотите просто воспользоваться ULARGE_INTEGER и настаиваете на подходе с "обычной переменной", то ваша переменная должна быть объявлена как ULONGLONG, а не как DWORD.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости