Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сколько памяти в моем распоряжении?  (Прочитано 5319 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Richi
Гость
« : 09-05-2006 11:58 » 

Подскажите, пожалуйста, как получить количество свободной RAM в системе?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 09-05-2006 14:33 » new

вот прям из проекта выдрал:

( m_dwdLastMem,m_dwdLogZero - для твоих целей всегда ==0 , замени их в коде на 0 )

Код:
CString m_edMemView;
DWORD m_dwdLastMem,m_dwdLogZero;

//обновить показания
void CMemorySpyDlg::RefreshMemView()
{
MEMORYSTATUS memst;
::GlobalMemoryStatus(&memst);

CString csSign;
DWORD dwdDelta,dwdMemoryLoad;
CString csper,csmemtaken,csdelta;

if(m_dwdLastMem>=m_dwdLogZero){csSign=" ";dwdDelta=m_dwdLastMem-m_dwdLogZero;}
else{csSign="-";dwdDelta=m_dwdLogZero-m_dwdLastMem;}

m_dwdLastMem=memst.dwTotalPhys-memst.dwAvailPhys;
dwdMemoryLoad=(((float)m_dwdLastMem)*100)/((float)memst.dwTotalPhys);

//занято %
csper.Format("занято озу%3d%%\r\n",dwdMemoryLoad);
//занято байт
csmemtaken.Format("   %010d\r\n",m_dwdLastMem);
csmemtaken.Insert(7,".");
//приращение от нуля
csdelta.Format("D %1s%010d",csSign,dwdDelta);
csdelta.Insert(7,".");

m_edMemView.Format("%s%s%s",csper,csmemtaken,csdelta);

m_edMemView - искомое


}

« Последнее редактирование: 09-05-2006 14:36 от Алексей1153 » Записан

Richi
Гость
« Ответ #2 : 09-05-2006 14:58 » 

Огромное спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines