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

298
27 ноября 2017, 18:56

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

Answer 1

В самом начале страницы MSDN, посвященной GlobalMemoryStatus, написано:

GlobalMemoryStatus can return incorrect information. Use the GlobalMemoryStatusEx function instead.

В переводе:

GlobalMemoryStatus может возвращать неверную информацию. Используйте вместо нее функцию GlobalMemoryStatusEx.

READ ALSO
синглтон майерса и многопоточность

синглтон майерса и многопоточность

здравствуйте, не раз слышал фразу, что "после c++11 синглтон майерса стал потокобезопасным"

263
Не удаётся открыть файл с помощью std::ifstream

Не удаётся открыть файл с помощью std::ifstream

Привет, не найду костыльХочу свою функцию для чтения/записи файлов, но оно не хочет считывать

323
Доступ к структуре через unsigned char

Доступ к структуре через unsigned char

Пусть есть структура S следующего вида:

327