如何用c++查看其它程序占用的内存

最好是有比较完整的代码
就像windows的任务管理器

50.内存占用率饼图
/*
#include "math.h"
#define Pi 3.1415927
#define Ri 800
private:
DWORD MemTotal,MemFree;
MEMORYSTATUS mem;
*/
::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here
SetTimer(1,1000,NULL);
return 0;
}
void GetMemory(PCSTR singal,double m_memory,CString * str)
{
char m_ch='K';
m_memory/=1024;
if(m_memory>1024)
{
m_memory/=1024;
m_ch='M';
}
str->Format("%s%.2f%c%s",singal,m_memory,m_ch,"B");
}
::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
Invalidate();
CView::OnTimer(nIDEvent);
}
::OnDraw(CDC* pDC)
{
//CDeployDocDoc* pDoc = GetDocument();
//ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str;
int x,y;
double dFree,dUse;
CRect rect;
CPen Pen1,Pen2,*oldpen;
CBrush Brush1,Brush2,*oldbrush;
Pen1.CreatePen(PS_SOLID,50,RGB(255,0,0));
Brush1.CreateSolidBrush(RGB(255,0,0));
oldpen=pDC->SelectObject(&Pen1);
oldbrush=pDC->SelectObject(&Brush1);
::GlobalMemoryStatus(&mem);
MemTotal=mem.dwTotalPhys;
MemFree=mem.dwAvailPhys;
GetClientRect(&rect);
pDC->SetMapMode(MM_ISOTROPIC);
pDC->SetWindowExt(Ri+100,Ri+100);
pDC->SetViewportExt(rect.right/2,-rect.bottom/2);
pDC->SetViewportOrg(rect.right/2,rect.bottom/2);
dFree=(double)(Pi*2*MemFree/MemTotal);
dUse=(double)Pi*2-dFree;
x=-(int)(sin(dUse)*Ri);
y=(int)(cos(dUse)*Ri);
pDC->Pie(-Ri,Ri,Ri,-Ri,0,Ri,x,y);
pDC->SelectObject(oldpen);
pDC->SelectObject(oldbrush);
Brush2.CreateSolidBrush(RGB(0,160,255));
Pen2.CreatePen(PS_SOLID,50,RGB(0,160,255));
oldpen=pDC->SelectObject(&Pen2);
oldbrush=pDC->SelectObject(&Brush2);
pDC->Pie(-Ri,Ri,Ri,-Ri,x,y,0,Ri);
pDC->SelectObject(oldpen);
pDC->SelectObject(oldbrush);
GetMemory(_T("物理总内存:"),MemTotal,&str); //物理总内存
pDC->TextOut(300,300,str);
GetMemory(_T("剩余内存:"),MemFree,&str); //剩余内存
pDC->TextOut(300,200,str);
}

参考资料:百度文库:MFC快捷菜单及控件操作大全

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-06
msdn之,参考地址里有,不用看E文,直接copy代码就可以了

参考资料:http://msdn.microsoft.com/en-us/library/ms686701(VS.85).aspx

第2个回答  2010-03-05
可以使用PerformanceCounter(),它可以查到计算机的很多性能数据
具体用法我也不记得了,你可以自己查一下