Погромисты, объясните мне: как total может быть меньше, чем avail memory? И почему dwLoadMemory выводит хуйню, когда должна показывать примерный процент от 0 до 100? Использую win32 api с Си.MEMORYSTATUSEX meminfo; GlobalMemoryStatusEx(&meminfo); printf("Total memory (byte):\t%llu\n", meminfo.ullTotalPhys); printf("Avail memory (byte):\t%llu\n", meminfo.ullAvailPhys); printf("Load: %d\n", meminfo.dwMemoryLoad);
>>161559706 (OP)>win32 Точно не скажу, но предположу, что сие апи возможно не видит дальше 4гб.
>>161559914Структура MEMORYSTATUSEX и функция GlobalMemoryStatusEx() как раз должны работать с > 4gb
>>161560029И действительно. Тогда хуй знает, может аппаратное вообще. И значения какие-то дохуя большие, не?
>>161560213байты
>>161560238Да даже если биты, всё равно дохуя. Там петабайты уже.
>>161560328Что-то с параметрами вывода в printf похоже. Выводиться на экран должны байты.
>>161560607Похоже там надо юзать другой формат, в мсдн у них %I64d// The asterisk in the format specifier "%I64d" takes an integer // argument and uses it to pad and right justify the number.
>>161560990С ним тоже пробовал, ничего не меняется.
meminfo.dwLength = sizeof(meminfo);Добавь в код.
>>161561481Да, только что тоже нашел, хотел написать. Теперь работает. Осталось понять почему.
>>161561594>The size of the structure, in bytes. You must set this member before calling GlobalMemoryStatusEx.Это уже к инсайдерам мс, почему. Возможно по дефолту там читается что-то ещё из какой-то структуры в памяти и вылезает охулиард. Это ж плюсы.
>>161561750>>161561594>Перед вызовом GlobalMemoryStatus надо записать в элемент dwLength размер структуры в байтах. Такой принцип вызова функции дает возможность Microsoft расширять эту структуру в будущих версиях Windows, не нарушая работу существующих приложений.Наверно в каком-нибудь win 2000 можно было и без этого обойтись. Видимо функцию изменяли, сохраняя возможность использовать ее на старых платформах, а чтобы корректно использовать на xp/7/10 надо проделать это доп действие.
>>161559706 (OP)Спермопроблемы, очевидно же!А да, где noне4ки мои?