Страницы

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

среда, 24 апреля 2019 г.

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

Здравствуйте! Есть задание вывести общий объём физической памяти и свободный объём физической памяти в Мб. Использую структуру 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 Гб. Снизу скрин выполнения программы. Как решить эту проблему?


Ответ

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

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

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