Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Вывод объема оперативной памяти

#cpp #winapi


Здравствуйте! Есть задание вывести общий объём физической памяти и свободный объём
физической памяти в Мб. Использую структуру MEMORYSTATUS из библиотеки Windows.h

    MEMORYSTATUS ms;
GlobalMemoryStatus(&ms);
label20->Text = Convert::ToString((int)ms.dwTotalPhys / 1024 / 1024) + "Mb";
label22->Text = Convert::ToString((int)ms.dwAvailPhys / 1024 / 1024) + "Mb";


Кол-во свободной памяти выводит правильно, с диспетчером задач сверил, а вот общий
объём вывел неправильно, у меня 4 Гб.
Снизу скрин выполнения программы. Как решить эту проблему?

    


Ответы

Ответ 1



В самом начале страницы MSDN, посвященной GlobalMemoryStatus, написано: GlobalMemoryStatus can return incorrect information. Use the GlobalMemoryStatusEx function instead. В переводе: GlobalMemoryStatus может возвращать неверную информацию. Используйте вместо нее функцию GlobalMemoryStatusEx.

Комментариев нет:

Отправить комментарий