Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 16 | 5 | 3
Назад Вниз Каталог Обновить

Аноним 22/09/17 Птн 11:55:36  161559706  
1.png (3Кб, 345x55)
Погромисты, объясните мне: как 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);
Аноним 22/09/17 Птн 11:56:12  161559742
14916446415660-b.jpg (96Кб, 768x1024)
Аноним 22/09/17 Птн 11:56:46  161559779
14938253778360-b.jpg (116Кб, 682x1024)
Аноним 22/09/17 Птн 11:57:23  161559805
14942626481040-b.jpg (255Кб, 1079x1024)
Аноним 22/09/17 Птн 11:59:26  161559914
>>161559706 (OP)
>win32
Точно не скажу, но предположу, что сие апи возможно не видит дальше 4гб.
Аноним 22/09/17 Птн 12:01:39  161560029
>>161559914
Структура MEMORYSTATUSEX и функция GlobalMemoryStatusEx() как раз должны работать с > 4gb
Аноним 22/09/17 Птн 12:05:08  161560213
>>161560029
И действительно. Тогда хуй знает, может аппаратное вообще. И значения какие-то дохуя большие, не?
Аноним 22/09/17 Птн 12:05:31  161560238
>>161560213
байты
Аноним 22/09/17 Птн 12:07:09  161560328
>>161560238
Да даже если биты, всё равно дохуя. Там петабайты уже.
Аноним 22/09/17 Птн 12:13:49  161560607
>>161560328
Что-то с параметрами вывода в printf похоже. Выводиться на экран должны байты.
Аноним 22/09/17 Птн 12:21:49  161560990
>>161560607
Похоже там надо юзать другой формат, в мсдн у них %I64d
// The asterisk in the format specifier "%
I64d" takes an integer
// argument and uses it to pad and right justify the number.
Аноним 22/09/17 Птн 12:24:23  161561121
>>161560990
С ним тоже пробовал, ничего не меняется.
Аноним 22/09/17 Птн 12:31:51  161561481
meminfo.dwLength = sizeof(meminfo);
Добавь в код.
Аноним 22/09/17 Птн 12:34:12  161561594
>>161561481
Да, только что тоже нашел, хотел написать. Теперь работает. Осталось понять почему.
Аноним 22/09/17 Птн 12:37:37  161561750
>>161561594
>The size of the structure, in bytes. You must set this member before calling GlobalMemoryStatusEx.
Это уже к инсайдерам мс, почему. Возможно по дефолту там читается что-то ещё из какой-то структуры в памяти и вылезает охулиард. Это ж плюсы.
Аноним 22/09/17 Птн 12:41:56  161561961
>>161561750
>>161561594
>Перед вызовом GlobalMemoryStatus надо записать в элемент dwLength размер структуры в байтах. Такой принцип вызова функции дает возможность Microsoft расширять эту структуру в будущих версиях Windows, не нарушая работу существующих приложений.
Наверно в каком-нибудь win 2000 можно было и без этого обойтись. Видимо функцию изменяли, сохраняя возможность использовать ее на старых платформах, а чтобы корректно использовать на xp/7/10 надо проделать это доп действие.
Аноним 22/09/17 Птн 12:42:53  161562006
keijih3tiHi9.jpg (226Кб, 1920x1080)
>>161559706 (OP)
Спермопроблемы, очевидно же!

А да, где noне4ки мои?

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 16 | 5 | 3
Назад Вверх Каталог Обновить

Топ тредов
Избранное