我在用vc读取系统内存的使用情况是编写了如下代码,
MEMORYSTATUS lpbuffer;
UpdateData(false);
lpbuffer.dwLength=sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&lpbuffer);
m_mtotal=lpbuffer.dwTotalPhys;
m_mleft=lpbuffer.dwAvailPhys;
m_muse=m_mtotal-m_mleft;
m_m1=lpbuffer.dwAvailPageFile;
UpdateData(true);
如果我把它放在对话框的初始函数里,在运行是可以显示对应的使用情况,但有错误,提示说我用的指针指向一个不明的地方,且要求输入一个整数。而放在了一个按钮触发事件里也不显示,也不报错。我不知道为什么,请教各位!!
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
MEMORYSTATUS lpbuffer;
// UpdateData(false);
lpbuffer.dwLength=sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&lpbuffer);
m_mtotal=lpbuffer.dwTotalPhys;
m_mleft=lpbuffer.dwAvailPhys;
m_muse=m_mtotal-m_mleft;
m_m1=lpbuffer.dwAvailPageFile;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
代码改成这样就好了:
MEMORYSTATUS lpbuffer;
UpdateData(true);//UpdateData(false);
lpbuffer.dwLength=sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&lpbuffer);
m_mtotal=lpbuffer.dwTotalPhys;
m_mleft=lpbuffer.dwAvailPhys;
m_muse=m_mtotal-m_mleft;
m_m1=lpbuffer.dwAvailPageFile;
UpdateData(false); //UpdateData(true);