你具体错在那里我也不好说,我从我的工程中拷出一段来,你自己看看再说。
bool CDialUp::Dial()
{
CString strError;
RASDIALPARAMS struDialParams;
LPRASENTRYNAME pEntryName=new RASENTRYNAME[5];
DWORD dwCb,dwCount;
BOOL bPassword;
int nErrorTimes;
if(IsConnect()==true)
{
if(pEntryName)
delete[] pEntryName;
return true;
}
HangUp();
dwCb=sizeof(RASENTRYNAME)*5;
pEntryName[0].dwSize=sizeof(RASENTRYNAME);
dwCount=5;
m_nLastError=RasEnumEntries(NULL,NULL,pEntryName,&dwCb,&dwCount);
if(m_nLastError!=0)
{
if(pEntryName)
delete[] pEntryName;
pEntryName=new RASENTRYNAME[dwCount];
dwCb=sizeof(RASENTRYNAME)*dwCount;
m_nLastError=RasEnumEntries(NULL,NULL,pEntryName,&dwCb,&dwCount);
}
if(m_nLastError!=0)
{
if(pEntryName)
delete[] pEntryName;
return false;
}
strcpy(struDialParams.szEntryName,pEntryName[0].szEntryName);
struDialParams.dwSize=sizeof(RASDIALPARAMS);
if((m_nLastError=RasGetEntryDialParams(NULL,&struDialParams,&bPassword))!=0)
{
if(pEntryName)
delete[] pEntryName;
return false;
}
nErrorTimes=0;
RasDial(NULL,NULL,&struDialParams,0,RasDialFunc,&m_hConn);
if(pEntryName)
delete[] pEntryName;
return false;
}