一个关于WriteProfileInt和win.ini的问题,大家来看一下
近日小弟在网上闲逛时无意中下了一个程序的源代码
部分代码如下:
void CUserDlg::OnUdBadd()
{
UpdateData();
char * strq[] = { {"信息录入员"},{"系统管理员"} };
int purview = m_udcpv.GetCurSel();
if(m_udename.IsEmpty())
{
MessageBox("请指定用户名称。","输入错误",MB_OK);//|MB_ICONQUESION);
GetDlgItem(IDC_UD_ENAME)->SetFocus();
return;
}
if(purview == -1)
{
MessageBox("请指定用户权限。","输入错误",MB_OK);//|MB_ICONQUESION);
GetDlgItem(IDC_UD_CPURVIEW)->SetFocus();
return;
}
if(m_udepwd.Compare(m_udepwdr))
{
MessageBox("两次输入的密码不一致,请重新输入。","密码验证错",MB_OK);//|MB_ICONQUESTION);
m_udepwd.Empty();
m_udepwdr.Empty();
UpdateData(FALSE);
GetDlgItem(IDC_UD_ENP)->SetFocus();
return;
}
int LastID = AfxGetApp()->GetProfileInt("用户","LastID",0);
CString strID;
strID.Format("User%04u",LastID);
USERINFO user;
ZeroMemory(&user,sizeof(user));
strcpy(user.name,m_udename);
user.oper = purview;
strcpy(user.password,m_udepwd);
if(AfxGetApp()->WriteProfileBinary("用户",strID,(LPBYTE)&user,sizeof(user)))
{
CString str = m_udename + " [" + strq[purview] + "]";
m_udlist.AddString(str);
LastID++;
AfxGetApp()->WriteProfileInt("用户","LastID",LastID);
}
else
{
MessageBox("数据写入出错。","错误",MB_OK|MB_ICONSTOP);
return;
}
m_udcpv.SetCurSel(0);
m_udename.Empty();
m_udepwd.Empty();
m_udepwdr.Empty();
UpdateData(FALSE);
}
[ 我的MSDN上居然查找不到WriteProfileBinary这个函数。
(我记得我安装MSDN时少了一个文件,不知这个函数是不是就在这个文件里)
大家看看你的MSDN上有没有? ]
这是一个添加用户的代码。
但是我在添加完几个用户后。把win.ini的内容和没添加之前的比较了一下。
发现二者居然一点都没变。!!!!
WriteProfileInt不是把文件写入win.ini吗?
这到底是怎么一回事,把我搞昏了。
大虾帮忙解释一下。
小弟谢了先!!