#define ACL_ACL_LENTH sizeof(XACL)
//#define ACL_TIME_LENTH sizeof(XACL_TIME)
#define ACL_IP_LENTH sizeof(XACL_IP)
#define ACL_HEADER_LENTH sizeof(XACL_HEADER)
struct XACL_IP
{
DWORD iStartIP;
DWORD iEndIP;
};
struct XACL
{
char sApplication[20];
BYTE bRemoteNetType;
DWORD ulTrustIPOffset;
int ulTrustIPCount;
XACL_IP mpAclTrustIP[2];
} ;
struct XACL_HEADER
{
int ulAclCount;
};
struct _XACL_FILE
{
XACL_HEADER mAclHeader;
XACL mpAcl[10];
} ;
//对话框操作
void CQosfileDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CFile mAclFile;
XACL_HEADER mAclHeader;
XACL *mpAcl;
XACL_IP m_ip;
CString mAppPath;
m_ip.iStartIP=1;
m_ip.iEndIP=2;
mAclHeader.ulAclCount=2;
mpAcl=new XACL[2];
mpAcl->mpAclTrustIP[0]=m_ip;
(mpAcl+1)->mpAclTrustIP[1]=m_ip;
//打开写;
mAclFile.Open( "F://VC//qosfile//Debugxacl.cfg",
CFile::modeCreate |
CFile::modeWrite |
CFile::typeBinary |
CFile::shareExclusive
);
mAclFile.Write(&mAclHeader,ACL_HEADER_LENTH);
mAclFile.WriteHuge(mpAcl,ACL_ACL_LENTH * mAclHeader.ulAclCount);
mAclFile.Close();
delete mpAcl;
//打开读;
mAclFile.Open( "F://VC//qosfile//Debugxacl.cfg",
CFile::modeRead |
CFile::typeBinary |
CFile::shareDenyWrite
);
mAclFile.SeekToBegin();
mAclFile.Read(&mAclHeader,ACL_HEADER_LENTH);
mpAcl = new XACL[mAclHeader.ulAclCount];
mAclFile.ReadHuge(mpAcl,ACL_ACL_LENTH * mAclHeader.ulAclCount);
CString str;
str.Format("%u",mAclHeader.ulAclCount);
str.TrimLeft();
CWnd *pWnd=GetDlgItem(IDC_EDIT3);
pWnd->SetWindowText(str);
// strcpy(m_edit1,str);
//// m_edit2=mpAcl->mpAclTrustIP.iStartIP;
// strcpy(m_edit2,str);
// m_edit1=2;
XACL_IP *ip;
ip=(mpAcl+1)->mpAclTrustIP+1;
str.Format("%u",ip->iStartIP);
str.TrimLeft();
pWnd=GetDlgItem(IDC_EDIT4);
pWnd->SetWindowText(str);
mAclFile.Close();
}